现有的 laravel 4 项目在浏览器中显示 404

现有的 laravel 4 项目在浏览器中显示 404

我正在尝试使用 Nginx 和 HHVM 在运行 Ubuntu 14.04 LTS 的虚拟机上设置开发环境。为此,我遵循了教程这里

这对于新安装的 Laravel 来说很合适。但是当我导入现有的 Laravel 4 项目并尝试在我的实际机器上打开它时(它将作为运行 Windows 7 的客户端),我得到了一个404 文件未找到连接到时屏幕上出现错误http://sav.savrichard.dev。我确实将其添加到具有正确 IP 地址的 hosts 文件中。

虚拟机正在接收请求并以 404 错误响应。

我该如何解决这个错误?我对 Ubuntu 还很陌生,所以我不太清楚到底出了什么问题。

该项目位于

/var/www/sav.savrichard.net

服务器配置如下:

server {
    listen 80 default_server;

    root /var/www/sav.savrichard.net/public;
    index index.html index.htm index.php;

    server_name sav.savrichard.dev;

    access_log /var/log/nginx/localhost.sav.savrichard.dev-access.log;
    error_log  /var/log/nginx/localhost.sav.savrichard.dev-error.log error;

    charset utf-8;

    location / {
        try_files \$uri \$uri/ /index.php?\$query_string;
    }

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt  { log_not_found off; access_log off; }

    error_page 404 /index.php;      

    include hhvm.conf;

    # Deny .htaccess file access
    location ~ /\.ht {
        deny all;
    }
}

hhvm.conf 文件是:

location ~ \.(hh|php)$ {
    fastcgi_keep_conn on;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

编辑 1 (2014-06-13)
我尝试使用不同的 Ubuntu 14.04 VM 进行全新安装,但尝试通过浏览器中的 localhost 访问根目录时出现相同的错误。与上次一样,错误为 404 文件未找到。

编辑 2 (2014-06-13)
根据 roadmr 的要求,以下是访问和错误日​​志中的条目。

访问日志

访问日志

这些条目如下所示:
192.168.174.1 - - [13/Jun/2014:10:16:45 -0700] "GET / HTTP/1.1" 404 49 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)

错误日志

错误日志

是的,错误日志实际上是空白的。

编辑 3 (2014-06-13)
在 Ubuntu 主机文件中添加了与 Windows 机器中相同的条目。结果相同。

编辑 4 (2014-06-13)
也许需要注意的是,Ubuntu VM 的本地 IP 地址是192.168.174.130运行 Windows 7 的本地计算机是192.168.2.105

答案1

今天我想和你一起尝试一个可能的解决方案。编辑你的配置文件。在行中将try_files整行替换为try_files $uri $uri/ /index.php?$query_string;

答案2

找到解决方案了吗?发生这种情况的原因是,从其他计算机复​​制的文件为文件和文件夹提供了 600 权限。您需要更改文件夹的文件 644 和 755 的权限,但 app/storage 文件夹(Laravel 4)和 storage 文件夹(对于 laravel 5)除外,需要具有 775 权限。下面这一行对我有帮助。我很确定它也会对你有帮助。我使用的是 Laravel 4.2,所以如果你使用的是 Laravel 5,请更改存储文件夹的路径

sudo find /var/www/project_name \( -type d -exec chmod 755 -- {} + \) -o \( -type f -exec chmod 644 -- {} + \)
sudo chgrp -R www-data /var/www/project_name
sudo chmod -R 775 /var/www/project_name/app/storage

相关内容