使用nginx为node.js和php生成的内容提供服务


0

我维护一个运行由node.js驱动的网站的Ubuntu主机。他们最近要求添加一个WP博客。我已经按照nginx网站上的建议安装了php3-fpm和Wordpress并修改了我的nginx.conf。我的nginx root来自默认配置并指向/ 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 ;
}

}


你错过了一个root指令。从你的问题中不清楚WordPress的安装位置以及你想要访问它的URI。
理查德史密斯

@RichardSmith感谢你指出我的问题不完整。我编辑了我的问题。
Alex

Answers:


0
  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 restart; sudo服务nginx重启


您是否可以提供更多解释以及可能的一些示例语法来改善这个答案?
music2myear 2017年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.