CentOS - 写入权限问题

CentOS - 写入权限问题

我正在运行 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 组相同的权限。

相关内容