Apache-2.2

apache2 UserDir 拒絕除我之外的所有人

  • March 14, 2012

我已經為 PHP Web 開發/個人託管設置了 Debain 6 VPS,並有一個快速的問題:

我想在 /var/www/site.com 中託管生產程式碼,在 /home/username/public_html/site 中託管開發程式碼

我已經設置了 userdir.conf (我認為預設設置):

<IfModule mod_userdir.c>
   UserDir public_html
   UserDir disabled root

   <Directory /home/*/public_html>
           AllowOverride All
           Options MultiViews Indexes SymLinksIfOwnerMatch
           <Limit GET POST OPTIONS>
                   Order allow,deny
                   Allow from all
           </Limit>
           <LimitExcept GET POST OPTIONS>
                   Order deny,allow
                   Deny from all
           </LimitExcept>
   </Directory>
</IfModule>

我可以分別通過 www.site.comwww.site.com/~username/site 訪問這兩個程式碼庫

我的問題是:將 www.site.com/~username/site (我的項目處於開發狀態)限製到外界的最佳方式是什麼?(.htaccess,虛擬主機設置,其他)

如果您從一個固定的 IP 地址連接到 VPS,那麼將其更改Allow from allAllow from IP.AD.RE.SS既快捷又簡單。如果您不這樣做,那麼您可以使用 .htaccess 文件設置基本身份驗證。把類似的東西

AuthType Basic
AuthName Private
Authuserfile /path/to/.htpasswd
Require valid-user

在 public_html/.htaccess 文件中。

初始化 .htpasswd 文件

htpasswd -c /path/to/.htpasswd Purplefish32
New password: mypassword
Re-type new password: mypassword
Adding password for user Purplefish32

然後確保您的主要 apache 配置具有合適的allowoverride指令,例如AllowOverride AuthConfig。如果需要重新啟動 apache,現在應該要求您提供密碼以訪問開發文件的內容。

引用自:https://serverfault.com/questions/369524