1. 安装PHP:
PHP是服务端经常使用的编程语言,命令只需一行:
♾️ text 代码:sudo apt install php-fpm
一旦安装完成,FPM 服务将会自动启动。想要检查服务状态,运行(这里安装的是7.4版本,可以使用命令php -v
查看,将7.4改成实际安装版本即可):
sudo systemctl status php7.4-fpm
还可以安装mysql扩展,以便使得PHP可以做数据库相关操作:♾️ text 代码:
sudo apt install php-mysql
安装后也需要重启PHP-FPM服务,以确保新更新被运行:
♾️ text 代码:sudo systemctl restart php7.4-fpm
2. Nginx的相关配置
2.1
创建文件:sudo vim /etc/nginx/php-fpm74.conf,写入如下内容:
♾️ text 代码:location ~ .*\.php$ {
fastcgi_pass 127.0.0.1:9004;
fastcgi_param PHP_SELF $uri;
fastcgi_param SERVER_NAME $host;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
include php_cgi.conf;
}
fastcgi_pass 127.0.0.1:9004
代表要将信息通过9004端口传递给php-fpm处理,2~6行都是定义的变量,7,8行是include的两个文件。
2.2
创建文件:sudo vim /etc/nginx/php_cgi.conf,写入如下内容:
♾️ text 代码:fastcgi_connect_timeout 300s;
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;
fastcgi_buffer_size 128k;
fastcgi_buffers 8 128k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
2.3
创建文件:sudo vim /etc/nginx/conf.d/www.conf
,写入如下内容:
server {
server_name 114.1.114.1;
index index.php;
root /opt/www;
include php-fpm74.conf;
}
进入/opt目录,新建www目录,这个目录就是默认网站的页面所在的目录了:
♾️ text 代码:cd /opt
sudo mkdir www
3. php-fpm的相关配置
创建文件:sudo vim /etc/php-fpm.d/www.conf
,(注意这个地方写的位置需要自己注意一下,我的安装位置是/etc/php/7.4/fpm
,里面有这样四个文件或目录:conf.d php-fpm.conf php.ini pool.d,php-fpm.conf
即主配置文件,其中有一句这样的语句:include=/etc/php/7.4/fpm/pool.d/*.conf
,意思是导入以conf结尾的文件配置,所以我的文件位置在这个地方/etc/php/7.4/fpm/pool.d/www.conf
),写入如下内容:
[global]
pid = run/php-fpm.pid
error_log = log/error.log
[www]
listen = 127.0.0.1:9004
user = www-data
group = www-data
pm = static
pm.max_children = 5
rlimit_files = 20000
request_terminate_timeout = 10
pm.max_requests = 20000
user,group也需要自定义化,打开文件/etc/nginx/nginx.conf
,看第一行user www-data
,需与此值相同。
4. 重启服务,更新配置:
♾️ text 代码:sudo systemctl restart nginx php7.4-fpm
也可以将两个服务加入开机服务(disable取消):
♾️ text 代码:sudo systemctl enable nginx php7.4-fpm
5. 测试文件
回到/opt/www目录,创建文件:sudo vim info.php
<?php
phpinfo();
?>
然后在浏览器输入:ServerIP/info.php即可看到
6.可能错误排查
查看错误日志
♾️ text 代码:// nginx
tail /var/log/nginx/error.log
// php
systemctl status php7.4-fpm.service
错误1:403,无文件或者权限不足
无文件问题根据3.3节设置的index去看对应的文件夹是否有文件
权限不足问题,则需要文件所有者账户将index的对应文件夹提权:sudo chmod R 777 /opt/www
错误2:503 gateway error
,一般是php-fpm配置出错,需注意配置文件不要写错位置(要自己找安装位置,一般在/etc
或者/usr/local/etc
中并且要从主配置文件顺藤摸瓜,找到include的文件位置,并在相应位置创建),另外配置listen端口一定需与nginx的pass端口相同。
[tip type=""]教程一:
[cid="25"]
[/tip]