我正在使用 Ubuntu 和 Windows。當我使用 Windows 時,我無法存取var/www
Linux 分割區中的檔案。所以我嘗試在我的 NTFS 分割區中建立虛擬主機和 DirectoryRoot。
我將Windows中的WAMP目錄和Ubuntu上的虛擬主機根目錄結合起來,但它不起作用。總是出現error 403 forbidden access
。當我更改權限時chmod
沒有任何改變。
我該怎麼辦?
答案1
NTFS分割區設定
首先,您需要能夠透過 Ubuntu 存取您的 NTFS 分割區。如果還沒有,請執行以下步驟。
sudo apt-get install ntfs-3g
找到您的 NTFS 分割區的名稱。例子:
sudo fdisk -l | grep NTFS
取得 NTFS 分割區的 UUID。
$ sudo blkid
/dev/sda1: LABEL="windows" UUID="4ED2A451B2A23F59" TYPE="ntfs"
在 /etc/fstab 中設定分割區(以防萬一,進行備份)。
sudo cp /etc/fstab /etc/fstab.bak
sudo vim /etc/fstab
我的建立如下(基於 UUID。以下選項設定讀取、寫入、執行權限,uid=1000 將您設定為作業系統啟動期間 NTFS 分區的使用者。這也將確保 Apache 使用者可以存取您的虛擬主機方向(這就是解決我的問題的方法)。
/dev/disk/by-uuid/4ED2A451B2A23F59 /media/windows ntfs-3g defaults,permissions,users,uid=1000,utf8 0 0
如果您想以使用者身分掛載分割區www-data
,請尋找www-data
使用者 ID 並將其替換uid=1000
為:
id -u www-data
請注意,如果 /media/windows 目錄不存在,您可能需要建立它。
cd /media
sudo mkdir windows
sudo chown sagun:users windows
重新啟動電腦並確認您的 NTFS 磁碟機會自動掛載並啟用讀取、寫入、執行權限。
在 Apache 中設定虛擬主機的設置
建立目錄來放置日誌檔案(如果需要):
sudo mkdir /var/log/apache2/projects.dev
在 /etc/apache2/sites-available 目錄中建立一個新的設定檔。例子:
sudo vim /etc/apache2/sites-available/projects.dev.conf
設定與此類似的配置並儲存檔案:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName projects.dev
ServerAlias projects
DocumentRoot /media/windows/Users/sagun/Dropbox/projects
<Directory />
Options FollowSymLinks
AuthType None
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory /media/windows/Users/sagun/Dropbox/projects/>
Require all granted
Options Indexes FollowSymLinks MultiViews
AuthType None
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/projects.dev/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/projects.dev/access.log combined
</VirtualHost>
接下來,編輯 /etc/hosts 檔案。
sudo vim /etc/hosts
新增以下行並儲存:
127.0.0.1 projects.dev
使用以下命令啟動主機:
sudo a2ensite projects.dev
重新啟動阿帕契
sudo service apache2 restart
最後,我能夠http://projects.dev
從 Windows 和 Ubuntu 中的瀏覽器存取位於 NTFS 分割區中的所有程式碼。我希望有人覺得這很有用。乾杯!
答案2
這就是解決問題所需要的
基本上你需要在你的 httpd.conf 檔案中有一個像這樣的條目
<Directory "physical path to the directory">
Order Allow,Deny
Allow from All
# Any other directory-specific stuff
</Directory>
答案3
對我來說最好的解決方案是更改 Apache 用戶,這可能會冒一點風險,但對我來說效果很好。
sudo vim /etc/apache2/envvars
答案4
如果您將硬碟設定為自動安裝,則 envvars 的編輯過程可能無法正常運作,因為分割區將位於 /mnt 中。
這個過程可能不那麼安全,但它可以工作至少幾分鐘。我甚至在 envvars 中保留了 www-data 用戶,並將 apache 用戶添加到 root 群組中。
sudo usermod -G root www-data
只在本地如何運作,我相信沒有太大的風險。