LAMP 404 页面未找到

LAMP 404 页面未找到

我尝试index.php在本地主机上使用 Slim 框架访问我​​的项目页面。但是,我收到 404 PAGE NOT FOUND 错误。

  • 我创建了一个符号/home/user/public_html链接/var/www/html
  • chmod 777我允许所有权限public_html
  • 我的项目位于/home/user/public_html
  • 这是我的.htaccess文件:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [QSA,L]
    
  • 我可以访问包含的 php 文件phpinfo()。它位于/public_html

  • mod_rewrite已启用。

我没有使用 VirtualHost。这可能是问题所在吗?

404 页面未找到错误

答案1

将您的.htaccess文件更改为:

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

允许符号链接工作

除了上述设置之外,我还看到您在 中还有一个名为M1-CSIin public_htmllink的附加文件夹/var/www/htnl。现在请注意,apache使用/var/www/html作为根文件夹,因此您的index.php位于或/var/www/html位于 中的项目文件夹中/var/www/html/project_folder

slim因此,在 中设置项目/home/user/public_html,并将public_html作为。您的符号链接应该是...以文件夹作为root根。要使用,您将需要使用文件,当然还要将您的行中间改为。slimsudo ln -s /home/user/public_html /var/www/html//public_htmlM1-CSIVirtualhostrequire vendor/autoload.phprequire ../vendor/autoload.php

另一个需要注意的是,您root现在的所有权并不是您想要的,我相信用户www-data应该负责这些文件。将自己添加到该组:

sudo usermod -a -G www-data $USER

然后将该文件的所有权更改为:

sudo chown -R $USER.www-data /var/www/html/public_html
sudo chmod -R 755 /var/www/html/public_html

注意:需要重新启动才能使新的组设置正常工作。

我如何slim使用这个来设置我的项目关联

  1. /var/www/html名为askubuntu

  2. cd /var/www/html/askubuntu

  3. composer require slim/slim "^3.0"

  4. 然后在文件夹中创建一个包含以下行的index.php文件:askubuntu

    <?php
    
    require 'vendor/autoload.php';
    
    echo "Hello World slim framework!";
    ?>
    
  5. 打开我的浏览器并输入:localhost/askubuntu,它会打印预期的输出。

相关内容