gpt4 book ai didi

php - 如何从主文件夹使用 Apache 运行 PHP 项目

转载 作者:行者123 更新时间:2023-12-04 18:44:31 27 4
gpt4 key购买 nike

由于 apache 问题,旧的 codeignitor 项目将无法运行。尝试了在其他帖子和其他论坛中找到的所有解决方案,但到目前为止还算幸运。这是一个简单的问题,我认为它与权限有关。然而权限设置似乎很好。

首先,问题。这是我在浏览器中看到的

this is what I see in the browser

这是我在 apache 日志中看到的:

[Sat May 11 10:55:43.026415 2019] [core:crit] [pid 10672] (13)Permission denied: [client 127.0.0.1:38216] AH00529: /home/user_name/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/home/user_name/' is executable 127.0.0.1 - -

[11/May/2019:10:55:43 -0400] "GET / HTTP/1.1" 403 575 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36"

[Sat May 11 10:55:43.314120 2019] [core:crit] [pid 10672] (13)Permission denied: [client 127.0.0.1:38216] AH00529: /home/user_name/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/home/user_name/' is executable, referer: http://my_php_site.local/ 127.0.0.1 - -

[11/May/2019:10:55:43 -0400] "GET /favicon.ico HTTP/1.1" 403 585 "http://my_php_site.local/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36"



请注意,apache 正在尝试执行 中的 .htaccess 文件。/home/user_name/.htaccess

我有一个 .htaccess 项目文件夹中的文件,并认为这是 Apache 应该寻找的。

其次,我的环境。万一我错过了什么,我会在这里给出我的整个配置。

该项目位于我的 /home/user_name/文件夹,而不是 /var/www/ .

.htaccess 的文件权限:
-rwxr-xr-x  1 user_name www-data .htaccess

项目文件夹权限:
drwxr-xr-x 11 user_name www-data my_php_site

由于项目位于主文件夹中,因此我的/etc/hosts 文件中有一条规则:
127.0.0.1       my_php_site.local

我网站的 apache 配置:
<Directory /home/user_name/code/projects/my_php_site>
Require all granted
</Directory>
<VirtualHost *:80>
ServerName my_php_site.local
ServerAlias my_php_site.local
ServerAdmin webmaster@localhost
DocumentRoot /home/user_name/code/projects/my_php_site

ErrorLog /home/user_name/code/projects/my_php_site/logs/apache2-error.log
CustomLog /home/user_name/code/projects/my_php_site/logs/apache2-access.log combined
</VirtualHost>

最后,.htaccess 文件本身:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?/$1 [L]

最佳答案

解决方案

具有用户组 www_data 的 Apache 必须能够遍历主文件夹。这意味着它需要八进制值 5 , 符号 r-x。

chmod 750 /home/user_name

一篇 Stack Overflow 帖子提到了项目文件夹的权限,但没有提到主文件夹本身的权限: https://askubuntu.com/questions/325498/apache-cant-access-folders-in-my-home-directory

也可能需要以下步骤,具体取决于版本和系统 :

允许 Apache 执行主文件夹中的文件
sudo a2enmod userdir
sudo nano /etc/apache2/mods-available/php7.0.conf注释这部分(在每行的开头加上#):
#<IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_flag engine Off
# </Directory>
#</IfModule>
sudo nano /etc/apache2/apache2.conf
添加这个:
<Directory /home/*/public_html/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

关于php - 如何从主文件夹使用 Apache 运行 PHP 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56091680/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com