Linux Wordpress 不能不写 wp-config 文件
Posted
技术标签:
【中文标题】Linux Wordpress 不能不写 wp-config 文件【英文标题】:Linux Wordpress can't not write wp-config file 【发布时间】:2013-12-10 18:54:01 【问题描述】:我在我的电脑上安装了最新版本的 Apache2/php/mysql
在目录 /srv/www/htdocs 我创建了一个包含所有 wordpress 文件的目录 wordpress。
然后,当我尝试通过 Web 界面创建 wp-config 文件时,出现此错误:
Sorry, but i can't write the wp-config file.
我试过这个命令改变/src/www/htdocs/wordpress
的组
chown -R root:root /srv/www/htdocs/wordpress
但它不起作用。经过一番研究,我看到很多人说要将群组更改为 www-data
,但我没有看到 www-data
使用此命令:
cut -d: -f1 /etc/group
有人知道我做错了什么吗?
对不起,我的英语不好。
【问题讨论】:
我在您的列表中看到一个名为www
的组。这可能就是您正在寻找的。span>
【参考方案1】:
无法写入 wp-config.php 文件。
我的ubuntu 20.04
、WordPress 5.x
遇到了这个问题。我通过以下步骤解决了这个问题:
sudo chown -R root:www-data /var/www/html/wordpress
然后通过此命令更改您的 WordPress 文件夹权限。
sudo find /var/www/html/wordpress -type d -exec chmod 755 \;
然后通过此命令更改您的 WordPress 文件权限。
sudo find /var/www/html/wordpress -type f -exec chmod 644 \;
再次运行安装。
【讨论】:
【参考方案2】:即使我实施了 CHOWN 和 CHMOD 步骤,但问题仍然存在,然后我发现了另一个场景,由于 SELINUX CONTEXT 问题(缺少写入权限上下文)。
要解决这个问题 - 您可以像这样在 web-content 文件夹中更改 Apache/HTTPD write context(特定于 Debian 环境,如本问题所述):
chcon -R -t httpd_sys_rw_content_t /src/www/htdocs
或(在 CentOS/Fedora 上):
chcon -R -t httpd_sys_rw_content_t /var/www/html
您可以像这样验证输出(在 CentOS/Fedora 上):
# pwd
# /var/www
请注意以下命令的输出 已更改 html(网络内容)文件夹上的 RW(读/写)上下文:
# ls -ltrZ
# drwxrwxr-x. 2 apache apache system_u:object_r:httpd_sys_script_exec_t:s0 4096 Jul 9 20:45 cgi-bin
# drwxrwxr-x. 5 apache apache system_u:object_r:httpd_sys_rw_content_t:s0 4096 Jul 14 19:28 html
注意:在执行上述命令之前,请根据您的环境验证路径、Web 服务器用户名和 SELINUX 写入上下文。
【讨论】:
由 usungchcon -R -t httpd_sys_rw_content_t /var/www/html
它吐出 chcon: can't apply partial context to unlabeled file '/var/www/html' ....
根据 Unix Stackexchange 上的其他线程:“chcon: can't apply partial context to unlabeled file '/var/www/html'”,有必要使用 'semanage' 来标记文件,如果SELinux 处于强制模式。【参考方案3】:
你必须需要权限.....只需打开终端并执行:sudo chmod -R 777 /opt/lampp/htdocs/yourfolder
Example output
【讨论】:
不要不要这样做。这将使您系统上的每个用户/进程都可以 rwx 访问您的整个站点。【参考方案4】:这对我有用。 (我是初学者,我使用的是 Debian 8)
首先我检查了 Apache 配置文件以找到 apache 使用的组。就我而言,它是www-data。
grep ^Group /etc/apache2/httpd.conf
我检查了我的 /etc/group 文件,组 www-data 在那里。
然后我将 wordpress 目录的组所有权从 root 更改为 www-data。
chown -R root:www-data /var/www/html/wordpress
根据其他网站的建议,我将我的 wordpress 文件夹的权限更改为目录的 755 和文件的 644。
find /var/www/html/wordpress -type d -exec chmod 755 \;
find /var/www/html/wordpress -type f -exec chmod 644 \;
但由于我们想为组 www-admin 授予 wordpress 文件夹和子文件夹的写入权限,我将目录的权限更改为 775:
find /var/www/html/wordpress -type d -exec chmod 775 \;
然后它起作用了:好的,闪闪发光!您已经完成了安装的这一部分。 WordPress 现在可以与您的数据库进行通信。如果你准备好了,现在是时候……
注意:我的mysql数据库的用户名和密码是root/root。我用于登录计算机的用户名是 root,密码与 root 不同。以防万一我将密码更改为root,所以mysql的凭据和我的本地帐户是相同的。我不知道他们是否具有相同的名称(root)是同一个帐户。
【讨论】:
【参考方案5】:听起来www-data
不是您系统上 apache 使用的组名。要找到它的实际用途,请尝试以下操作:
ps xO gid | head -n 1; ps xO gid | grep httpd
(这是大写的 O,而不是零)。 GID 列(可能是第二列)是运行 apache 的数字组 ID。在/etc/group
中查找它的名称。
【讨论】:
GID 返回 0,是否意味着没有?您可以在我的原始帖子中查看图片 组 id 零几乎可以肯定是root
所属的组。请在/etc/group
中查找,这是第三列。它可能被称为root
、staff
或wheel
(或其他名称,谁知道呢)。不过,以更少的权限运行 apache 可能是个好主意……如果你能弄清楚如何。
是的,零是根。 root 拥有所有权限,并且目录 /srv/www/htdocs 设置为 root 组。为什么我仍然没有权限使用 wordpress 的 Web 界面编写 wp-config 文件
不要将 root 组与 root uid 混淆。但实际上看起来 gid 为 0 的进程应该能够在wordpress
子目录中create 文件(因为设置了组写入权限位)。文件已经存在并且不能被零组写入,或者 apache(或 wordpress)正在采取特殊措施来控制零组权限——以这种方式运行 apache 确实不是一个好主意。以上是关于Linux Wordpress 不能不写 wp-config 文件的主要内容,如果未能解决你的问题,请参考以下文章
csharp 检查区间或范围[N ... M]中的素数。从C#http://www.introprogramming.info/wp-c的计算机编程基础知识
csharp 检查区间或范围[N ... M]中的素数。从C#http://www.introprogramming.info/wp-c的计算机编程基础知识
wordpress 配置(ubuntu)---修改 linux hostname