如何用简单的PHP应用程序使用Nginxconfigurationwordpress应用程序?

我想用一个简单的PHP应用程序来configuration一个Wordpress应用程序。 该应用程序的目录结构如下:

根目录:/ var / www / demoApp /

WordPress的目录:/ var / www / demoApp / wordpress /

在这里,我想访问使用路由http:// BASE_URL / WordPress的WordPress的应用程序。 但我无法configurationnetworking服务器。 / var / www / demoApp /目录下的所有php页面都可以正常使用url http:// BASE_URL / 。 虽然WordPress的文件没有正确加载。

这是我的Nginxconfiguration块:

server { listen 80; root /var/www/demoApp; index index.php index.html index.htm; server_name localhost; error_page 500 404 /404.php; location / { try_files $uri $uri/ /index.php?$query_string; } location /wordpress { try_files $uri $uri/ /index.php?$query_string; rewrite ^(.*)$ /wordpress/index.php?$1 last; location ~ \.php { fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_index index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } location ~ \.php$ { try_files $uri /index.php =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } 

configuration有什么问题?

您对这两个应用程序都使用一个通用的root ,因此嵌套的location ~ \.php块是不必要的(并且在您的配置中不会被占用)。 请参阅此文档了解更多

try_filesrewrite是冲突的,一个try_files语句就足够了。 详情请参阅此文件 。

你应该尝试这样的事情:

 server { listen 80; root /var/www/demoApp; index index.php index.html index.htm; server_name localhost; error_page 500 404 /404.php; location / { try_files $uri $uri/ /index.php?$query_string; } location /wordpress { try_files $uri $uri/ /wordpress/index.php; } location ~ \.php$ { try_files $uri =404; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } }