【问题标题】:Visting a laravel project with localhost via apache通过 apache 访问带有 localhost 的 laravel 项目
【发布时间】:2014-06-30 14:15:25
【问题描述】:

我刚刚在我的 Home/public_html 文件夹中安装了一个 laravel 项目。我给它起了个名字,为此我们称之为laravel。所以模板安装到Home/public_html/laravel,然后我运行了composer install。我收到数据库密码错误。我修复了它,再次运行它,一切顺利。然后我创建了一个迁移、一个控制器和一个视图。我试图通过 localhost/laravel/public/events 导航到它(事件是我创建的视图)我得到一个 404。我记得我需要一个配置文件 etc/apache2/sites-available 我创建了配置文件这个结构:

<VirtualHost *:80>

ServerAdmin webmaster@localhost
DocumentRoot /home/user/public_html/laravel/public/

<Directory /home/user/public_html/laravel/public/>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/laravel-error.log
CustomLog ${APACHE_LOG_DIR}/laravel-access.log combined

</VirtualHost>

然后我在sites-enabled 文件夹中创建了一个symlink。那没有帮助。 然后我导航到localhost/laravel,它只是给了我目录结构。

我错过了什么?我做错了什么?

我在public_html 中有另一个文件夹,它有自己的配置文件,可以完美运行(它指向home/user/public_html/。它还有一个符号链接。每个项目中是否有东西告诉项目使用哪个配置?他们有吗?只是工作?我对此的了解真的到此为止。基本上,我已经用尽了我所知道的。我错过了什么/做错了什么?

哦,我也重新启动了 apache。 - 多次完成我刚才详述的步骤。

【问题讨论】:

标签: php apache laravel laravel-4


【解决方案1】:

将 Laravel 安装暴露给 Web 服务器绝不是一个好主意。由于您可以访问laravel 文件夹的文件列表,我相信您的文档根目录设置为/home/user/public_html。

解决这个问题的更好方法如下。

  1. 将整个 laravel 安装保留在 public_html 目录之外。让我们假设在/home/user/development

  2. 您可能需要在DocumentRoot下方的apache配置中添加以下内容。

    Alias /laravel /home/user/development/laravel/public
    
  3. 添加以下Directory配置

    <Directory /home/user/development/laravel/public/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    
  4. 在/home/user/development/laravel/public/ 的RewriteEngine 规则下方的.htaccess 文件中添加以下内容。

     RewriteBase /laravel
    

重启 apache2 服务器,你的站点应该在 localhost/laravel 上可用。确保public_html 文件夹内没有名为laravel 的文件夹。

【讨论】:

  • 感谢您的帮助。我以为它会起作用。不过好像没有。还有什么要检查的吗?
  • 你的DocumentRoot是什么?
  • DocumentRoot /home/user/development/laravel/public/
  • 您还有其他的 DocumentRoot 为 /home/user/public_html 的虚拟主机配置吗?尝试在那里添加Alias 和Directory。确保已禁用 DocumentRoot /home/user/development/laravel/public/ 的 vhost conf。
  • 我不确定你的意思。我还有另外两个 conf 文件,其中DocumentRoot 是/home/user/public_html。他们没有Alias。这与DocumentRoot/home/user/development/laravel/public 的 conf 有什么关系?如何禁用 conf 文件?通过从启用站点的文件夹中删除它?
猜你喜欢
  • 2018-06-27
  • 2014-07-04
  • 2017-05-09
  • 2018-09-28
  • 1970-01-01
  • 2019-08-06
  • 1970-01-01
  • 2011-07-17
  • 2014-01-23
相关资源
最近更新 更多