我尝试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。这可能是问题所在吗?
答案1
将您的.htaccess
文件更改为:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
允许符号链接工作
除了上述设置之外,我还看到您在 中还有一个名为M1-CSI
in public_html
link的附加文件夹/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
根。要使用,您将需要使用文件,当然还要将您的行中间改为。slim
sudo ln -s /home/user/public_html /var/www/html/
/public_html
M1-CSI
Virtualhost
require vendor/autoload.php
require ../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
使用这个来设置我的项目关联:
在
/var/www/html
名为askubuntu
cd /var/www/html/askubuntu
composer require slim/slim "^3.0"
然后在文件夹中创建一个包含以下行的
index.php
文件:askubuntu
<?php require 'vendor/autoload.php'; echo "Hello World slim framework!"; ?>
打开我的浏览器并输入:
localhost/askubuntu
,它会打印预期的输出。