1为PHP-FPM及Nginx创建专门的用户
代码语言:javascript复制groupadd www
useradd -s /sbin/nologin www -g www -M
-s参数是表示不允许登录,-g参数是分配到www组,-M表示不创建用户目录。
2 安装php
CentOS8自带了PHP7.2版本,相对来说比较新,暂时不需要借助第三方的源来安装,而且CentOS8自带的PHP的模块也相对来说够用,使用下面命令可以看到所有PHP相关的包:
代码语言:javascript复制 yum search php
安装模块
代码语言:javascript复制yum -y install php php-mysqlnd php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-zip php-cli php-fpm php-gd php-mysqlnd php-mbstring php-opcache php-pdo php-json
配置PHP-FPM
安装好了之后,我们还需要稍稍配置一下PHP-FPM
,以让其更好的与Nginx进行配合工作。
编辑/etc/php-fpm.d/www.conf
文件,这个文件有两个需要注意的地方,其中一个就是运行PHP-FPM的用户及对应的用户组:
vim /etc/php-fpm.d/www.conf
user = www
group = www
listen = /run/php-fpm/www.sock
修改上述文件,将其中的user及group字段由apache更改成上述我们创建的www。
另外一个就是listen = /run/php-fpm/www.sock 这个配置项,这一行配置了PHP-FPM运行模式及对应的文件目录,我们后面配置Nginx时会用到它。
启动:
代码语言:javascript复制systemctl start php-fpm
Nginx安装及配置
安装Nginx很简单,CentOS8系统源自带,只需要一行命令就能安装好:
代码语言:javascript复制yum install nginx
启动:
代码语言:javascript复制systemctl start nginx
基础配置也很简单,到这一步,我们只需要稍稍改动一下Nginx的配置文件就行,Nginx的配置文件在/etc/nginx/nginx.conf,这个配置文件能配置Nginx所有的功能,包括其他的配置文件也是通过这个文件进行加载。打开其配置文件,修改user字段,并增加几行可能会用上的配置:
代码语言:javascript复制vim /etc/nginx/nginx.conf
user = www www;
//开启gzip压缩
gzip on;
//关闭Nginx版本号显示
server_tokens off;
//增加最大上传文件大小
client_max_body_size 8M;
MySQL 8安装
安装MySQL8及对应工具:
代码语言:javascript复制yum install mysql mysql-server
启动MySQL服务器:
代码语言:javascript复制systemctl start mysqld
初始化命令
代码语言:javascript复制mysql_secure_installation
为网站添加单独的Nginx配置文件
其实放置网站的Nginx配置文件各个发行版都有自己的做法,有些是放在/etc/nginx/conf.d/
vim /etc/nginx/conf.d/ln.conf
server
{
listen 80;
listen 8085;
listen [::]:8085;
listen [::]:80;
server_name 192.168.123.98;
index index.php index.html index.htm default.php default.htm default.html;
root /var/www/ln/public; #运行目录
include /etc/nginx/default.d/*.conf;
index index.php index.html index.htm;
location ~ .(php|phar)(/.*)?$ { #php访问配置
fastcgi_split_path_info ^(. .(?:php|phar))(/.*)$;
fastcgi_intercept_errors on;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass unix:/run/php-fpm/www.sock;
}
#伪静态配置
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=$1 last; break;
}
}
access_log /var/log/nginx/ln.log;
error_log /var/log/nginx/ln-error.log;
}
网站文件目录赋予可读写权限
代码语言:javascript复制chown -R www.www /var/www/ln
常见问题
不能解析php文件
配置ln.conf文件
代码语言:javascript复制include /etc/nginx/default.d/*.conf;
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 $fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass unix:/run/php-fpm/www.sock;
}
502
代码语言:javascript复制cd /var//run/php-fpm/
chmod -R 777 www.sock
/var/lib/php/ session
nginx 不能启动
代码语言:javascript复制setenforce 0
版权属于:逍遥子大表哥
本文链接:https://cloud.tencent.com/developer/article/1921489
按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。