php - 找不到请求的 URL - Laravel 5

标签 php apache laravel

我正在尝试将网络应用程序(我使用 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>

这是我的文件夹结构 This is my folder structure

这是 php artisan route:list 的输出 This is the output of php artisan route:list

更新: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>

更新:未找到 CSS 和 JS 错误 enter image description here

最佳答案

基于之前的讨论:

  • 您的 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/

相关文章:

php - 从SQL回显计数并回显

php - PHP exec输出与命令行输出不同吗?

apache - 从 Apache VirtualHost 将 HTTPS 永久重定向到 HTTP

javascript - 让 Laravel 应用程序既为基于浏览器的应用程序提供服务,又充当 iPhone 和 Android 应用程序的 API 的最佳实践是什么?

php定时器只允许用户每两秒输入一次

php - MySQL 和 PHP 的问题

PHP 不适用于 ssl 连接

java:如何用apache或lighttpd编写服务器?

php - 我可以在哪里存储数据库中每行更改的数组?

php - 使用 Laravel 查询生成器进行嵌套选择