我刚刚在我的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。 - 通过我刚刚详述的步骤几次。
答案 0 :(得分:0)
将Laravel instalation暴露给Web服务器绝不是一个好主意。由于您可以访问laravel
文件夹的文件列表,因此我认为您的文档根目录设置为/home/user/public_html
。
解决此问题的更好方法如下:
将整个laravel安装在public_html
目录之外。我们假设在/home/user/development
您可能需要在DocumentRoot
下面的apache配置中添加以下内容。
Alias /laravel /home/user/development/laravel/public
添加以下Directory
配置
<Directory /home/user/development/laravel/public/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
将以下内容添加到.htaccess
/home/user/development/laravel/public/
规则RewriteEngine
下的 RewriteBase /laravel
个文件中。
laravel
重新启动apache2服务器,您的站点应该在localhost / laravel上可用。确保public_html
文件夹中没有名为{{1}}的文件夹。