Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Amazon EC2(Amazon Linux)上设置WordPress的权限_Linux_Wordpress_Permissions_Amazon Ec2 - Fatal编程技术网

在Amazon EC2(Amazon Linux)上设置WordPress的权限

在Amazon EC2(Amazon Linux)上设置WordPress的权限,linux,wordpress,permissions,amazon-ec2,Linux,Wordpress,Permissions,Amazon Ec2,我在AmazonEC2实例上安装了WordPress。它使用AmazonLinux,并且是一个标准设置(只有php5和mysql) WordPress工作正常,但存在一些权限问题。具体来说,我不能上传媒体、更新永久链接、插件等。我在ec2用户下没有写权限,因为我通过WinSCP上传了所有文件,所以当前所有者是ec2用户 我的问题是,纠正这个问题的最佳方法是什么?我可能可以通过将所有文件夹/文件的所有权更改为root来修复它,但这不是一个非常优雅或动态的解决方案 我的web目录的路径是/var/w

我在AmazonEC2实例上安装了WordPress。它使用AmazonLinux,并且是一个标准设置(只有php5和mysql)

WordPress工作正常,但存在一些权限问题。具体来说,我不能上传媒体、更新永久链接、插件等。我在ec2用户下没有写权限,因为我通过WinSCP上传了所有文件,所以当前所有者是ec2用户

我的问题是,纠正这个问题的最佳方法是什么?我可能可以通过将所有文件夹/文件的所有权更改为root来修复它,但这不是一个非常优雅或动态的解决方案

我的web目录的路径是/var/www/html。我可以允许ec2用户拥有正确的权限吗?也许通过拥有一个Apache用户和ec2用户共享的组

如果您有任何想法,我们将不胜感激。

请查看其他谷歌搜索结果。他看起来运气不错:

我一直在尽我最大的努力找出AmazonEC2Apache的设置 允许WordPress管理所有文件的权限 在我的Amazon EC2实例上,没有WordPress请求FTP权限 当我试图通过管理员网站上传插件或主题时。我最后 必须为我的html文件夹中的文件赋予文件和组所有权 要使WordPress正确运行,请发送给apache用户。 和 它的评论帮助我得出了这个结论

从网页:

然后,我将权限设置为《加强WordPress指南》为我的html根目录推荐的权限,因为当我运行多个域的多站点时,我的所有WordPress文件都在那里

find /vol/html/ -type d -exec chmod 755 {} \;
find /vol/html/ -type f -exec chmod 644 {} \;
由于apache没有登录,我觉得这是值得冒险的,尽管可能有更好的方法。然后,我将ec2用户添加到apache组,并将wp内容文件夹的权限更改为具有组写入权限775

useradd -G apache ec2-user
sudo chmod -R 775 /vol/html/wp-content

这允许FileZilla或以ec2用户身份登录的任何其他程序能够仅更改wp content文件夹中的文件和文件夹。如果有人有更好的方法,我想知道。我只使用SSH和SFTP访问带有密钥文件的服务器。

我在搜索答案时遇到了这个问题。我将所有所有权和组所有权设置为Apache。但是,如果我想通过ftp上传一些东西,我必须通过ssh更改ec2用户上传文件的权限并将其更改回来。我认为将权限设置为WordPress的推荐设置是一个很小的代价

我将所有者设置为ec2 user:apache,然后执行强化,然后调整文件夹的组读写权限

sudo chown -R ec2-user:apache /vol/html
sudo chmod -R 755 /vol/html

sudo find /vol/html/ -type d -exec chmod 755 {} \;
sudo find /vol/html/ -type f -exec chmod 644 {} \;

sudo chgrp -R apache /vol/html
sudo chmod -R g+rw /vol/html
sudo chmod -R g+s /vol/html
然后编辑/wordpress install/wp-config.php并定义fs\u方法

define('FS_METHOD', 'direct');
现在wordpress可以更新/上传等,您仍然可以在每次不更改权限的情况下更新SFTP文件。

修复Apache web服务器的文件权限

WordPress中的一些可用功能要求对 Apache文档根目录(例如通过 管理屏幕)。web服务器作为apache用户运行,因此 您需要将该用户添加到在中创建的www组中 LAMP web服务器教程

将apache用户添加到www组

[ec2用户wordpress]$sudo usermod-a-G www-apache更改文件 apache用户对/var/www及其内容的所有权

[ec2用户wordpress]$sudo chown-R apache/var/www更改组 /var/www及其内容对www集团的所有权

[ec2用户wordpress]$sudo chgrp-R www/var/www更改目录 /var/www及其子目录添加组写入的权限 权限和设置未来子目录上的组ID

[ec2用户wordpress]$sudo chmod 2775/var/www[ec2用户wordpress]$ find/var/www-type d-exec sudo chmod 2775{};递归变化 要添加组的/var/www及其子目录的文件权限 写入权限

[ec2用户wordpress]$find/var/www-type f-exec sudo chmod 0664{} \; 重新启动Apache web服务器以获取新组并 权限

[ec2用户wordpress]$sudo服务httpd重启停止httpd:
[确定]正在启动httpd:[ 好的]


我尝试了AWS EC2实例(Amazon Linux)中提供的解决方案

Wordpress(apache)很好,但SFTP(ec2用户)给出了权限错误

然后我尝试了以下方法:

我将ec2用户添加到apache组:

usermod -a -G apache ec2-user
接下来,我将“apache”设置为WordPress安装目录的所有者组,“ec2 user”设置为所有者用户(/var/www/html):


最后,WordPress很高兴,我也可以使用SFTP。谢谢

看看杰克的答案,希望这有帮助!你有什么解决办法吗?我可以使用@Stude建议的解决方案,但如果有一种优雅的方式,我不必通过FTP/web切换所有权/权限来进行更新,sudo chmod-R g+rw/vol/html sudo chmod-R g+s/vol/html就可以了。谢谢sudo chmod-rg+rw与:sudo chmod-R 775相同
usermod -a -G apache ec2-user
chown -R apache:ec2-user /var/www/html