我在本地机器上安装了 Wordpress。但是,要安装插件,它总是要求我提供 FTP 凭据。有一篇关于为什么会发生这种情况的帖子。所以,这就是我所做的:
我去了文件wp-admin/includes/file.php
,并评论了这一unlink
行,这样临时文件就不会被删除。然后我去检查该文件的权限,即-rw-r--r-- www-data www-data
. 这很好,因为我希望 Apache 服务器以www-data:www-data
.
但是,另外,我var_dump
'edgetmyuid()
和 @fileowner($temp_file_name)
. 我得到的结果是1000
( xedinunknown
) 和33
( www-data
)。这意味着当 Apache 以 as 运行时www-data
,PHP 以 as 运行xedinunknown
(如果我错了,请纠正我)。问题是:为什么会这样?
我安装了 suEXEC,但已禁用,看起来我正在将 PHP 作为 Apache 模块运行(etc/apache2/mods-available/php5.load
有这个条目:)LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
。
回顾一下,我在 Debian 7.1 64 位上运行 PHP 5.5.4 / Apache 2.4.6。
现在,我将envvars
Apache 更改为以 xedinunknown:www-data 运行,chown
'ed 锁定目录,然后重新启动。这允许我安装插件,但我想这只是一个临时措施
更新
好,可以。这是输出apache2ctl -t -D DUMP_MODULES
:
core_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
alias_module (shared)
auth_basic_module (shared)
authn_file_module (shared)
authz_default_module (shared)
authz_groupfile_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
cgi_module (shared)
dav_module (shared)
dav_fs_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
fcgid_module (shared)
include_module (shared)
mime_module (shared)
negotiation_module (shared)
php5_module (shared)
reqtimeout_module (shared)
rewrite_module (shared)
setenvif_module (shared)
status_module (shared)