nginx+php8配置

LNMP or LEMP,在低内存VPS上使用php。

apache httpd太吃内存,使用php的话8G内存很快都能吃光,像我这样的穷站长挂网站都是在512M的垃圾VPS上的,用了httpd就会爆内存,套上CDN时不时就会525,还是换成nginx好。

先安装好PHP,编译安装要添加–enable-fpm选项。

CentOS官方源的PHP版本比较老,安装最新的Wordpress都不行,那就直接干到最新版。

安装好PHP8之后,还要自己创建php-fpm服务,因为nginx只是一个静态http服务器,所以php-fpm也是一个服务器。系统默认使用systemd管理服务,用它创建一个服务很简单。

先创建一个service文件:

vi /usr/lib/systemd/system/php-fpm.service

然后输入:

[Unit]
Description=PHP FPM Service
Requires=nginx.service
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/sbin/php-fpm -c /usr/local/lib/php.ini

[Install]
WantedBy=multi-user.target

上面的代码默认要求nginx启动后启动php-fpm。如果不希望这样删除Requires这一行就行了。

然后创建php-fpm的配置文件:

vi /usr/local/etc/php-fpm.conf

添加以下内容:

[www]
user = apache
group = apache
listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

[global]
daemonize = no

可以根据自己的需要调整php-fpm服务器的数量:

  • pm.max_children 意思是最大创建的服务器数量
  • pm.start_servers 意思是刚启动的时候创建的服务器数量
  • pm.min_spare_servers 最小空服务器数量
  • pm.max_spare_servers 最大空服务器数量

开启php-fpm服务并开机启动:

systemctl start php-fpm
systemctl enable php-fpm

然后还要配置nginx将php文件交给php-fpm处理:

vi /etc/nginx/nginx.conf

在server配置框里面添加:

location ~ [^/]\.php(/|$) {
                fastcgi_param HTTP_PROXY "";
                fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                include fastcgi_params;
       }

这样安装了wordpress的话将wp的文件复制到nginx配置里root参数目录下就能使用啦。

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注