web-dev-qa-db-ja.com

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

サーバー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をマウントする方法を誰かに教えてください。

26

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
    

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

  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 で見つけることができます。

35
Harjot

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

/ 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>
18
onurbekiroglu

アクティブ化された構成のドキュメントルートを変更するだけです。 /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/
3
Achu

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

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

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

2
yahya tawil

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

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

  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)これがないと、「このサーバーで/にアクセスする権限がありません」というメッセージが表示されます。エラーメッセージ。

それで全部です。

1
eatysweaty

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
Yuri Fedorov

Sudo gedit etc/Apache2/Apache2.confこのオプションを追加しますFollowSymLinks MultiViews AllowOverrideなし

仮想構成で:/etc/Apache2/sites-available/site.conf

ServerAdmin [email protected]
ServerName anilrmg.localhost.com
ServerAlias www.anilrmg.localhost.com
DocumentRoot /home/anilrmg/projects/code/anilrmg

Sudo a2dissite 000-default.conf

1
Anil Gupta