Win10子系统ubuntu(wsl)中配置nginx和 php7.4(php-fpm) 的介绍

出于某些需要,本人决定在wsl下配置nginx+php7.4 途中遇到了些小问题,与在真实linux下的配置略有不同,这里介绍下安装时遇到的坑

Win10子系统ubuntu(wsl)中配置nginx和 php7.4(php-fpm) 的介绍

链接

  1. 使用sudo apt install nginx安装nginx 没有问题

  2. 使用sudo apt-fast install php7.4 和php7.4-fpm关于安装的详细步骤,在另一篇文章中详细介绍,这里不再赘述。链接

  3. 安装完php-fpm后的配置文件所在路径 /etc/php/7.4/fpm/php-fpm.conf /etc/php/7.4/fpm/pool.d/www.conf

  4. 运行sudo /usr/sbin/php-fpm.7.4 报错如下:

    unable to bind listening socket for address '/run/php/php7.4-fpm.sock'

    判断由于php-fpm配置的账户权限不够无法创建该文件 临时解决办法替php-fpm创建:

    # sudo mkdir -p /run/php/
    # sudo touch /run/php/php-fpm.sock

    永久解决办法: \etc\init.d 下查找对应的服务启动命令 php7.4-fpm 使用 sudo service php7.4-fpm start启动

  5. 在nginx中配置php-fpm:

    server {
    listen 80 default_server;
    listen [::]:80 default_server;
    
    root /mnt/d/web/php/; #本机挂载盘路径地址
    
    # Add index.php to the list if you are using PHP
    index index.html index.htm index.nginx-debian.html;
    
    server_name _;
    
       location / {
           if (!-e $request_filename) {
               rewrite ^(.*)$ /index.php?s=$1 last;
               break;
           }
       }
    
       location ~ \.php$ {
    
           fastcgi_pass unix:/run/php/php7.4-fpm.sock;  #此处需要替换成 fpm.sock所在路径
    
           fastcgi_index index.php;
    
           fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    
           include fastcgi_params;
    
       }
    
    }

    此处需要注意的是,以往在linux上 fastcgi_pass 会配置成127.0.0.1:9000,而此处需要与php-fpm中配置的listen 一致不是url+port 而是sock地址