【发布时间】:2019-03-15 19:04:51
【问题描述】:
我是 PHP Symfony 的新手,我正在尝试使用 nginx 配置 symfony 项目,但它显示 nginx 404 错误,symfony 路径 URL 不起作用。只有 index.php 文件有效。
参考网站: https://www.nginx.com/resources/wiki/start/topics/recipes/symfony/
这是我的 nginx 代码:-
server {
#listen [::]:80 default_server;
server_name dummyurl.com;
root /var/www/html/folder name;
index index.html index.php;
location / {
# try to serve file directly, fallback to index.php
try_files $uri /index.php$is_args$args;
}
# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(\.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
#fastcgi_param REQUEST_URI $uri?$args=404;
}
}
【问题讨论】:
-
location部分应在server部分内。无论如何,您可以简单地从 Symfony 文档 (symfony.com/doc/current/setup/…) 复制示例配置,如果您的项目使用某个本地域,则只需更改root路径和server_name。 -
@Jakub Matczak 我试过但没用
-
如果您提供您尝试过的真实 nginx 配置,而不是您提供的修改过的配置,那么帮助您会容易得多。不管怎样,
root参数的值应该指向 Symfony 项目中的public目录。我不认为这是没有意义的/var/www/html/folder name。 -
屏幕还显示您正在尝试访问我也不明白的网址
/symfony/web/index.php。 Symfony 3 使用了web目录,但它没有index.php文件,而是app.php。另一方面,Symfony 4 使用index.php,但web目录已更改为public。你实际使用的是哪个 Symfony 版本?