【问题标题】:Laravel 5: The requested URL was not found on this serverLaravel 5:在此服务器上找不到请求的 URL
【发布时间】:2016-12-21 04:53:25
【问题描述】:

我已经通过 Composer 在这个目录 var/www/html/boh/boh 中安装了 Laravel 5.2。

虽然听说不推荐,但我还是使用了文件夹上的chmod 777 100% 访问它。

我可以正常看到 laravel 欢迎页面,但是在尝试使用 php artisan make:auth 创建用户登录/注册表单后,登录/注册链接都不起作用。我尝试自己添加带有View::make 的任何路线,但是localhost/ 以外的所有其他链接都给我这个错误The requested URL was not found on this server.

我只是 linux 的初学者,我是第一次配置框架。我已经阅读了所有类似的主题,但似乎没有任何帮助。

apache.config

<Directory />
    #Options FollowSymLinks
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride none
    Order deny,allow
    Allow from all
    Require all granted
</Directory>

<Directory /usr/share>
    AllowOverride None
    Require all granted
</Directory>

<Directory /var/www/html/boh/boh/public>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

#<Directory /srv/>
#   Options Indexes FollowSymLinks
#   AllowOverride None
#   Require all granted
#</Directory>

站点可用/000-default.conf

DocumentRoot /var/www/html/boh/boh/public/

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>

每次更改后我都使用sudo service apache2 restart。 有什么帮助吗?

【问题讨论】:

  • View::make的路线吗?我不明白这个。你用Route::get('foo', function () {});写路由
  • 好吧,我设置了一些只返回视图的路线。检查是否有任何链接实际工作
  • 您尝试过哪些网址? http://localhost/ 最初将指向 /var/www,因此您的 URL 应该类似于 http://localhost/boh/boh/public/
  • @Jonathon 我已经尝试过http://localhost/boh/boh/public/loginhttp://localhost/login,但它们都不起作用。不知道这是怎么回事

标签: php apache laravel laravel-5 debian


【解决方案1】:

我建议使用 Homestead 而不是灯。 Homestead 适合 laravel 在本地机器上成功运行您的 laravel 应用程序而不会出现问题。

宅基地说明:

1) 安装 VirtualBox 5.x 或 VMWare

2) 安装 Vagrant

3) 使用这个命令将 laravel/homestead 添加到你的 vagrant box

4) 从终端运行此命令:

$ vagrant box 添加 laravel/homestead

$ cd ~

$ git clone https://github.com/laravel/homestead.git

$ cd 家园

$ bash init.sh

5) 将你的项目复制到 ~/Code

6) 配置 nginx 站点: - 如果未安装则安装 vim 并运行:

$ sudo vim ~/Homestead/Homestead.yaml

网站: 地图:your.app

  to: /home/vagrant/Code/YourProjectName/public
  • 配置您的主机:

    $ sudo vim ~/etc/hosts

将 192.168.10.10 your.app 添加到您的主机

  • 更新 nginx 更改

    $ sudo vagrant reload --provision

否则,如果你想运行 laravel 命令,你应该使用 Homestead 目录中的这个命令 ssh 到你的 vagrant box

$ cd 家园

$ vagrant ssh

$ cd 代码/你的项目名称

然后你可以从这里运行你所有的 php artisan 和 composer 命令。

欲了解更多信息:https://laravel.com/docs/5.2/homestead

您也可以使用 LaraDock,它也为您提供与 homestead 相同的完整虚拟开发环境,只是它使用容器而不是完整的虚拟机。“运行虚拟容器比运行完整的虚拟机要快得多”,因为它在他们的文档中说。

更多信息请查看 github 中的 laradock 文档。

【讨论】:

    猜你喜欢
    • 2015-12-17
    • 2016-07-23
    • 1970-01-01
    • 2017-12-26
    • 2015-03-30
    • 2016-11-23
    • 2017-03-21
    • 2010-10-16
    • 1970-01-01
    相关资源
    最近更新 更多