在centos8上使用手动部署LNMP环境
准备编译环境(LNMP–>L)
- 远程连接Linux实例。
- 关闭防火墙。
i. 运行systemctl status firewalld
命令查看当前防火墙的状态。
如果防火墙的状态参数是inactive
,则防火墙为关闭状态
。
如果防火墙的状态参数是active
,则防火墙为开启状态
。
上图中防火墙为关闭状态,因此不需要有任何操作。
ii. 关闭防火墙的方式(笔者未进行运行实现)- 如果想临时关闭防火墙,运行命令
systemctl stop firewalld
。这只是暂时关闭防火墙,下次重启Linux后,防火墙还会开启。
或者运行命令systemctl start firewalld
- 如果您想永久关闭防火墙,运行命令
systemctl disable firewalld
。
- 如果想临时关闭防火墙,运行命令
- 关闭SELinux
i.运行getenforce
命令查看SELinux的当前状态 。
如果SELinux状态参数是Disabled
,则SELinux为关闭状态。
如果SELinux状态参数是Enforcing
,则SELinux为开启状态。
上图中显示SELinux为关闭状态
ii.关闭SELinux。如果SELinux为关闭状态可以忽略此步骤。
如果您想临时关闭SELinux,运行命令setenforce 0
这只是暂时关闭SELinux,下次重启Linux后,SELinux还会开启。
安装Nginx(LNMP–>N)
- 运行以下命令安装Nginx(笔者安装的为1.16。1版本)
dnf -y install http://nginx.org/packages/centos/8/x86_64/RPMS/nginx-1.16.1-1.el8.ngx.x86_64.rpm
可以访问Nginx官方安装包获取适用于CentOS 8系统的多版本的Nginx安装包。
- 运行以下命令查看Nginx版本
nginx -v
安装MySQL(LNMP–>M)
两种方式 以下为第一种(直接在系统中安装mysql数据库)
- 运行以下命令安装MySQL。
dnf -y install @mysql
- 运行以下命令查看MySQL版本。
mysql -V
- 查看版本结果如下所示。
mysql Ver 8.0.17 for Linux on x86_64 (Source distribution)
两种方式 以下为第二种(先在系统中安装docker,再使用docker对mysql进行安装)
-
使用官方安装脚本自动安装docker
安装命令如下:
来自阿里云的一键安装命令curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
也可以使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
-
安装成功后,启动docker
sudo systemctl start docker
启动成功后就可以进行docker 的使用了
-
Docker 安装 MySQL
访问 MySQL 镜像库地址 可以通过 Sort by 查看其他版本的 MySQL
默认是最新版本 mysql:latesti.拉取官方的最新版本的镜像:
docker pull mysql:latest
docker pull [镜像名]:[镜像版本]
latest或不填写 均为拉取最新版本镜像(笔者拉取的
mysql 5.7
版本)
ii.查看本地镜像
docker images
iii.运行mysql容器docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
--name mysql-test
:对运行的mysql容器进行命名
-p 3306:3306
:映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。MYSQL_ROOT_PASSWORD=123456
:设置 MySQL 服务 root 用户的密码。
mysql
: 为本地镜像的名称 如果不是最新版本镜像 请使用mysql:[版本号]
通过docker ps
命令查看是否安装成功
本机可以通过 root 和密码 123456 访问 MySQL 服务。
mysql -h localhost -u root -p
安装PHP
-
运行以下命令添加并更新epel源。
dnf -y install epel-release dnf update epel-release
-
运行以下命令删除缓存的无用软件包并更新软件源。
dnf clean all dnf makecache
-
启用php:7.3模块。
dnf module enable php:7.3
笔者使用的为php:7.3版本。如果您需要使用PHP 7.4版本,需要先安装remi源。remi源安装命令为
dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
-
运行以下命令安装PHP相应的模块。
dnf install php php-curl php-dom php-exif php-fileinfo php-fpm php-gd php-hash php-json php-mbstring php-mysqli php-openssl php-pcre php-xml libsodium
-
运行以下命令查看PHP版本。
php -v
运行结果如下图
配置Nginx
-
使用
whereis nginx
查找nginx所在位置 /etc 为配置文件 目录
进入nginx 配置文件的默认路径下,并备份默认配置文件。(留个后路)
cd /etc/nginx/conf.d cp default.conf default.conf.bak
-
修改默认配置文件。
运行以下命令打开默认配置文件。vi default.conf
按i进入编辑模式。
在location大括号内,修改以下内容。location / { #将该路径替换为您的网站根目录。 root /usr/share/nginx/html; #添加默认首页信息index.php。 index index.html index.htm index.php; }
去掉被注释的location ~ .php$大括号内容前的#,并修改大括号的内容。
修改完成如下所示。location ~ \.php$ { #将该路径替换为您的网站根目录。 root /usr/share/nginx/html; #Nginx通过unix套接字与PHP-FPM建立联系,该配置与/etc/php-fpm.d/www.conf文件内的listen配置一致。 fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; #将/scripts$fastcgi_script_name修改为$document_root$fastcgi_script_name。 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #Nginx调用fastcgi接口处理PHP请求。 include fastcgi_params; }
Nginx与PHP-FPM进程间通信方式有两种。 TCP Socket:该方式能够通过网络,可用于跨服务器通信的场景。 UNIX
Domain Socket:该方式不能通过网络,只能用于同一服务器中通信的场景。按下
Esc
键,并输入:wq
保存退出文件。 -
运行以下命令启动Nginx服务。
systemctl start nginx
-
运行以下命令设置Nginx服务开机自启动。
systemctl enable nginx
配置PHP
-
修改PHP配置文件。
运行以下命令打开配置文件。vi /etc/php-fpm.d/www.conf
按
i
进入编辑模式。找到
user = apache
和group = apache
,将apache
修改为nginx
。按下
Esc
键,并输入:wq
保存退出文件。 -
运行以下命令启动PHP-FPM。
systemctl start php-fpm
-
运行以下命令设置PHP-FPM开机自启动。
systemctl enable php-fpm
测试php环境
切换至nginx配置的网站根目录/usr/share/nginx/html/
(nginx 配置内有配置)
cd /usr/share/nginx/html/
新建一个php文件 用以测试
vim phpinfo.php
按i
进入编辑模式。
输入下列内容,函数phpinfo()会展示PHP的所有配置信息。
<?php echo phpinfo(); ?>
按Esc
键后,输入:wq
并回车以保存并关闭配置文件。
打开浏览器。 在地址栏输入
http://<IP地址>/phpinfo.php
返回结果下图结果,表示环境部署成功。
到此 LNMP
环境配置成功,本文结束
参考文章有
阿里云—手动部署LNMP环境(CentOS 8)