2012-07-30 43 views
7

這就是我想要實現的:創建從var/www/html到家中(~)文件夾中的目錄的符號鏈接。我試圖符號鏈接到家裏的目錄(~)是一個git倉庫,如果這有什麼不同。我在這個目錄中有一個index.html文件。嘗試使用var/www/html的符號鏈接

我已經使用此命令在Amazon EC2實例上創建了var/www/html的符號鏈接:ln -s ~/dirIWant/ html,但是當我嘗試訪問我的網頁時,導致出現以下錯誤:403 Forbidden "You don't have permission to access/on this server."我使用apache 。

有沒有人試圖做類似的事情,並得到它的工作?

目前,當我去我的網站www.blah.com時,它顯示了這個403錯誤。我試圖使用sudo chown -h apache:apache更改權限,但似乎沒有幫助。你還有其他建議嗎?

+1

'apache'用戶(或等效)沒有讀取您的主目錄的權限。 Chmod/chown目標目錄以授予相關用戶權限。順便說一句,你可能會在'/ var/log/httpd/error_log'或httpd記錄錯誤的地方找到一個稍微有點顯示的消息。 – 2012-07-30 22:12:00

+0

@FrankFarmer當我嘗試使用sudo su apache切換到apache用戶時,我收到以下消息:此帳戶當前不可用。你有沒有經歷過這個? – Apollo 2012-07-31 00:07:03

+1

是的。默認情況下,你不能su apache,因爲apache用戶通常將shell設置爲'nologin'。您可以在'/ etc/passwd'中將用戶的shell更改爲sh,但這通常是一個糟糕的想法。一般來說,su-ing到apache應該不是必需的,特別是如果你只是想chown。''sudo chown apache:apache〜/ dirIWant /'就足夠了,儘管將目錄移出你的主目錄會更明智一些。 – 2012-07-31 00:59:07

回答

7

這是因爲apache運行爲apache用戶和/var/www/html由Amazon Linux AMI中的根擁有。您可以按照Frank的建議更改所有權/權限,也可以使用userdirs

在我看來,你想要從主目錄(~)方便地訪問網絡服務器的文件夾。我想在我的EC2上這樣做,並決定使用每個用戶的網頁目錄mod_userdir)。

此功能可讓您將HTTP服務器的部分空間保留在用戶擁有的目錄中。每個用戶都有自己的目錄,默認位於/home/username/public_html。該目錄中的頁面,腳本和其他文件可通過向您的域添加/~username訪問互聯網。此外,您可以將httpd.conf中該文件夾的名稱從public_html更改爲其他內容,如gitRepo。在這種情況下,如果/home/ec2-user/gitRepo/index.html中有index.html文件,則公衆可以通過http://ec2-hostname.aws.amazon.com/~ec2-user/index.html訪問該文件,並由ec2-user擁有,這對於從用戶級別編輯文件非常方便。

要在EC2上進行設置(假設您要使用的文件夾名稱爲「gitRepo」),請使用nano /etc/httpd/conf/httpd.conf打開Apache配置文件並向下滾動,直到看到<IfModule mod_userdir.c>。然後改變這部分如下所示:

<IfModule mod_userdir.c> 
    # 
    # UserDir is disabled by default since it can confirm the presence 
    # of a username on the system (depending on home directory 
    # permissions). 
    # 
    UserDir enabled all 

    # 
    # To enable requests to /~user/ to serve the user's public_html 
    # directory, remove the "UserDir disabled" line above, and uncomment 
    # the following line instead: 
    # 
    UserDir gitRepo 

</IfModule> 

之後,你應該是好去,但確保權限設置正確:

chmod 711 /home/ec2-user 
chmod 755 /home/ec2-user/gitRepo 
chown -R ec2-user /home/ec2-user/gitRepo 

最後重新加載web服務器這樣的:

sudo service httpd reload 
+0

感謝您的回答。正如我問FrankFarmer,當我嘗試切換用戶到Apache用戶,以便我可以執行sudo chown/myDir時,我得到以下響應:此帳戶當前不可用。任何想法爲什麼? – Apollo 2012-07-31 00:06:57

+1

嗯,你可以做一個'sudo chown -R ec2-user/var/www/html',但是從你的帖子中不太清楚你想要完成什麼,所以我不確定它會做到想要 – Dreen 2012-07-31 00:49:35

+0

這就是我想要實現的:創建從var/www/html到home(〜)文件夾中的目錄的符號鏈接。我在家中的目錄(〜)中有一個index.html文件。目前,當我去我的網站www.blah.com時,它顯示了這個403錯誤。我試圖改變使用sudo chown -h apache:apache的權限,但它似乎沒有幫助。你還有其他建議嗎? – Apollo 2012-07-31 02:24:13