web-dev-qa-db-ja.com

Apacheサーバーのルートディレクトリを変更するにはどうすればいいですか?

誰もがApacheサーバーのドキュメントルートを変更する方法を知っていますか?私は基本的にlocalhost/users/spencer/projectsの代わりに/var/wwwディレクトリから来ることを望みます。

編集する

私はそれを考え出しました。私はhttpd.confファイルを変更することを提案しましたが、私は/etc/Apache2/sites-available/defaultでファイルを見つけることになって、ルートディレクトリを/var/wwwから/home/myusername/projects_folderに変更しました、そしてそれはうまくいきました。

226
Spencer Cooley

httpd.confファイルのDocumentRoot設定を変更する必要があります。おそらく/etc/Apache2/conf/httpd.confのようなものになるでしょう

あなたの好きなエディタを使い(私は Vim をお勧めします)、DocumentRootを探して/users/spencer/projectsに変更します。また、このような設定をもう少し下に見てください。

<Directory "/var/www">

また、引用符の中身を新しいディレクトリに変更することもできます。これにより、ユーザーがそのディレクトリを呼び出す要求を行ったときに、そのディレクトリから読み取るためのApacheアクセスが可能になります。

それでは、Apacheサービス(httpd -k restart)を再起動してください。

編集 :Apache2サイトの設定ファイルは通常/etc/Apache2/sites-available/(Debian、Ubuntuなど)に保存されるようになりました。

192
RDL

/etc/Apache2/sites-available/defaultを編集しなければなりませんでした。行はRDLで述べたものと同じです。

42
Nick

これはUbunutu 14.04用です:

ファイル/etc/Apache2/Apache2.confでは、ディレクトリ名を除いて以下のようになります。

<Directory /home/username>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

ファイル/etc/Apache2/sites-available/000-default.confには、カスタムディレクトリ名、すなわちwww:を含める必要があります。

DocumentRoot /home/username/www

上記以外の場合、サーバーをロードするときにエラーが発生します。Forbidden You don't have permission to access / on this server

19
androsfat

Apache2の異なるポートでディレクトリを変更したり、複数のディレクトリから実行したりする正しい方法は次のとおりです。

Apache2の場合、構成ファイルは/etc/Apache2の下にあり、古いバージョンのように単一の構成ファイルを使用しませんが、/etc/Apache2/Apache2.confがメイン構成ファイルである小さな構成ファイルに分割されます。別のディレクトリからファイルを提供するには、新しいvirtualhost confファイルが必要です。 virtualhost confファイルは/etc/Apache2/sites-availableにあります(サイト対応のファイルは編集しないでください)。デフォルトのApacheインストールでは、virtualhost confファイル000-default.confが使用されます。

Apache(ポート80のlocalhostで実行されるもの)のデフォルトインストールで使用されるデフォルトの仮想ホストファイルをコピーして、新しい仮想ホストファイルを作成することから始めます。ディレクトリ/etc/Apache2/sites-availableに移動し、Sudo cp 000-default.conf example.com.confでコピーを作成し、Sudo gedit example.com.confでファイルを編集します。

<VirtualHost *:80>
    ServerAdmin example@localhost
    DocumentRoot /home/ubuntu/example.com    
</VirtualHost>

簡潔にするために、上記のファイルから重要でない行を削除しました。ここでDocumentRootは、index.htmlなどのWebサイトファイルの提供元ディレクトリへのパスです。

たとえば、ファイルを提供するディレクトリを作成します。 mkdir example.comおよびディレクトリの所有者とデフォルトグループを変更します。たとえば、ログインしているユーザー名がubuntuの場合、Sudo chown ubuntu:www-data example.comとしてアクセス許可を変更します。これにより、ユーザーubuntuへのフルアクセスが許可され、グループwww-dataへの読み取りおよび実行アクセスが許可されます。

次に、コマンド/etc/Apache2/Apache2.confを発行してApache confファイルSudo gedit Apache2.confを編集し、行<Directory /var/www/>を見つけ、終了タグ</Directory>の下に、以下を追加します。

<Directory /home/ubuntu/example.com>
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
</Directory>

現在、仮想ホスト設定ファイルを有効または無効にする2つのコマンドがあり、それぞれa2ensiteおよびa2dissiteです。 example.com.confファイルはデフォルトの構成ファイル(80)で使用されるものと同じポート(000-default.conf)を使用するため、コマンドSudo a2dissite 000-default.confを発行してデフォルトの構成ファイルを無効にし、Sudo a2ensite example.com.confで仮想ホストconfファイルを有効にする必要があります

コマンドSudo service Apache2 restartを使用して、サーバーを再起動またはリロードします。現在、Apacheは、example.comのデフォルトポート上のlocalhostにあるディレクトリ80からファイルを提供します。

a2ensiteコマンドは、基本的に、サイト対応ディレクトリの下にあるconfファイルへのシンボリックリンクを作成します

この回答で指摘されているように、サイト対応(または*対応)のディレクトリ内でファイルを編集しないでください https://stackoverflow.com/a/41568701/253276

ポートを変更し、異なるポートの複数のディレクトリから実行するには:

別のポートでディレクトリを実行する必要がある場合は、virtualhostファイルを次のように編集して、ポート番号を80から8080に変更します。

<VirtualHost *:8080>
    ServerAdmin user@localhost
    DocumentRoot /home/ubuntu/work
</VirtualHost>

/etc/Apache2/ports.confを編集し、行Listen 8080のすぐ下にListen 80を追加します

Example.comディレクトリはSudo a2ensite 000-default.confとしてポート8080を使用するため、ポート80で実行されるデフォルトのvirtualhost confファイルを有効にできます。

コマンドSudo service Apache2 restartを使用して、サーバーを再起動またはリロードします。これで、両方のディレクトリにlocalhostおよびlocalhost:8080からアクセスできます。

10
lordvcs

Apache2 on Linux Mint 17.3 Cinnamon 64ビットの場合、次のように動作します。

  1. /etc/Apache2/sites-available/000-default.confファイルを開き、 Document Root を自分のディレクトリの絶対パスに変更します。

    Sudo vim /etc/Apache2/sites-available/000-default.conf

  2. /etc/Apache2/httpd.confを開き、自分のディレクトリを参照し、<Directory>のタグとまったく同じ設定を含むvar/wwwタグを追加します。

    Sudo vim /etc/Apache2/Apache2.conf

    私のマシンでは、このように見えました:


<Directory /home/my_user_name/php/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

注: 最初のステップで、SSLの目的でdefault-ssl.confファイルの Document Root を変更することをお勧めします。しかし、私が言うことができる限りでは、これは一般的な開発環境を動かすために必要ではありません。

4
stackato

LAMPと ドキュメントルートフォルダを変更するには 私は /etc/Apache2/sites-available フォルダにある デフォルト ファイルを編集しました。同じことをしたい場合は、次のように編集してください。

DocumentRoot /home/username/new_root_folder
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/username/new_root_folder>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

この後ブラウザにlocalhostと入力すると */home/username/new_root_folder * contentがロードされます。

4
Shashidhara

http.confが見つからず、Nickの方法に従った場合。

Sudo service Apache2 restartを使用してApacheを再起動します

3
Nitin

Ubuntu 16.04を使用しているとします。 /etc/Apache2/sites-availableディレクトリにある000-default.confを更新してください。

ここ - > ServerAdmin ウェブマスター@ localhost DocumentRoot /var/www/html/YourFolder

2
Shashank Saxena

私は/var/wwwを必要なディレクトリ(例えば/users/username/projects)へのソフトリンクになるようにしました、そしてそれ以降は問題ありませんでした。

ただし、当然のことながら、元の/var/wwwは削除するか、名前を変更する必要があります。

1
maan81

Apacheバージョン2.4.18(Ubuntu).

1. /etc/Apache2/Apache2.confこのファイルにアクセスして、<Directory /var/www/>を検索し、自分のディレクトリに置き換えます......

2. /etc/Apache2/sites-available/000-default.confにアクセスしてDocumentRoot /var/www/htmlを検索し、あなたのDocumentRootに置き換えます。

1
habibun

Ubuntu 14.04 以降のリリースに適用されます。変更を加える前に、必ず次のファイルをバックアップしてください。

1. /etc/Apache2/Apache2.confを開いて<Directory /var/www/>ディレクティブを検索し、pathを/home/<USERNAME>/public_htmlに置き換えます。代わりに*を使用できます。

2. /etc/Apache2/sites-available/000-default.confを開き、DocumentRoot valueプロパティを/var/www/htmlから/home/<USERNAME>/public_htmlに置き換えます。 <Directory /var/www/html>から<Directory /home/<USERNAME>/public_htmlまで。

3. /etc/mods-available/php7.1.confを開きます。次のコードを見つけてコメントする

<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>

ディレクティブコードの上のコメントで理由が述べられているようにphp_admin_flag engine OFFフラグをONにしないでください。 phpのバージョンも5.0、7.0、あるいはあなたがインストールしたものなら何でも構いません。

public_htmlhome/<USERNAME>ディレクトリを作成します。

コマンドSudo service Apache2 restartを実行してApacheサービスを再起動します。

サーバー上でサンプルスクリプトを実行してテストします。

0
user1184294

RedHat 7.0の場合:/etc/httpd/conf/httpd.conf

0
ehacinom

もしあなたがLinux Mintを使っているなら(個人的な意見、これは私を幸せにしているすべてのディストリビューションから)、これに従ってください:

1-/etc/Apache2/sites-availableに移動して000-default.confを編集します。 3-端末を開いてタイプ:Sudo service Apache2 restart

編集済み----- Mintでは、/etc/Apache2/Apache.confに移動し、サーバーを再起動するのではなく、/ var/wwwをそれぞれのパスに置き換えます。

それでおしまい。

0

誰かが/optフォルダーにLAMPをインストールした場合、/etc/Apache2はあなたが探しているものではありません。

httpd.conf/opt/lampp/etc/httpd.confファイルを探します。

このフォルダの行を変更して端末から保存します。

0
Yogesh Gupta