smo*_*ris 10 linux permissions wordpress amazon-ec2
我在Amazon EC2实例上设置了WordPress.它使用的是亚马逊Linux,是标准设置(只是php5和mysql).
WordPress工作正常,但有一些权限问题.具体来说,我无法上传媒体,更新固定链接,插件等.我没有ec2-user下的写入权限,因为我通过WinSCP上传了所有文件,当前所有者是ec2-user.
我的问题是纠正这个问题的最佳方法是什么?我可以通过将所有文件夹/文件的所有权更改为root来修复它,但这不是一个非常优雅或动态的解决方案.
我的web目录的路径是/ var/www/html.我可以让ec2用户获得正确的权限吗?也许有一个Apache用户和ec2用户共享的组?
任何想法,将不胜感激
请参阅http://blog.david-jensen.com/development/wordpress-amazon-ec2-apache-permissions-wordpress/以及其他Google搜索结果.他看起来运气不错:
我一直在努力弄清楚Amazon EC2 Apache的权限设置,使我能够管理我的Amazon EC2实例上的所有文件而没有WordPress在我尝试通过上传插件或主题时请求FTP权限管理站点.我最终不得不将我的html文件夹中文件的文件和组所有权授予apache用户,以便WordPress正确运行. http://www.chrisabernethy.com/why-wordpress-asks-connection-info/及其评论帮助我得出了这个结论.
从网页:
跑
sudo su chown -R apache:apache /vol/html
Run Code Online (Sandbox Code Playgroud)
然后,我设置了强化WordPress指南为我的html根建议的权限,因为我运行的MultiSite包含多个域,因为我的所有WordPress文件都在那里.
find /vol/html/ -type d -exec chmod 755 {} \;
find /vol/html/ -type f -exec chmod 644 {} \;
Run Code Online (Sandbox Code Playgroud)
由于apache没有登录,我觉得这是值得冒险的,尽管可能有更好的方法来做到这一点.然后我将ec2-user添加到apache组,并将wp-content文件夹的权限更改为具有组写入权限775.
useradd -G apache ec2-user
sudo chmod -R 775 /vol/html/wp-content
Run Code Online (Sandbox Code Playgroud)
这允许FileZilla或以ec2-user身份登录的任何其他程序仅能够更改wp-content文件夹中的文件和文件夹.如果有人有更好的方法这样做,我想知道.我只使用SSH和SFTP来访问带有密钥文件的服务器.
我将所有者设置为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
Run Code Online (Sandbox Code Playgroud)
然后编辑/wordpress-install/wp-config.php并定义fs_method
define('FS_METHOD', 'direct');
Run Code Online (Sandbox Code Playgroud)
现在wordpress可以更新/上传等.你仍然可以在不改变权限的情况下每次都使用SFTP文件.