我正在尝试将网络应用程序(我使用 Laravel 5 制作)上传到 DigitalOcean Droplet。但是我得到一个404 错误:
The requested URL /public/login was not found on this server.
这是我的apache2.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/html/hotelguide/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
000-default.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/hotelguide/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
更新:LARAVEL 日志
Stack trace:
#0 /var/www/html/hotelguide/vendor/symfony/console/Application.php(183): Symfony\Component\Console\Application->find('routes')
#1 /var/www/html/hotelguide/vendor/symfony/console/Application.php(117): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#2 /var/www/html/hotelguide/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(107): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#3 /var/www/html/hotelguide/artisan(36): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#4 {main}
更新:PHP 错误日志(最后一个错误)
124.43.95.22 - - [02/Sep/2016:14:01:29 +0530] "GET /login HTTP/1.1" 500 206 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"
完成 Alexey 详述的步骤后,我现在收到 HTTP 500 错误。
更新:HTACCESS 文件
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
最佳答案
基于之前的讨论:
- 您的 APACHE_RUN_USER 和 APACHE_RUN_GROUP 是www-data
- 您的
/var/www/html/hotelguide/public
文件夹所有者是 root 并且其组是 www-pub
public
文件夹的当前权限不适合 Apache。
因此,您必须在此目录中授予 Apache 权限,为此,您只需键入以下命令:
chown -R www-data:www-data /var/www/html/hotelguide/
关于php - 找不到请求的 URL - Laravel 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39286925/