0

我在本地机器上安装了 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。

现在,我将envvarsApache 更改为以 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)
4

1 回答 1

0

在 OSX 上,我使用了以下内容,并且效果很好:

sudo chown -R _www:_www {path to wordpress folder}

_www 是在 Mac 上运行 PHP 的用户。(您可以将其更改为您的 PHP 安装在您的特定操作系统上运行的任何内容)

(您可能还需要 chmod 一些文件夹。我已经先完成了,但没有修复它。直到我执行 chown 命令才有效,所以我不确定它是否是 chown 命令单独,或 chmod 和 chown 的组合。)

于 2014-03-19T21:09:21.810 回答