如何在 Anolis OS 8.6 上使用 YUM 安装 LNMP
操作背景:虚拟机 Anolis 0S 8.6 、需要连接外网(用于yum epel 包的下载)。
零、防火墙 和 selinux 配置
# 临时永久关闭 selinux(Anolis OS 8.6 默认SElinux是关闭的所以不用设置)。
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
# 防火墙允许 192.168.30.0/24 访问 80;443;3306 端口。
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.30.0/24" port port="80" protocol="tcp" accept"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.30.0/24" port port="443" protocol="tcp" accept"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.30.0/24" port port="3306" protocol="tcp" accept"
firewall-cmd --reload
# 或者 直接关闭防火墙 。
systemctl stop firewalld && systemctl disable firewalld
一、安装 nginx
- 执行如下命令,安装Nginx。
dnf -y install nginx
- 执行如下命令,查看Nginx版本。
nginx -v
二、安装 maridb 数据库
- 执行如下命令,安装 mariadb。
在 Linux 系统中,@mariadb 是一个 YUM 软件包组,包含了安装 MariaDB (一个 MySQL 的分支) 所需的软件包。使用 dnf -y install @mariadb 命令可以一次性安装所有与 MariaDB 相关的软件包,包括 MariaDB 数据库服务器、MariaDB 客户端、MariaDB Connector/C 开发库和其他一些常用的 MariaDB 工具。这样可以方便地在 Linux 系统上安装 MariaDB,并减少了手动一个个安装各个软件包的工作量。
dnf -y install @mariadb
- 执行如下命令,查看mariadb版本。
mysql -V
三、安装 php
- 执行如下命令,安装 PHP。
dnf -y 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
- 查看是否有该文件(/etc/nginx/default.d/php.conf),该配置。(默认配置可以用)
# nginx 启用 php 网页。
[root@192 nginx]# cat /etc/nginx/default.d/php.conf
# pass the PHP scripts to FastCGI server
#
# See conf.d/php-fpm.conf for socket configuration
#
index index.php index.html index.htm;
location ~ \.(php|phar)(/.*)?$ {
fastcgi_split_path_info ^(.+\.(?:php|phar))(/.*)$;
fastcgi_intercept_errors on;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php-fpm;
}
[root@192 nginx]#
# 临时永久关闭 selinux(Anolis OS 8.6 默认SElinux是关闭的所以不用设置)。
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
# 防火墙允许 192.168.30.0/24 访问 80;443;3306 端口。
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.30.0/24" port port="80" protocol="tcp" accept"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.30.0/24" port port="443" protocol="tcp" accept"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.30.0/24" port port="3306" protocol="tcp" accept"
firewall-cmd --reload
# 或者 直接关闭防火墙 。
systemctl stop firewalld && systemctl disable firewalld
dnf -y install nginx
nginx -v
在 Linux 系统中,@mariadb 是一个 YUM 软件包组,包含了安装 MariaDB (一个 MySQL 的分支) 所需的软件包。使用 dnf -y install @mariadb 命令可以一次性安装所有与 MariaDB 相关的软件包,包括 MariaDB 数据库服务器、MariaDB 客户端、MariaDB Connector/C 开发库和其他一些常用的 MariaDB 工具。这样可以方便地在 Linux 系统上安装 MariaDB,并减少了手动一个个安装各个软件包的工作量。
dnf -y install @mariadb
mysql -V
dnf -y 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 -v
# nginx 启用 php 网页。
[root@192 nginx]# cat /etc/nginx/default.d/php.conf
# pass the PHP scripts to FastCGI server
#
# See conf.d/php-fpm.conf for socket configuration
#
index index.php index.html index.htm;
location ~ \.(php|phar)(/.*)?$ {
fastcgi_split_path_info ^(.+\.(?:php|phar))(/.*)$;
fastcgi_intercept_errors on;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php-fpm;
}
[root@192 nginx]#
1.1 如果没有该文件(/etc/nginx/default.d/php.conf),就编辑 /etc/nginx/nginx.conf 文件。
1.1.1 在location大括号内,修改以下内容。
location / {
#将该路径替换为您的网站根目录。
root /usr/share/nginx/html;
#添加默认首页信息index.php。
index index.html index.htm index.php;
}
1.1.2 在 server 大括号内添加下述内容。
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:该方式不能通过网络,只能用于同一服务器中通信的场景。
e. 按下Esc键后,输入:wq并回车以保存关闭配置文件。
- 执行以下命令,启动Nginx服务。
systemctl start nginx
- 执行一下命令,设置Nginx服务开机自启动。
systemctl enable nginx
五、配置 数据库
- 执行如下命令,启动Mariadb,并设置为开机自启动。
systemctl start mariadb
- 执行如下命令,查看Mariadb是否已启动。
systemctl status mariadb
查看返回结果中Active: active (running)表示已启动。
- 执行下命令,执行Mariadb安全性操作并设置密码。
mysql_secure_installation
回车开始相关配置。
输入Y并回车开始相关配置 Mariadb root 密码。
输入密码 ,并按回车键。这的示例密码是 88888888。
再次输入密码 ,并按回车键。这的示例密码是 88888888。
输入Y并回车移除匿名用户。
输入Y禁止root远程连接Mariadb,输入N允许。
输入Y并回车删除test库以及对test库的访问权限。
输入Y并回车重新加载授权表。
六、php 配置
-
修改PHP配置文件。
- 执行如下命令,打开配置文件。
vi /etc/php-fpm.d/www.conf
按i进入编辑模式。
找到user = apache和group = apache,将apache修改为nginx。
- 按Esc键后,输入:wq并回车,保存关闭配置文件。
或者使用 sed 命令快速替换
sed -i 's/apache user/nginx user/' /etc/php-fpm.d/www.conf
sed -i 's/user = apache/user = nginx/' /etc/php-fpm.d/www.conf
sed -i 's/group = apache/group = nginx/' /etc/php-fpm.d/www.conf
新建并编辑phpinfo.php文件,用于展示PHP信息。
执行以下命令,新建phpinfo.php文件。
vim <网站根目录>/phpinfo.php
<网站根目录>是您在nginx.conf配置文件中location ~ .php$大括号内,配置的root参数值,如下图所示。
本文配置的网站根目录为/usr/share/nginx/html,因此需要运行以下命令新建phpinfo.php文件。
vim /usr/share/nginx/html/phpinfo.php
按i进入编辑模式。
输入下列内容,函数phpinfo()会展示PHP的所有配置信息。
<?php echo phpinfo(); ?>
按Esc键后,输入:wq并回车,保存关闭配置文件。
执行以下命令,启动PHP-FPM。
systemctl start php-fpm
- 执行以下命令,设置PHP-FPM开机自启动。
systemctl enable php-fpm
七、访问 http://192.168.30.10/phpinfo.php ,返回结果如下图所示,表示LNMP环境部署成功。
本文参考:
手动部署LNMP环境(CentOS 8)
八、如果不想联网安装
- 提前下载 php 安装时所需的 libsodium 包,把它上传到服务器上。
其他版本可以在 https://pkgs.org/上搜索下载。
https://dl.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/l/libsodium-1.0.18-2.el8.x86_64.rpm - 安装 libsodium 包。
dnf install libsodium-1.0.18-2.el8.x86_64.rpm
- 创建本地光盘镜像源。照上述 1-7 步骤配置即可。
扩展:
- 、这些文件是 Nginx 和 PHP-FPM 配置文件的位置和命名约定。
-
/etc/nginx/nginx.conf
是 Nginx 的主配置文件,其中包含全局的配置指令和默认的虚拟主机配置。 -
/etc/nginx/default.d/php.conf
是 Nginx 的默认虚拟主机配置文件,其中包含 PHP 子模块的配置指令,如fastcgi_pass
、fastcgi_param
等。 -
/etc/nginx/conf.d/php-fpm.conf
是可选的虚拟主机配置文件,如果您想为特定网站单独配置 PHP-FPM,则可以在这里定义相关指令。 -
/etc/php-fpm.d/www.conf
是 PHP-FPM 的主配置文件,其中包含了 PHP-FPM 的全局指令和默认的进程池配置。
这些文件路径和文件名与您的系统配置有关,可能会略有不同。
- 、这些文件是 Nginx 配置文件中常见的一些文件,其功能如下:
-
/etc/nginx/conf.d/
目录通常包含为特定网站定义的虚拟主机配置。在此目录中,您可能会看到与网站名称相匹配的.conf
文件。 -
/etc/nginx/default.d/
目录包含 Nginx 的默认虚拟主机配置文件,其中可能包含一些与 PHP 相关的配置指令。 -
/etc/nginx/fastcgi.conf
和fastcgi_params
文件包含 Nginx 关于 FastCGI 协议的配置指令,通常会在虚拟主机中使用。 -
/etc/nginx/koi-utf
和koi-win
文件包含了字符集转码的映射表,通常在 Nginx 配置文件中使用。 -
/etc/nginx/mime.types
文件包含了 MIME 类型的定义,可以帮助 Nginx 确定如何处理文件类型。 -
/etc/nginx/nginx.conf
是 Nginx 的主配置文件,其中包含了全局的配置指令和默认的虚拟主机配置。 -
/etc/nginx/scgi_params
包含了与 SCGI(Simple Common Gateway Interface)协议相关的配置指令。 -
/etc/nginx/uwsgi_params
包含了与 uWSGI 协议相关的配置指令。 -
/etc/nginx/*.default
文件通常是针对*.conf
文件的备份文件,如果您不需要某个配置文件,可以将其重命名为*.conf.default
。
需要注意的是,这些文件列表可能与您的系统配置和版本有所不同。
- 、这些文件都与 PHP 和 PHP-FPM 相关,具体作用如下:
-
/etc/php.d/
:该目录包含了一些 PHP 模块的配置文件,每个文件都描述了一个模块的配置选项。这些文件可以被包含在主 PHP 配置文件中,也可以在需要的时候手动加载。 -
/etc/php-fpm.conf
:PHP-FPM 的主配置文件,该文件指定了 PHP-FPM 运行的一些参数和选项,如监听的 Unix 套接字、监听的端口、用户和组等。 -
/etc/php-fpm.d/
:该目录包含了一些 PHP-FPM 子配置文件,这些文件包含了一些额外的配置选项,如池的配置、性能参数、环境变量等。这些子配置文件可以被php-fpm.conf
主配置文件包含进来。 -
/etc/php.ini
:PHP 的主配置文件,该文件包含了一些 PHP 运行时的参数和选项,如错误日志的位置、内存限制、上传文件大小限制等。这些参数可以通过修改该文件来调整 PHP 的行为。