私は 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-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
Apacheを再起動する
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
ハード ドライブを自動的にマウントするように設定した場合、パーティションが /mnt にあるため、envvars の編集プロセスは機能しない可能性があります。
この手順はそれほど安全ではないかもしれませんが、少なくとも機能しました。www-data ユーザーを envvars にも残し、apache ユーザーをルート グループに追加しました。
sudo usermod -G root www-data
ローカルでのみ機能するため、大きなリスクはないと考えています。