nginx配置php-fpm虚拟主机站点


ubuntu下安装nginx 很简单 sudo apt-get install nginx

然后安装php-fpm 我这本地php7.4所以这么写

sudo apt search php7.4-fpm

然后好了以后改一下配置 /etc/php/7.4/fpm/pool.d里面找到 listen

;listen = /run/php/php7.4-fpm.sock
listen = 127.0.0.1:9000

分号注释上面的 添加开启下面的

然后把那些php ini需要开的扩展都在 /etc/php/7.4/fpm/php.ini里面给开起来

重启php-fpm服务

sudo /etc/init.d/php7.4-fpm restart

看看它现在状态

$ netstat -tln |grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN 

发现已经监听了端口

$ sudo systemctl status php7.4-fpm
● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-02-18 13:42:21 +08; 8min ago
       Docs: man:php-fpm7.4(8)
    Process: 725830 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.4/fpm/pool.d/www.conf 74 (c>
   Main PID: 725826 (php-fpm7.4)
     Status: "Processes active: 0, idle: 2, Requests: 2, slow: 0, Traffic: 0req/sec"
      Tasks: 3 (limit: 18996)
     Memory: 16.9M
     CGroup: /system.slice/php7.4-fpm.service
             ├─725826 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ├─725828 php-fpm: pool www
             └─725829 php-fpm: pool www

2月 18 13:42:21 cit000174nb systemd[1]: Starting The PHP 7.4 FastCGI Process Manager...
2月 18 13:42:21 cit000174nb systemd[1]: Started The PHP 7.4 FastCGI Process Manager.

并且php-fpm的状态运行良好

然后去做nginx的配置 创建一个站点文件

/etc/nginx/sites-available/local.ice.com

编辑内容为

#Log Format
  log_format access_exp '$time_iso8601 | $remote_addr | $request | $status | $request_body | $http_referer | $http_user_agent | $http_x_forwarded_for';

server {
  listen 80;

  root /var/www/html/ice/hello/public;

  index index.html index.htm index.php ;
  server_name local.ice.com;

  # log
  access_log /var/log/nginx/local.ice.com.access.log access_exp;
  error_log /var/log/nginx/local.ice.com.error.log;

  location ~ \.php$ {
    root           /var/www/html/ice/hello/public;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
  }
}

然后来到/etc/nginx/sites-enabled

进行设置一个软链接文件

sudo ln -s ../sites-available/local.ice.com local.ice.com

然后查看一下ls -al

$ ls -al
total 16
drwxr-xr-x 2 root root 4096 2月  18 11:28 ./
drwxr-xr-x 8 root root 4096 6月   7  2021 ../
-rw-r--r-- 1 root root 2416 3月  26  2020 default
-rw-rw-rw- 1 root root  677 2月  18 13:35 local.ice.com

然后就 重启nginx

sudo systemctl restart nginx.service

如果你只想重启nginx配置可以使用

nginx -s reload

如果遇到这个提示

nginx: [warn] the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1
nginx: [alert] kill(728201, 1) failed (1: Operation not permitted)

加sudo就行了  sudo nginx -s reload 

启动后看看/var/log/nginx/local.ice.com.error.log 和 /var/log/nginx/local.ice.com.access.log

如果有啥错误就按照错误提示去改就行了