突然,我在MacOS Yosemite上的Apache 2.4本地安装停止了工作。问题似乎与权限有关,但我找不到出路。
经过几个小时并阅读了几篇文章,现在的情况是:
错误:
[authz_core:debug] [pid 35232] mod_authz_core.c(799): [client 127.0.0.1:55992] AH01626: authorization result of Require valid-user : denied (no authenticated user yet)
[core:crit] (24)Too many open files: [client ::1:53498] AH00529: /Users/username/Sites/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/Users/username/Sites/' is executable
(我没有这样的.htaccess文件)。无论如何,我到处都残酷地执行777许可:
$ chmod -R a+rwx /Users/username
$ ls -l /Users/username
drwxrwxrwx 187 username staff 6358 Dec 13 16:05 Sites
$ ls -l /Users/
drwxrwxrwx+ 174 username staff 5916 Dec 13 16:39 username
我在httpd.conf中的指令如下:
<Directory "/Users/username/Sites/">
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
#Require all granted - tried, doesn't matter
</Directory>
我可以摆脱AllowOverride,但是我确实需要.htaccess,无论如何,虚拟主机中的许多映像和资源仍然存在权限问题。
有人建议,我在httpd.conf中更改了apache用户
#User _www
#Group _www
User username
Group staff
还是一样。
1
更改权限对“打开的文件太多”没有帮助。重启你的电脑。
—
迈克尔·汉普顿
@MichaelHampton实际上,这是在重新启动计算机后已经显示的错误
—
Glasnhost
@MichaelHampton很好,正如您所建议的那样,我专注于“打开文件过多”的问题。我用lsof检查过,那里有351个httpd打开文件。我禁用了除一个虚拟主机之外的所有虚拟主机,现在看起来很稳定。我仍然不知道可能会发生什么变化而降低了我的限额,也不知道如何再次提高它……
—
Glasnhost