Apacheドキュメントルートフォルダーをセカンダリハードドライブに変更する


28

サーバーpcにubuntu 12.04サーバーエディションをインストールしました。ランプサーバーをインストールしました。var / wwwの場所をセカンダリハードディスクの場所に変更する必要があります。私はgedit / etc / apache2 / sites-available / defaultで何度も設定しました

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    #DocumentRoot /var/www
    DocumentRoot /media/myserver/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    #<Directory /var/www/>
        <Directory /media/myserver/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

そしてまた使用される

sudo chown -R var/www /media/myserver/

そして

chmod -R 755 /media/myserver/

それでも/ media / myserverに接続できず、ブラウザに次のメッセージが表示されます

Forbidden

You don't have permission to access / on this server.

var / wwwでmyserverをマウントする方法を教えてください、ありがとう


2番目のドライブはフォーマットされ、/ media / myserverディレクトリーにマウントされましたか?そのドライブにfstabエントリを追加しましたか?
ダミアン14年

ドキュメントルートの末尾のスラッシュが問題であるかどうかを確認しましたが、コメントアウトされている箇所は問題ではありませんが、編集時には存在します。
クリス14

apache2.confファイルを変更してみましたか?
Golden_flash

回答:


40

Apacheのドキュメントルートを編集apache2.confおよび000-default.conf変更する必要があります。

Apacheサーバーはにインストールされますvar/www/html。これは、apacheのデフォルトのルートディレクトリです。

Apacheのルートディレクトリを変更するか、プロジェクトをに移動し/var/www/htmlます。

  1. Apacheのルートディレクトリを変更するには、次を実行します。

    cd /etc/apache2/sites-available
    
  2. 次に000-default.conf、コマンドを使用してファイルを開きます。

    nano 000-default.conf
    
  3. DocumentRootオプションを編集します。

    DocumentRoot /path/to/my/project
    
  4. 次に、Apacheサーバーを再起動します。

    sudo service apache2 restart
    

Forbidden You don't have permission to access / on this serverApacheのルートを変更した後に取得する場合は、次の手順に従ってください

  1. 検索apache2.confに位置/etc/apache2し、使用してそれを開きます。

    nano apache2.conf
    
  2. Ctrl+ Wを使用して、ディレクトリを検索します(153行目にあるはずです)

  3. このように見えるはずです

    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all denied
    </Directory>
    
  4. に変更する

    <Directory />
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
    
  5. Apacheを再起動します

    sudo service apache2 restart
    

単一のコマンドでApacheルートを変更するスクリプトを作成しました。私のgithubで見つけることができます。


それは私にとって一種の仕事ですが、私は付け加えなければなりません<Directory /path/to/my/project>Options Indexes FollowSymLinks AllowOverride All Require all denied </Directory>。で/etc/apache2/apahce2.confapache2のサービスを再起動する前に。
-r0ng

19

たぶん少し遅れています。それでも..

/ etc / apache2の下のapache.confでディレクトリ権限を編集する必要があります

これを検索

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

その下にこのコードを追加します。これにより、ディレクトリにアクセスする許可が与えられます。

 <Directory /media/myserver/>
            Options Indexes FollowSymLinks
            AllowOverride None
            Require all granted
    </Directory>

3

アクティブ化された構成のドキュメントルートを変更するだけです。/etc/apache2/sites-enabled/000-default そして、あなたのApacheをリロードしてください。

それでこれを試してください:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /media/myserver/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /media/myserver/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

次に、次のように適切な許可を与える必要があります。

sudo adduser <username> www-data
sudo chown -R www-data:www-data /media/myserver/
sudo chmod -R g+rw /media/myserver/

はい、私の友人は私はすでにこれをやった。上記のコードを参照してください私はデフォルトのドキュメントルートにコメントし、新しいドキュメントルートを挿入しました。apache2が停止してから起動します。うまくいきません。それは403エラーであり、アクセス許可が拒否され、ブラウザが表示されました
ケビン-Dhinesh babu

私の最後の編集者を見ましたか?
アチュー

はい、私はこれを見ました。それでも、このサーバーにアクセスする権限がないことを示しています
ケビン-Dhinesh babu

2

迅速な回避策(安全かつ迅速)として、外部ハードドライバーのマウントポイントを既定のルートディレクトリ(既定では/ var / www)にすることができます。

既存のディレクトリごとにマウントポイントを割り当てることは安全ですが、ドライバをアンマウントしない限り、古いコンテンツには到達できません。

マウントポイントの作成方法の詳細については、こちらを参照しください。


その考えによれば、bindfsここで説明されているように、を使用して特定のフォルダをマウントします:askubuntu.com/a/1024308/566421
pa4080

1

sudo gedit etc/apache2/apache2.conf このオプションを追加オプションインデックスFollowSymLinks MultiViews AllowOverrideなし順序を許可、すべてから許可を拒否

仮想構成の場合:/etc/apache2/sites-available/site.conf

ServerAdmin anilrmg@localhost.com
ServerName anilrmg.localhost.com
ServerAlias www.anilrmg.localhost.com
DocumentRoot /home/anilrmg/projects/code/anilrmg

sudo a2dissite 000-default.conf


1

VirtualBoxゲストの追加機能を使用し、you don't have permission to access /on this server上記のすべてにかかわらず取得する場合:

ApacheドキュメントのルートフォルダーをVirtualBox共有フォルダーに設定しようとしていて、上記のすべてを試したのに役に立たなかった場合は、もう1つの手順があります。

要するに、解決策はユーザー「www-data」をグループ「vboxsf」に追加することです。

sudo usermod -a -G vboxsf www-data

VirtualBox共有フォルダの所有者やグループを変更することはできませんが、上記の解決策はうまく機能しました。


1

私も同じ問題に遭遇し、それを解決することができました!

あなたがする必要があるのは

  1. apache2.confを変更します。/var/www/パスへの交換: <Directory /your/path/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>

  2. 000-default.confを変更します。

    DocumentRoot /your/path/

  3. ディレクトリの所有権をファイルマネージャまたはターミナルから自分に変更します(例:sudo chown pi:path)これがないと、「このサーバーで/にアクセスする権限がありません」というメッセージが表示されます。エラーメッセージ。

それで全部です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.