在 CentOS 7 上搭建 LAMP/LNMP 环境,使用 yum 命令安装,默认 PHP,MySQL 软件版本比较低。为了使用最新版本 PHP 及 MariaDB,我们指定第三方源后再使用 yum 安装。
安装 CentOS 7.3 64 位系统,具体步骤略。
编辑网络配置文件(文件名可能不同)
vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
BOOTPROTO=static #启用静态IP地址 none-未指定 static-静态
ONBOOT="yes" #开机自动启用网络连接
DNS1=114.114.114.114 #主DNS
DNS2=8.8.8.8 #备用DNS
IPADDR=172.16.7.3 #设置IP地址
PREFIX=24 #前缀是24,其实就是相当于子网掩码有24位
GATEWAY=172.16.7.1 #网关
重启网络,测试网络是否正常
systemctl restart network
ping -c 5 www.baidu.com
开启 80 端口,开启 3306 端口,重启防火墙
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
编辑 SELINUX 配置文件,修改添加以下内容
vim /etc/selinux/config
#SELINUX=enforcing #修改:注释掉
#SELINUXTYPE=targeted #修改:注释掉
SELINUX=disabled #增加
临时关闭 SELINUX:
setenforce 0
添加 MariaDB 官方最新源,MariaDB10.2:
touch /etc/yum.repos.d/mariadb.repo
添加内容:
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
然后,yum 安装 MariaDB10.2:
yum install mariadb-server
添加开机自启动:
systemctl enable mariadb
启动 MariaDB 数据库:
systemctl start mariadb
接下来进行 MariaDB 的简单初始化配置:
mysql_secure_installation
#Enter current password for root (enter for none): 数据库密码,第一次运行为空直接回车即可。
#Set root password? [Y/n] Y 设置新密码,然后设置新密码
#Remove anonymous users? [Y/n] Y 取消匿名用户访问
#Disallow root login remotely? [Y/n] Y 禁止root远程访问
#Remove test database and access to it? [Y/n] Y 删除test数据库
#Reload privilege tables now? [Y/n] Y 刷新权限列表
设置数据库字符集为 utf8:
打开文件 /etc/my.cnf
vim /etc/my.cnf
在 [mysqld]
标签下添加
init_connect='SET collation_connection = utf8_general_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci
打开文件 /etc/my.cnf.d/client.cnf
vim /etc/my.cnf.d/client.cnf
在 [client]
中添加
default-character-set=utf8
打开文件 /etc/my.cnf.d/mysql-clients.cnf
vim /etc/my.cnf.d/mysql-clients.cnf
在 [mysql]
中添加
default-character-set=utf8
全部配置完成,重启 MariaDB 即可。
使用 yum 安装 Apache Httpd2.4.6
yum install httpd
隐藏 HTTP 响应头中的版本信息,文件路径 /etc/httpd/conf/httpd.conf
。
打开 httpd.conf
,将 ServerTokens
的值修改为 Prod
(若没有该属性,则新增一行)
隐藏服务器页脚信息:
打开 httpd.conf
,将 ServerSignature
的值修改为 Off
(若没有该属性,则新增一行)
添加开机自启动:
systemctl enable httpd
启动 httpd 服务:
systemctl start httpd
添加 webtatic(第三方)yum 源:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
使用 yum 安装 PHP 7.1:
yum -y install php71w php71w-devel
隐藏 HTTP 响应头中的 X-Powered-By:PHP/7.1.11
:
在 /etc/php.ini
中,将 expose_php
值修改为 Off
。
接下来,可以安装 PHP 常用的扩展(可选):
yum -y install php71w-opcache
yum -y install php71w-gd
yum -y install php71w-imap
yum -y install php71w-mbstring
yum -y install php71w-mcrypt
yum -y install php71w-mysqlnd
yum -y install php71w-pdo
yum -y install php71w-pdo_dblib
yum -y install php71w-pear.noarch
yum -y install php71w-pecl-apcu
yum -y install php71w-pecl-apcu-devel
yum -y install php71w-pecl-igbinary
yum -y install php71w-pecl-igbinary-devel
yum -y install php71w-pecl-imagick
yum -y install php71w-pecl-imagick-devel
yum -y install php71w-pecl-memcached
yum -y install php71w-pecl-mongodb
yum -y install php71w-pecl-redis
yum -y install php71w-pecl-xdebug
yum -y install php71w-pgsql
yum -y install php71w-phpdbg
yum -y install php71w-process
yum -y install php71w-pspell
yum -y install php71w-recode
yum -y install php71w-snmp
yum -y install php71w-soap
yum -y install php71w-tidy
yum -y install php71w-xml
yum -y install php71w-xmlrpc
安装完扩展,重启 Apache 即可。
LAMP 环境下,PHP 是以 Apache 模块方式运行的,而 LNMP 中,PHP 一般以 PHP-FPM 模式运行。
同 Apache 下安装
添加 Nginx 官方最新源:
touch /etc/yum.repos.d/nginx.repo
添加以下内容:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
然后,yum 安装 Nginx 1.12.2:
yum install nginx
隐藏 HTTP 响应头中的版本信息,文件路径 /etc/nginx/nginx.conf
:
打开 nginx.conf
,在 http 里面增加一行 server_tokens off
;
添加开机自启动:
systemctl enable nginx
启动 Nginx 服务:
systemctl start nginx
添加 webtatic(第三方)yum 源:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
使用 yum 安装 PHP 7.1:
yum -y install php71w-fpm
配置 Nginx 支持 PHP。
修改默认虚拟主机配置文件:
vim /etc/nginx/conf.d/default.conf
取消 FastCGI server 部分 location 的注释,注意 fastcgi_param 行的参数,改为项目绝对路径。
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}
设置 Nginx,PHP-FPM 开机自启动:
systemctl enable nginx
systemctl enable php-fpm
重启 Nginx,启动 PHP-FPM:
systemctl restart nginx
systemctl start php-fpm
隐藏 HTTP 响应头中的 X-Powered-By:PHP/7.1.11
:
在 /etc/php.ini
中,将 expose_php
值修改为 Off
。
接下来,可以安装 PHP 常用的扩展(可选):
yum -y install php71w-opcache
yum -y install php71w-gd
yum -y install php71w-imap
yum -y install php71w-mbstring
yum -y install php71w-mcrypt
yum -y install php71w-mysqlnd
yum -y install php71w-pdo
yum -y install php71w-pdo_dblib
yum -y install php71w-pear.noarch
yum -y install php71w-pecl-apcu
yum -y install php71w-pecl-apcu-devel
yum -y install php71w-pecl-igbinary
yum -y install php71w-pecl-igbinary-devel
yum -y install php71w-pecl-imagick
yum -y install php71w-pecl-imagick-devel
yum -y install php71w-pecl-memcached
yum -y install php71w-pecl-mongodb
yum -y install php71w-pecl-redis
yum -y install php71w-pecl-xdebug
yum -y install php71w-pgsql
yum -y install php71w-phpdbg
yum -y install php71w-process
yum -y install php71w-pspell
yum -y install php71w-recode
yum -y install php71w-snmp
yum -y install php71w-soap
yum -y install php71w-tidy
yum -y install php71w-xml
yum -y install php71w-xmlrpc
安装完扩展,重启 PHP-FPM 即可。
将 Nginx 当负载均衡放在前面,后面放 Apache 服务器,静态文件直接由 Nginx 处理,动态文件交给 Apache 处理,再返回给 Nginx。Apache 服务器可以放多台,组成集群。