2012-03-03 135 views
10

我在Amazon EC2實例上設置WordPress。它使用亞馬遜Linux,是一個標準的設置(只需php5和mysql)。在Amazon EC2上設置WordPress的權限(Amazon Linux)

WordPress的工作正常,但有一些權限問題。具體來說,我不能上傳媒體,更新固定鏈接,插件等。我沒有ec2用戶下的寫權限,因爲我通過WinSCP上傳了所有文件,所以當前所有者是ec2用戶。

我的問題是解決此問題的最佳方法是什麼?我可以通過將所有文件夾/文件的所有權更改爲root來修復它,但這不是一個非常優雅或動態的解決方案。

我的web目錄的路徑是/ var/www/html。我可以允許ec2用戶使用正確的權限嗎?也許通過組建Apache用戶和ec2用戶共享?

任何想法,將不勝感激

+0

查看http://stackoverflow.com/questions/8686125/update-wordpress-theme-on-ec2,看看傑克的回答 希望這會有所幫助! – Yannick 2012-06-06 15:04:38

+0

你有沒有得到任何解決方案?我可以使用@stink建議的解決方案,但如果有一種優雅的方式,我不需要通過FTP/web切換所有權/許可權來進行更新? – 2014-01-30 09:45:55

回答

7

http://blog.david-jensen.com/development/wordpress-amazon-ec2-apache-permissions-wordpress/以及其他谷歌的結果。他看起來有好運氣:

我已經盡我所能找出的 權限亞馬遜EC2的Apache設置,使WordPress的能夠管理所有對我的Amazon EC2實例文件 無當我嘗試通過管理網站上傳插件或主題時,WordPress要求提供FTP權限 。我結束了 不得不將我的html文件夾 中的文件的文件和組所有權交給apache用戶,使WordPress正常運行。 http://www.chrisabernethy.com/why-wordpress-asks-connection-info/和 其評論幫助我得出了這個結論。

從網頁:

運行

sudo su chown -R apache:apache /vol/html 

我然後設置權限什麼硬化WordPress的指南建議對我的html根爲我所有的WordPress文件都存在,因爲我跑具有多個域的MultiSite。

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

由於apache沒有登錄我覺得這是值得的風險,雖然可能有更好的方法來做到這一點。然後我加入EC2-用戶apache的組,改變了可溼性粉劑內容文件夾的權限具有組寫權限775

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

這允許FileZilla中或任何其他程序登錄爲EC2用戶的能力只能在wp-content文件夾中更改文件和文件夾。如果有人有更好的做法,我想知道。我只使用SSH和SFTP通過密鑰文件訪問服務器。

0

我遇到了這個問題尋找答案。我將所有權和組所有權設置爲Apache。但是,如果我想上傳一些ftp,我必須將ssh的權限更改爲ec2-user上傳文件並將其更改回來。我想這是一個小的代價來支付的權限設置爲WordPress的推薦設置。

2

我將所有者設置爲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_method

define('FS_METHOD', 'direct'); 

現在WordPress的可以更新/上傳,等你仍然可以SFTP文件,而無需更改權限每時間。

1

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hosting-wordpress.html

要修復的文件權限的Apache Web服務器

一些WordPress中可用的功能需要 寫訪問Apache的文檔根目錄(比如上傳媒體雖然 管理屏幕)。 Web服務器以apache用戶身份運行,因此您需要將該用戶添加到在 LAMP Web服務器教程中創建的www組中。

將apache用戶添加到www組中。

$ sudo usermod -a -G www apache更改文件 /var/www及其內容的所有權給apache用戶。

$ sudo chown -R apache/var/www將/ var/www及其內容的所有權變更爲www組。

[EC2用戶的wordpress] $須藤chgrp命令-R WWW /無功/網絡更改目錄/ var/WWW的 權限及其子目錄添加組寫入 權限和設置在將來的子目錄組ID。

$ sudo chmod 2775/var/www [ec2-user wordpress] $ find/var/www -type d -exec sudo chmod 2775 {} \;遞歸更改 /var/www及其子目錄的文件權限以添加組 寫入權限。

[ec2-user wordpress] $ find/var/www -type f -exec sudo chmod 0664 {} \;重新啓動Apache Web服務器以獲取新組和 權限。

[EC2用戶的WordPress] $ sudo的服務的httpd重新啓動停止的httpd:
[確定]開始的httpd:[ OK]

0

我試圖在answer by @markratledge我的AWS EC2實例提供的解決方案(亞馬遜Linux)。

Wordpress(apache)很好,但SFTP(ec2-user)授予了權限錯誤。

然後我試圖執行以下操作:

我加入EC2-用戶apache的組:

usermod -a -G apache ec2-user 

接着我設置「阿帕奇」作爲所有者組和「EC2用戶」作爲所有者的用戶WordPress安裝目錄(/ var/www/html在我的情況下):

chown -R apache:ec2-user /var/www/html 

最後,WordPress很高興,我也可以使用SFTP。謝謝!