通过apache访问localhost的laravel项目

时间:2014-05-13 03:15:18

标签: php apache laravel laravel-4

我刚刚在我的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>

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

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

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

哦,我也重启了apache。 - 通过我刚刚详述的步骤几次。

1 个答案:

答案 0 :(得分:0)

将Laravel instalation暴露给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. 将以下内容添加到.htaccess /home/user/development/laravel/public/规则RewriteEngine下的 RewriteBase /laravel 个文件中。

    laravel
  5. 重新启动apache2服务器,您的站点应该在localhost / laravel上可用。确保public_html文件夹中没有名为{{1}}的文件夹。