从头开始在一台刚初始化好的华为云 CentOS 7 上部署 LAMP 环境

年轻的时候,总是喜欢用编译的方式来安装 LAMP,乐此不彼。 回头去看,对于理解编译确实有帮助, 但是很多时候是浪费时间。 现在的社区资源不是2003年之前的社区环境了。 因此, 我更推崇用 yum 安装软件包。

  1. Apache: # yum install httpd mod_ssl; systemctl enable httpd; systemctl start httpd
  2. MySQL(MariaDB): # yum install mariadb-server; systemctl enable mariadb; systemctl start mariadb
  3. PHP: # yum info php 可以看到版本号为 5.4 , 这对于目前很多的 PHP 环境版本是比较低的。 因此我推荐升级到 PHP 5.6。
    首先下载并安装/升级  epel 和  remi 两个 yum repo:
    # cd /var/tmp
    # wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    # wget https://rpms.remirepo.net/enterprise/remi-release-7.rpm
    # rpm -Uvh remi-release-7.rpm epel-release-latest-7.noarch.rpm
    为了把 remi-php56 成为默认的 PHP 版本 repo,我们可以运行如下命令设置:
    
    先安装 yum-utils
    # yum install yum-utils
    # yum-config-manager --enable remi-php56
    
    接下来就是安装所需要的 PHP 库了,例如 MySQL 连接是必须的:
    # yum install php-mysqlnd 
    一般来说 gd 库也是必须的, 所以还要安装 php-gd 
    等所有的都安装好以后,我们可以用 php -m 查看加载的模块。 
    我们可以把这些包整合到一条命令里安装:
    # yum install php-mysqlnd php-gd php-mcrypt php-mbstring php-memcached 
    相关的一些依赖软件包也会自动安装好。
    
    
    

HTTPS  证书的配置对很多网站是标配了,我们一般采用 Let’s Encrypt 的90天(过期后可自动续)免费证书。对于这部分的安装,可以参见本站之前的文章

附录:

===== 关于 Apache 配置的更新:假定你已经通过
# certbot -d www.test.cn –apache certonly
申请了 Let’s Enctrypt 的证书。下面是一个示例的配置,千万不要忘记了 Satisfy Any 这句,浪费了我半个小时找原因。

Listen 443
NameVirtualHost *:443

<VirtualHost *:443>
ServerName www.test.cn
ServerAlias test.cn
CustomLog logs/test.log combined
ErrorLog logs/test.err
DocumentRoot /opt/www/test
<Directory /opt/www/test >
Options +FollowSymLinks -Indexes +MultiViews
AllowOverride All
Order allow,deny
Require all granted
Satisfy Any
</Directory>
SSLCertificateFile /etc/letsencrypt/live/www.test.cn/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.test.cn/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/www.test.cn/chain.pem
</VirtualHost>

==== 关于 PHP 的配置,修改 /etc/php.ini
设置时区:  date.timezone = Asia/Shanghai
设置错误日志文件: error_log = /var/log/php/php.err
创建目录 /var/log/php 并 chown apache /var/log/php ,这样在 PHP 中 error_log() 写的调试语句都可以写入这个文件。

====关于 MySQL 的配置,修改 /etc/my.cnf

要注意数据库的路径目录,如果根文件系统磁盘空间比较小,又打算写比较大的数据库的话,最好把路径配置到一个空间比较充裕的文件系统里。 当然, 在 VPC 里配置一台 RDS,是最好的选项了。
MySQL 默认创建好之后,超级用户 root 的密码是空的, 记得一定运营
# mysql_secure_installation
来加固 MySQL 的安装。

==== 关于云端安全组的配置
一般云端的安全组默认只开放 22(SSH) 和 3389(RDP) 端口,我们需要去云端管理在安全组上添加 80 和 443 端口的访问。

====如果有 Java 应用的话,针对 Tomcat 的部署
# yum install tomcat
即可。 再做应用的配置。

==== Memcached 作为 LAMP 环境下性能提升的利器,我们也可以部署 memcached
# yum install memcached
缓冲大小的配置文件是: /etc/sysconfig/memcached
安装好之后可以用 systemctl enable memcached; systemctl start memcached

作者: 甬洁网络

--移动互联网&物联网技术提供商