开发笔记

2021-12-19 13:15:21 浏览数 (1)

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的用户及对应的用户组:

代码语言:javascript复制
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/

代码语言:javascript复制
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 国际协议进行许可,转载引用文章应遵循相同协议。

0 人点赞