微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。