安装部署LNMP环境实现动态网站解析
静态网站 在不同环境下访问,网站内容不会变化
动态网站 在不同环境下访问,网站内容有可能发生变化(需安装php-fpm服务)
- 安装部署Nginx、MariaDB、PHP、PHP-FPM;
- 启动Nginx、MariaDB、FPM服务;
- 并测试LNMP是否工作正常
一、安装软件
- nginx
- mariadb(数据库客户端软件)、mariadb-server(数据库服务器软件)、mariadb-devel(其他客户端软件的依赖包)
- 安装数据库后 可以当客户端和服务器
- php(解释器)、php-fpm(进程管理器服务)(作为依赖可以自动安装)、php-mysqlnd(PHP的数据库扩展包)(让php可以控制数据库)
# 安装nginx
[root@proxy nginx]#killall nginx #停止nginx程序
[root@proxy nginx]#cd /root/lnmp_soft/nginx-1.22.1
[root@proxy nginx-1.22.1]#rm -rf /usr/local/nginx #删除nginx原有目录
[root@proxy nginx-1.22.1]# yum -y install gcc make openssl-devel pcre-devel
[root@proxy nginx-1.22.1]# ./configure \
> --user=nginx --group=nginx \
> --with-http_ssl_module
[root@proxy nginx-1.22.1]# make && make install
# 安装数据库
[root@proxy ~]# yum -y install mariadb mariadb-server mariadb-devel
# 安装php和php-fpm
[root@proxy ~]# yum -y install php php-mysqlnd
[root@proxy ~]# yum -y install php-fpm
启动服务
# 启动Nginx服务,如果服务器上已经启动了其他监听80端口的服务(如httpd),则需要先关闭该服务。
[root@proxy ~]# systemctl stop httpd #如果该服务存在则关闭该服务
[root@proxy ~]# /usr/local/nginx/sbin/nginx #启动Nginx服务
[root@proxy ~]# ss -utnlp | grep :80
# 启动MySQL服务
[root@proxy ~]# systemctl enable mariadb --now #启动服务器,并设置开机自启
# 启动PHP-FPM服务
[root@proxy ~]# systemctl enable php-fpm --now #启动fpm,并设置开机自启
二、构建构建LNMP平台
- php-fpm配置文件
- 1. 使用IP的方式
- 2. socket方式(端口的方式) 网络连接
2.1 IP方式
php-fpm 配置文件:/etc/php-fpm.d/www.conf
修改php-fpm 配置文件
[root@proxy etc]# vim /etc/php-fpm.d/www.conf
[www]
listen = 127.0.0.1:9000 #php-fpm端口号(使用网络通信)
;listen = /run/php-fpm/www.sock #注释该行
pm.max_children = 50 #最大进程数量
pm.start_servers = 5 #最小进程数量
[root@proxy etc]#systemctl restart php-fpm #重启服务
修改Nginx配置文件并启动服务
# 找到以下几行
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
...
location ~ \.php$ { #~是使用正则表达式,匹配以.php结尾
root html;
fastcgi_pass 127.0.0.1:9000; #将请求转发给本机9000端口
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi.conf; #加载fastcgi配置文件
}
设置 index.php为默认首页
...
location / {
root html;
index index.php index.html index.htm;
#设置默认首页为index.php,当用户在浏览器地址栏中只写域名或IP,不说访问什么页面时,服务器会把默认首页index.php返回给用户
}
...
只要把index.php放在首位就是默认访问index.php
2.2 socket方式
相比于IP方式,这个效率高,进程间通信,但是只能在一台服务器上使用
修改php-fpm 配置文件
[root@proxy etc]# vim /etc/php-fpm.d/www.conf
[www]
;listen = 127.0.0.1:9000 #注释或删除该行
listen = /run/php-fpm/www.sock #socket方式(使用进程通信)
listen.acl_users = apache,nginx,nobody #添加nobody账户
[root@proxy etc]#systemctl restart php-fpm #重启服务
/run/php-fpm/www.sock 是接口文件,如果,安装nginx没指定用户,就要添加nobody账户
修改Nginx配置文件并启动服务
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
...
location ~ \.php$ { #~是使用正则表达式,匹配以.php结尾
root html;
#fastcgi_pass 127.0.0.1:9000; #注释或删除该行
fastcgi_pass unix:/run/php-fpm/www.sock; #将请求转发给php-fpm进程
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi.conf; #加载fastcgi配置文件
}
[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload