Apacheサーバーのルートディレクトリを変更するにはどうすればよいですか?[閉まっている]


241

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

編集する

私はそれを理解することになりました。httpd.confファイルを変更するよう提案された人もいましたが、最終的にファイルを見つけ/etc/apache2/sites-available/defaultてルートディレクトリをから/var/wwwに変更した/home/myusername/projects_folderところ、うまくいきました。


Stack Overflowは、プログラミングと開発に関する質問のためのサイトです。この質問はプログラミングや開発に関するものではないため、トピックから外れているようです。ヘルプセンターで、どのようなトピックについて質問できますかをご覧ください。おそらく、サーバーフォールトまたはWebmaster Stack Exchangeのほうがよいでしょう。
jww 2018

回答:


209

ファイルのDocumentRoot設定を変更する必要がありhttpd.confます。おそらくそれは以下のようなものになるでしょう/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など)に保持されます。


6
/etc/apache2/httpd.confを開きましたが、ファイルが空白でした。私はそれをgeditで開いています。
スペンサークーリー、

3
Linuxの種類によっては、このファイルが/etc/httpd/conf/httpd.confにある場合があります。
Chris Henry、

3
httpd.confファイルは空ですが、etc / apache2 / sites-available / defaultでファイルを見つけ、そこのルートディレクトリを変更しました。これは実際のサーバー上にあるわけではないと述べるべきだったと思います。ローカル開発環境をセットアップしています。わからないことが違い行う場合
スペンサー・クーリー

3
/ var / wwwと/ home / myusername / projects_folderの両方を同時に有効にすることはできますか?そして、どのように設定すればよいですか?ありがとう。
Paul Lo

3
「答え」は本当に時代遅れです。Ubuntu 18.xのドキュメントによる正しい答えは、Apacheのルートディレクトリを変更するか、プロジェクトを/ var / www / htmlに移動することです。Apacheのルートディレクトリを変更するには、cd / etc / apache2 / sites-availableを実行します。次に、コマンドnano 000-default.confを使用して000-default.confファイルを開きます。DocumentRootオプションを編集します:DocumentRoot / path / to / my / project。(askubuntu.com/questions/337874/…を参照)
sea26.2

262

これはUbuntu 14.04 LTS以降のリリースにのみ適用されることに注意してください。

私のUbuntu 14.04 LTSでは、ドキュメントルートがに設定されていました/var/www/html。次のファイルで構成されています。

/etc/apache2/sites-available/000-default.conf

だからちょうど

sudo nano /etc/apache2/sites-available/000-default.conf

次の行を必要なものに変更します。

DocumentRoot /var/www/html

また、

sudo nano /etc/apache2/apache2.conf

そしてこれを見つける

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

そして変化 /var/www/html、あなたの好きなディレクトリにしてください

それを保存します。

変更を保存したら、apache2ウェブサーバーを再起動するだけで完了です:)

sudo service apache2 restart


あなたがグラフィカルなテキストエディタを好む場合は、あなただけ置き換えることができますsudo nanoによってgksu gedit


1
@Paul Lo:私はこれをUbuntu 13.10では試していません。Ubuntu14.04でのみ試しました。私が最初にapacheをセットアップしたとき(Ubuntu 12.04上にあった)と確信しているので、そのようなディレクトリはありませんでした。だから、はい、これはUbuntu 14.04 LTS以降でのみ利用できると思います。ただし、他の答えを見ることができます。賛成票は、彼らが他の人々を助けたことを示唆しています。おそらく彼らは、Ubuntu 13.10でも動作します。
mozzbozz 14

1
しかし、他のその誰もが古いUbuntuのバージョン(Y)でこれをしようとする罠に歩くよう尋ねるためのおかげで、私は答えに、この情報を編集した
mozzbozz

3
@mozzbozzm、あなたは正しいです。14.04のみ。本当に奇妙な選択で、突然var/www/htmlデフォルトのルートになりました。彼らは実際に人々の時間を浪費しようとしていますか?:)
davidkonrad 2014年

4
You don't have permission to access / on this server.ブラウザーでlocalhost:80を押すと、禁止エラーが発生します。ポートを変更する必要がありますか?
コスタ

