ディレクトリを変更するか、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
にあるファイルを提供しますlocalhost
80
。
の 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