Laravel 5.2 显示 apache 屏幕而不是 index.php
Posted
技术标签:
【中文标题】Laravel 5.2 显示 apache 屏幕而不是 index.php【英文标题】:Laravel 5.2 shows apache screen instead of index.php 【发布时间】:2016-12-24 00:15:36 【问题描述】:我检查了大多数关于我的问题的问题,因为这对于 Laravel 初学者来说似乎是非常常见的错误,但到目前为止我找不到解决方案:(
我用的是数字海洋***,centos7,php5.6,apache,windows 10。
安装 laravel 并配置 httpd.conf、mysite.com.conf、.htaccess 和 hosts 文件然后重新启动 apache,但仍然不显示欢迎屏幕,而是显示 apache 屏幕。
+================================================ ====+
这是我的设置...
1) /etc/httpd/conf/httpd.conf
<Directory "/var/www/html">
Options -Indexes +FollowSymLinks
AllowOverride None (default setting)
并在文件末尾添加
ServerSignature Off
ServerTokens Prod
IncludeOptional sites-enabled/*.conf
其他默认设置如下,仅供参考
DocumentRoot "/var/www/html"
<Directory "/var/www">
AllowOverride None
Require all granted
</Directory>
2) /etc/httpd/sites-available/mysite.com.conf
<VirtualHost *:80>
ServerAdmin admin@mysite.com
ServerName mysite.com
ServerAlias mysite.com
DocumentRoot /var/www/mysite.com/public_html
ErrorLog /var/log/httpd/mysite.com_error_log
CustomLog /var/log/httpd/mysite.com_access_log combined
AddDefaultCharset UTF-8
<Directory /var/www/mysite.com/public_html>
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^ index.php [L]
</IfModule>
AllowOverride All
</Directory>
</VirtualHost>
3) /var/www/mysite.com/public_html/.htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteRule ^(.*)/$ /$1 [L,R=301]
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^ index.php [L]
</IfModule>
4) C:/windows/system32/drivers/etc/hosts
digitaloceanDropletIp mysite.com
5) publi_html 文件夹 img
如果有人能告诉我我的设置出了什么问题,我将不胜感激。 提前致谢!
【问题讨论】:
我认为在这个<Directory "/var/www/html">
中将/var/www/html
更改为/var/www/mysite.com/public_html/
感谢您的回复@jaysingkar,我刚试过但仍然显示 apache 屏幕 :(
@hasmai 你后来重启了 apache2 吗?
嗨@jrenk,是的,我做了'sudo apachectl restart'和'sudo service httpd restart'。但没有运气:(
@RadLexus 做到了并欢呼
【参考方案1】:
改变
DocumentRoot /var/www/mysite.com/public_html
收件人
DocumentRoot /var/www/mysite.com/public_html/public
然后重启你的apache
【讨论】:
非常感谢您的帮助。您的回答真的很有帮助,最后 Laravel 徽标出现了 :) 我很快就会在这里更新解决方案。再次感谢您!我的声望没有超过 15,所以我的投票没有出现:(【参考方案2】:[解决方案]
在好心人的帮助下,我终于成功展示了 Laravel 标志!愚蠢地我没有意识到 index.php 在公共文件夹中!
我保持 httpd.conf 和 hosts 与上面相同,但更改了下面的 mysite.com.conf 并完全删除/删除了 public_html/.htaccess(我将来可能需要它,但这个阶段我不需要)。
<VirtualHost *:80>
ServerName mysite.com
ServerAlias mysite.com
ServerAdmin admin@mysite.com
DocumentRoot "/var/www/mysite.com/public_html/public"
ErrorLog /var/log/httpd/mysite.com_error_log
CustomLog /var/log/httpd/mysite.com_access_log combined
AddDefaultCharset UTF-8
<Directory "/var/www/mysite.com/public_html/public">
AllowOverride All
</Directory>
</VirtualHost>
在此更改之后,出现 403 错误(似乎是 apache 发生这种情况)所以我在 public/.htaccess 中的“RewriteEngine On”之前添加了以下行 参考:非英文网站
Options +FollowSymLinks
然后出现 500 错误,所以我使用 putty 作为打击命令(我不得不这样做,即使我以前做过 'chmod 777 storage')参考:Laravel 空白白屏。
chmod -R guo+w storage
最后“Laravel”出现了 :) 无论如何感谢所有帮助!
【讨论】:
以上是关于Laravel 5.2 显示 apache 屏幕而不是 index.php的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.2 & AJAX - 重定向后显示成功消息
异常页面(布局)上的 Laravel 5.2 Auth::check()