使用 nginx 来提供 node.js 和 php 生成的内容

使用 nginx 来提供 node.js 和 php 生成的内容

我维护一个 Ubuntu 主机,它运行一个由 node.js 驱动的网站。他们最近要求添加一个 WP 博客以供使用。我已经安装了 php3-fpm 和 Wordpress,并按照 nginx 网站上的建议修改了我的 nginx.conf。我的 nginx 根来自默认配置并指向 /usr/shares/nginx/html 我在那里放置了一个简单的 php 脚本来测试整个设置。没有看到 php 生成的输出。相反,我看到我的 php 脚本被下载为纯 ascii 文件。这是我的 nginx.conf 现在的样子: server { listen 80; server_name myhost.com www.myhost.com; return 301 https://www.myhost.com$request_uri; } server { listen 443 ssl; server_name www.myhost.com;

ssl_certificate /etc/letsencrypt/live/myhost.com/fullchain.pem ;
ssl_certificate_key /etc/letsencrypt/live/myhost.com/privkey.pem ;

location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_pass http://localhost:3000;
}

location ~ \.php$ {
    try_files $uri = 404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

location /ad_image {
    root /home/me/www ;
}

location /robots.txt {
    alias /home/me/robots.txt ;
    access_log off ;
}

location /sitemap.xml {
    alias /home/me/sitemap.xml ;
    access_log off ;
}

}

答案1

  1. 我假设您已正确安装 PHP。如果没有,请使用“sudo apt-get install php5-fpm”进行安装
  2. 确保已在 php.ini 中将 cgi.fix_pathinfo 更改为零
  3. 确保您在 FPM 配置文件“/etc/php5/fpm/pool.d/www.conf”中设置了正确的路径

将“listen = 127.0.0.1:9000”更改为“listen = /var/run/php5-fpm.sock”

  1. 重启php-fpm和nginx即可生效。

sudo 服务 php5-fpm 重启;sudo 服务 nginx 重启

相关内容