ディレクトリを変更するか、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