经过两天的搜索和学习,终于在CentOS7.6 1810版本的最小化安装服务器上完成了LEMP搭建,全都用的是最新的稳定版组件(截止2019-01-26),这里做个记录,以便后继再应用到。
1.nginx1.14.2的安装
nginx的安装完全参考nginx官网的安装步骤即可。
1.1在centos7 的 /etc/yum.repos.d目录中新建一个nginx的源地址引用文件 nginx.repo,使用系统自带的vi文本编辑工具
命令:# vi /etc/yum.repos.d/nginx.repo
内容:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
1.2然后以yum 方式安装最新稳定版nginx
命令:# yum update
# yum install nginx
1.3 设定防火墙,允许 http与https封包通过
命令:# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --permanent --zone=public --add-service=https
# firewall-cmd --reload
1.4 设定SELinux关于nginx的权限,使其能够对主目录进行读写操作
命令:# chcon -R -t httpd_sys_rw_content_t /usr/share/nginx/html
1.5 启动nginx并将其设定为开机自启动
命令:# systemctl restart nginx
# systemctl enable nginx
2.php7.3.1的安装
网上大部分都是介绍从源码编译安装的。 yum命令安装的版本较低,还是 php5.6.4的,而最新版7.3.1号称效率更高,官网也推荐使用,所以当然要安装最新版。
经过一番搜索,要采用 Remi和EPEL仓库 内的7.3.1的安装资源。 参考文章:How To Install PHP 7.4, 7.3 & 7.2 on CentOS 7 - TecAdmin
2.1 安装EPEL:
# yum install epel-release
2.2 安装remi:
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
2.3 安装php7.3
# yum --enablerepo=remi-php73 install php
测试是否正确安装:
# php -v
显示:
PHP 7.3.1 (cli) (built: Jan 8 2019 13:55:51) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.1, Copyright (c) 1998-2018 Zend Technologies
2.4 安装php7.3系列的附属组件模块:
# yum --enablerepo=remi-php73 install php-xml php-soap php-xmlrpc php-mbstring php-json php-gd php-mcrypt php-mysqlnd
通过下列命令查看还可以安装哪些组件:
# yum --enablerepo=remi-php73 search php | grep php73
3.安装MariaDB10.3.12 也就是mysql 的接任者的最新版
3.1类似nginx,也需要建立对应的源地址引用文件 MariaDB.repo,这里引用的是阿里开源的地址
命令: # vi /etc/yum.repos.d/MariaDB.repo
内容:
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
3.2 yum 安装 MariaDB
命令:
# yum install MariaDB-server MariaDB-client
3.3 设定MariaDB开机启动
命令:
# systemctl restart mariadb
# systemctl enable mariadb
3.4 对MariaDB进行配置,设置root账户的密码之类的
命令: # mysql_secure_installation
4. nginx与php的协同运行所必要的一点配置
4.1 在nginx的内容存放目录 /usr/share/nginx/html 内建立 info.php文件,通过浏览器访问该文件,若能显示下面截图内容则说明两者配合完美,否则就需要进行配置,让nginx能使用php
info.php的内容:
<?php
phpinfo();
?>
4.2 若无法显示上述页面内容,则要安装php-fpm,并对nginx进行配置,使得nginx可以通过php-fpm来处理php的任务
主要是对配置文 /etc/nginx/conf.d/default.conf 进行修改。
4.2.1 安装php-fpm并设置为开机启动
命令:# yum --enablerepo=remi-php73 install php-fpm
# systemctl restart php-fpm
# systemctl enable php-fpm
4.2.2 修改nginx的配置文件
命令: # vi /etc/nginx/conf.d/default.conf
变更内容如下:
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.php index.html index.htm;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
保存后重启nginx服务
命令: # systemctl restart nginx
4.3 必要的话对php的运行环境也进行一番配置
命令:# vi /etc/php.ini
变更下列配置项的内容:
cgi.fix_pathinfo=1
date.timezone = PRC
4.4 修改php-fpm 的配置文件 /etc/php-fpm.d/www.conf
命令:# vi /etc/php-fpm.d/www.conf
修改配置项和内容:
user = nginx (默认为apache)
group = nginx (默认为apache)
listen.owner = nobody
listen.group = nobody
保存后重启php-fpm服务
systemctl enable php-fpm
4.5再次测试info.php页面是否可以打开
http://服务器ip/info.php
5.安装基于php的网络话mysql数据库配置工具 phpMyAdmin
在phpMyAdmin官网下载最新稳定版,解压缩到 /usr/share/nginx/html 目录下,最好将文件夹的版本号去掉,仅留下phpMyAdmin作为文件夹名
修改phpMyAdmin的认证方式,主要是修改phpMyAdmin目录下的config.inc.php这个文件,
命令:# vi /usr/share/nginx/html/phpMyAdmin/config.inc.php
修改的配置项和内容:
$cfg['Servers'][$i]['auth_type'] = 'http'; (默认的配置内容为空或者cookie,这里改为http)
通过http://主机ip/phpMyAdmin 打开mysql的管理界面
注:若出现 “session_start(): open(SESSION_FILE, O_RDWR) failed: Permission de... ” 的错误提示,则需要对报错信息涉及到的文件的权限进行配置
命令: # chown nginx:nginx /var/lib/php/session
再次打开管理界面试一下,正常情况应该如下图所示:
至此所有的安装和配置都已经完成,可以安装WordPress或者需要php支持的网站内容管理软件了!