2014-12-19 116 views
2

我已将WordPress的安装从托管VPS移至新的centos服务器。 现在我遇到了直接从wordpress管理面板写入文件的问题。Wordpress无法写入文件

文件夹/文件设置为755/644。用户所有者是“wwwuser”,组是“apache”(我使用这个通过ftp访问documentroot)。

我认为问题是我在/etc/httpd/conf/http.conf用户和组都设置为“apache”,实际上,如果我将权限更改为775/664,这应该表示当组主人被设置为Apache的一切工作,对吗?

所以我的问题是,我应该将所有权限更改为775还是有另一个解决方案,这不会导致安全问题?制作所有文件夹和文件775和664是否安全?如果我从/etc/httpd/conf/http.conf将“apache”更改为“wwwuser”,该怎么办?

编辑:是否有可能是在phpinfo中,环境pwd设置为/home/wwwuser/test而不是/home/wwwuser/

回答

2

我建议不要更改Apache正在运行的用户(不编辑Apache配置文件),而是将apache设置为文件的所有者。 chown -R apache /path/to/your/app/files

我认为这是最简单的解决方案。如果您选择更改权限,则不必更改每个人(其他人)的权限:您可以更改为774,但我不明白为什么775.

默认情况下,Apache正在运行在apache用户在CentOS上。

+0

感谢您的回复。问题是我将来可能会使用FTP(例如上传插件),并且这可能会导致问题,因为ftp与wwwuser相关联。如果我自动从wordpress ui下载e插件,会发生什么?在我以前的VPS中,我怎么可能没有遇到过这个问题,并且用户的所有者不是Apache? – testermaster

+0

@daimpa如果你上传的插件文件不需要由php编辑,那么它应该工作。如果他们这样做,那么你可能不得不改变业主。如果你从Wordpress下载插件,它将工作,因为'apache'会在服务器上创建文件。有很多原因可以解释为什么它在你之前的VPS中工作:Web服务器配置,文件许可...... –

+0

Aussourd:再次感谢你的回复和耐心。在旧的服务器文件权限是相同的,755/644。你认为为业主创造相同的环境极为困难吗?我的意思是,我一直在通过许多共享主机,我从来没有遇到过这个问题。现在我在一台专用的服务器上,并希望以正确的方式做事。 – testermaster

1

这是你现在面临的一个非常普遍的问题。有时,使用FTP创建/上传的文件/目录可能已经分配了不同的用户/用户组。正如@CélineAussourd所说,如果你已经安装了WordPress的插件,那么所有的文件和目录将会得到默认的用户/用户组。

现在,最简单的方法来确定哪个用户应该分配给您的文件是使用称为“test.php”的CPanel文件管理器创建一个测试文件,如果它正在工作,则从网络访问它,然后检查其用户/用户组并更改您所有的设置文件都与该用户/用户组一起

chown -R {user} /path/to/your/worpress/root 

将{user}替换为apache web用户。

UPDATE:(要安装的插件没有FTP细节)

请添加下面一行到您的wp-config.php文件后定义( 'WP_DEBUG',虚假);一行。

define('FS_METHOD', direct); 

删除插件并重新安装它,这次它不会问你FTP的详细信息,并会直接写入文件。

+0

它试图从wordpress安装一个新插件时向我询问FTP用户名/密码UI,所以它创建了所有文件/文件夹与用户wwwuser和组apache,与权限755,这是错误的,它应该是用户apache或权限775 ... – testermaster

+0

您可以删除插件重新安装?如果是,请按照我上面更新了回答 –

+0

它通过设置apache作为用户/组所有者喜欢由celine说,我以前做过,但我不知道它为什么没有保存 – testermaster