3
@Costa <Directory path_to_directory> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> /etc/apache2/apache2.confを追加することで問題を解決し ました
Keenan Gebze

42

私は編集しなければなりませんでした/etc/apache2/sites-available/default。行はRDLで述べられているものと同じです。


3
@pabloabによる提案された編集では、「Apache 2.4以降は末尾に必須.confであり、デフォルトでは000-as接頭辞が必要です」と書かれていました。結果は/etc/apache2/sites-available/000-default.confです。私はこれをテストしていませんが、一部の人々を助けるかもしれません。
ニック

^^これで修正されました。サイトで利用可能なファイルの最後に.confが必要であることはどこに記載されていますか?!?アップデート後に約20の仮想ホストが無効になり、オフラインになりました。数時間後、これを見つけてサイトで使用可能なファイルの名前を変更すると、修正されました。
James Perih

23

これは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


相棒ありがとう:)これはUbuntu 16.04で私のために働きました
Magesh Kumaar

2
Debian 8にも対応しました
androsfat

15

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

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

Apacheのデフォルトのインストールで使用されるデフォルトの仮想ホストファイル(ポート80のローカルホストで実行されるファイル)をコピーして、新しい仮想ホストファイルを作成することから始めます。ディレクトリに移動/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は、などのWebサイトファイルが提供されるディレクトリへのパスindex.htmlです。

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

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

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

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

次に、コマンドを使用してサーバーを再起動またはリロードしますsudo service apache2 restart。これで、Apacheはデフォルトポートのディレクトリexample.comにあるファイルを提供しますlocalhost80

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

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

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

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

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

行のすぐ下に編集/etc/apache2/ports.confおよび追加Listen 8080しますListen 80

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

次に、コマンドを使用してサーバーを再起動またはリロードしますsudo service apache2 restart。今、両方のディレクトリからアクセスすることができますlocalhostし、localhost:8080


4

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 *コンテンツが読み込まれます。


4

あなたがhttp.confニックの方法を見つけられず、それに従えなかった場合。

を使用してApacheを再起動します sudo service apache2 restart


4

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

  1. でファイルを/etc/apache2/sites-available/開き、ドキュメントルートをディレクトリの絶対パスに変更します。000-default.conf

    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ます。しかし、私の知る限り、これは一般的な開発環境を実行するために必要なことではありません。


2

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 ....を検索して置き換えます。


私は両方のことをしました。それでもForbiddenが表示されますこのサーバーにアクセスする権限がありません。
プログラマー

ホームディレクトリにない場合は、フォルダの権限を確認してください。
habibun 2016年

2

Ubuntu 16.04を使用している場合。/ etc / apache2 / sites-availableディレクトリの000-default.confを更新してください

ここ-> ServerAdmin webmaster @ localhost DocumentRoot / var / www / html / YourFolder


1

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

ただし、元の/var/wwwファイルは削除するか、名前を変更する必要があります。


0

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

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

このフォルダの行を変更して、ターミナルから保存します。



0

Linux Mintを使用している場合(個人的な意見、すべてのディストリビューションから、これは私を幸せにします)、次のようにします。

1- / etc / apache2 / sites-availableに移動し、000-default.confを編集します2- DocumentRootを検索します。例:DocumentRoot / var / www / htmlそれぞれのディレクトリに変更します。3-端末を開き、次のように入力します:sudo service apache2 restart

編集済み----- Mintで/etc/apache2/apache.confにアクセスし、/ var / wwwをそれぞれのパスに置き換えて、サーバーを再起動することを理解しています(ステップ3)。

それでおしまい。


0

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

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

2.Open /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理由コードの上のコメントに理由が記載されているため、フラグを。また、phpのバージョンは5.0、7.0、またはインストール済みのものであれば何でもかまいません。

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

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

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


-3

(私のような)Google経由でこの投稿を見つけた場合:

/etc/apache2/sites-available/000-default.confで見つけました


4
外部ファイルを指すのではなく、埋め込みコードを使用して詳細な回答を記述してください。
Christian MICHON、2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.