可以在NTFS分割區建立虛擬主機嗎?

可以在NTFS分割區建立虛擬主機嗎?

我正在使用 Ubuntu 和 Windows。當我使用 Windows 時,我無法存取var/wwwLinux 分割區中的檔案。所以我嘗試在我的 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

這就是解決問題所需要的

https://stackoverflow.com/questions/89118/apache-gives-me-403-access-forbidden-when-documentroot-points-to-two- different-d

基本上你需要在你的 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

只在本地如何運作,我相信沒有太大的風險。

相關內容