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.confmysite.com.conf.htaccesshosts 文件然后重新启动 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

如果有人能告诉我我的设置出了什么问题,我将不胜感激。 提前致谢!

【问题讨论】:

我认为在这个&lt;Directory "/var/www/html"&gt; 中将/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 未找到基表或视图错误

Laravel 5.2 & AJAX - 重定向后显示成功消息

异常页面(布局)上的 Laravel 5.2 Auth::check()

Laravel 5.2 - 显示数据库中的第一张图片

为啥我得到的是 Apache2 欢迎页面而不是 laravel 页面?

Laravel 5.2 无法打开 laravel.log