我急需帮助在LAMP服务器上设置我的laravel项目。 到目前为止,我已经测试了我的" Pretty URL"在我的localhost xampp服务器上没有任何问题。现在,我正在尝试在实际的LAMP服务器上进行设置,我遇到了问题
到目前为止,我已经安装了LAMP服务(Ubuntu,Apache2,MYSQL,PHP5(带curl和mcrypt))。目前我在我的主目录中有一个laravel项目,其中包含一个符号链接到我的/ var / www / html文件夹中的公共文件夹,如... project,symlink。
我已使用以下配置
更改了我的/etc/apache2/apache2.conf<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
然后我使用命令sudo a2enmod rewrite
并根据laravel文档中的说明编辑了我的.htaccess文件。
最后,我重新启动了我的apache服务:sudo service apache2 restart
,当我尝试转到&#34; mydomain.com/public"我收到403禁用错误。
有没有人可以帮助我?
答案 0 :(得分:0)
关于Apache
配置,似乎没问题。我更喜欢禁用索引(以防止目录列表)和MultiViews(以防止隐式文件名模式匹配)。
<Directory /var/www/html>
Options +FollowSymLinks -MultiViews -Indexes
AllowOverride All
Require all granted
#some general directives could be handy here also
<FilesMatch "\.(png|jp?g|gif|ico|mp4|wmv|mov|mpeg|css|map|woff?|eot|svg|ttf|js|json|pdf|csv)">
ExpiresActive on
ExpiresDefault "access plus 2 weeks"
</FilesMatch>
</Directory>
问题似乎与权限相关。默认情况下,Apache
运行为www-data:www-data
。这可以在envvars
中更改(更改后应Apache
重新启动)或在作为编译时选项提供时更改。 /etc/apache2/envvars
...
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
...
然而,更好的方法是
/var/www/html
www-data
组更改为sudo chown :www-data /var/www/html
/var/www/html
将2770
的模式更改为sudo chmod 2770 /var/www/html
。由于Apache
需要执行权限才能访问目录。将此命令递归地应用于其他目录2660
以确保安全措施