我正在运行 CentOS 6.4,并在其上安装了 Wordpress。 (与灯一起)
现在的问题是,我无法对 WordPress 编辑器中的任何文件进行任何写入更改:例如。 header.php、style.css 等。Wordpress 在“更新”按钮应为的位置显示以下内容: 在保存更改之前,您需要使该文件可写。
笔记:
- 现在 Apache 正在以 root 用户身份运行(默认)
以下是上述所有文件所在的主题文件夹的权限:
drwxrwxr-x。 5 root bluegig 4096 七月 7 17:32 主题
drwxrwxr-x。 3 root apache 4096 七月 7 23:15 上传
我跑了修改 775命令“主题”和“上传”,现在做chmod 777 让我获得写入权限,但我不认为这很安全......还有其他/更好的方法吗?
(bluegig 是我的域名,不知道为什么会在那里......)
我可以做什么:
- 我可以在 Wordpress 中读取和执行
- 我可以从 WordPress 中将文件上传到 uploads 文件夹中
我不能:
- 对 WordPress 中的文件进行任何更改(通过编辑器)
- 如何启用写入权限以便可以修改 WordPress 中的文件?
请注意,我没有从 WP 内登录 ftp 帐户。
答案1
Apache 的安装可能看起来以 root 身份运行,但实际上它是以 user 身份运行的apache
。您可以通过查看此文件来检查这一点:
$ grep "^User" /etc/httpd/conf/httpd.conf
User apache
如果您计划通过 Web UI 使用 WordPress 管理安装,则您的整个 WordPress 目录可能应归此用户所有。
我通常为 WordPress 创建一个单独的目录,如下所示:
$ pwd
/var/www
$ ls -l | grep wordpress
drwxr-xr-x. 5 apache apache 4096 Apr 25 19:27 wordpress
这是 wordpress 目录的内容,以便您可以看到它:
-rw-r--r--. 1 apache apache 395 Jan 8 2012 index.php
-rw-r--r--. 1 apache apache 5009441 Jan 23 13:40 latest.tar.gz
-rw-r--r--. 1 apache apache 19929 May 6 2012 license.txt
-rw-r--r--. 1 apache apache 9177 Jan 25 11:25 readme.html
-rw-r--r--. 1 apache apache 4663 Nov 17 2012 wp-activate.php
drwxr-xr-x. 9 apache apache 4096 Dec 11 2012 wp-admin
-rw-r--r--. 1 apache apache 271 Jan 8 2012 wp-blog-header.php
-rw-r--r--. 1 apache apache 3522 Apr 10 2012 wp-comments-post.php
-rw-rw-rw-. 1 apache apache 3466 Jan 23 17:15 wp-config.php
-rw-r--r--. 1 apache apache 3177 Nov 1 2010 wp-config-sample.php
drwxr-xr-x. 7 apache apache 4096 Apr 24 20:15 wp-content
-rw-r--r--. 1 apache apache 2718 Sep 23 2012 wp-cron.php
drwxr-xr-x. 9 apache apache 4096 Dec 11 2012 wp-includes
-rw-r--r--. 1 apache apache 1997 Oct 23 2010 wp-links-opml.php
-rw-r--r--. 1 apache apache 2408 Oct 26 2012 wp-load.php
-rw-r--r--. 1 apache apache 29310 Nov 30 2012 wp-login.php
-rw-r--r--. 1 apache apache 7723 Sep 25 2012 wp-mail.php
-rw-r--r--. 1 apache apache 9899 Nov 22 2012 wp-settings.php
-rw-r--r--. 1 apache apache 18219 Sep 11 2012 wp-signup.php
-rw-r--r--. 1 apache apache 3700 Jan 8 2012 wp-trackback.php
-rw-r--r--. 1 apache apache 2719 Sep 11 2012 xmlrpc.php
我通常还会在其自己的wordpress.conf file under this directory,
/etc/httpd/conf.d/` 中管理与 wordpress 相关的任何 Apache 配置。
# wordpress.conf
Alias / "/var/www/wordpress/"
<Directory "/var/www/wordpress/">
Order Deny,Allow
Deny from all
#Allow from 127.0.0.1 192.168.1
Allow from all
AllowOverride all
</Directory>
#RewriteLog "/var/www/wordpress/rewrite.log"
#RewriteLogLevel 3
答案2
(bluegig 是我的域名,不知道为什么会在那里......)
不知何故,似乎还有一个名为 blugig 的团体。您可以确认这一点:
grep bluegig /etc/group
使用组权限是避免使用例如 777 的一种方法。您可能希望服务器运行的脚本可读且可执行,但不可写;但您确实希望某些非特权管理/开发用户 ( ) 对它们具有写权限dave
。由于服务器运行为apache
,如果该文件属于 apache 不属于但属于的组dave
,并且权限为 775,那么您将得到这样的结果(apache 可以读取和执行,dave 可以读取写入执行)。
如果 /etc/group 中的行没有提及 apache,那么您可以使用 bluegig 作为组,或者您可以创建一个新组 ( groupadd
)。将自己放入一个组中:
usermod -a -G bluegig dave
您的登录名现在将出现在 /etc/group 条目的末尾bluegig
,并且您将拥有与 bluegig 组相同的权限。