NTFS パーティションに仮想ホストを作成することは可能ですか?

NTFS パーティションに仮想ホストを作成することは可能ですか?

私は Ubuntu と Windows を使用しています。Windows を使用すると、Linux パーティション内のファイルにアクセスできませんvar/www。そこで、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 は OS の起動中に NTFS パーティションのユーザーとして設定します。これにより、Apache ユーザーが仮想ホスト方向にアクセスできるようになります (これが私の問題を解決した方法です)。

/dev/disk/by-uuid/4ED2A451B2A23F59 /media/windows ntfs-3g defaults,permissions,users,uid=1000,utf8  0 0

代わりにユーザーとしてパーティションをマウントする場合はwww-datawww-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

Apacheを再起動する

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

ハード ドライブを自動的にマウントするように設定した場合、パーティションが /mnt にあるため、envvars の編集プロセスは機能しない可能性があります。

この手順はそれほど安全ではないかもしれませんが、少なくとも機能しました。www-data ユーザーを envvars にも残し、apache ユーザーをルート グループに追加しました。

sudo usermod -G root www-data

ローカルでのみ機能するため、大きなリスクはないと考えています。

関連情報