Laravel应用程序无法在Apache Web服务器上访问

问题描述

我已经将Laravel 7.26.0应用程序上传到了我的VPS(带有Apache网络服务器的Ubuntu 18.04)。

我无法通过浏览器访问index.PHP

浏览器保持空白。没有错误消息。


已执行故障排除测试:

测试1:访问另一个文件,然后访问实际位于其/ public文件夹中的失败应用程序上的index.PHP

结果:

我可以通过[ip-address:] [虚拟端口] /test.txt访问它。 这应该意味着Apache已启动并正在运行,并且能够通过虚拟端口将用户路由到应用程序文件夹[public]。

测试2-创建一个名为public2的并行公用文件

添加仅包含短文本字符串的index.PHP

结果:

Works,要访问新创建的index.PHP,请注意,不再存在具有特定Laravel内容的原始setuop的index.PHP。这项测试的价值非常低,因为它只能证明Apache可以正确地将虚拟主机路由到正确的文件夹,而不能证明Laravel可以将所有从index.PHP传入的呼叫重定向到正确的路由。

测试3:直接在服务器上创建Laravel应用。

结果:

它可以直接在服务器上创建应用程序并访问其index.PHP页面


我的设置:

已启用重写模块:

sudo a2enmod rewrite
sudo service apache2 restart

对Laravel应用的调整权限:

sudo chown -R Trader:www-data 1_sandBox
find 1_sandBox -type f -exec chmod 644 {} \;
find 1_sandBox -type d -exec chmod 755 {} \;

sudo chgrp -R www-data 1_sandBox/storage 1_sandBox/bootstrap/cache
sudo chmod -R ug+rwx 1_sandBox/storage 1_sandBox/bootstrap/cache

为虚拟主机添加了设置:

文件:[/etc/apache2/sites-enabled/000-default.conf]

<VirtualHost *:8080>
        DocumentRoot /var/www/laravel/1_sandBox/public
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

    
<Directory /var/www/laravel/1_sandBox/public/>
        Options Indexes FollowSymLinks Multiviews
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
#       RewriteEngine On
</Directory>

在Ports.conf中添加了端口:

文件:[/etc/apache2/ports.cont]

Listen 8080

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>
laravel apps公共文件夹中的

.htaccess:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.PHP [L]
</IfModule>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)