Apache構成
Apache HTTP Server (Apache)の構成は、OSのディストリビューションによって異なる場合があります。ご使用のApacheのインストールに対応するドキュメントを参照してください。例えば、macOSでは、システム環境設定の[共有]コントロールパネルでWeb共有を有効にする必要があります。
CentOS/RHELの場合のみ:
-
Swarm 2019.1~2020.1: これらのバージョンのSwarmでは、CentOS/RHEL 7用のSCLリポジトリのPHPパッケージが使用されていました。これは、CentOS/RHELの標準バージョンよりも新しいバージョンのPHPにアクセスできるようにするためです。この場合、Apache用のhttpd24-httpdパッケージを使用する必要がありました。必要なパッケージは、すべて/opt/rhにインストールされていました。
Swarm 2020.2: このバージョンのSwarmでは、CentOS/RHEL 7と8用のRemiリポジトリが使用されます。これにより、標準のファイルシステム構造にPHP7.4がインストールされます。そのため、Apache用の旧バージョンのhttpd24-httpdが必要なくなり、標準システムバージョンのApacheが再度使用されることになりました。
バージョン2019.1から2020.1までのSwarmでは、以下の場所にSCL Apacheサイト構成ファイルがインストールされていました。
/opt/rh/httpd24/root/etc/httpd/conf.d/perforce-swarm-site.conf
この構成ファイルが存在する状態でSwarmをバージョン2020.2にアップグレードすると、この構成ファイルが/etc/httpd/conf.d/perforce-swarm-site.confディレクトリにコピーされます(このディレクトリ内にファイルが存在しない場合)。また、このファイルが上書きされ、参照先が/var/log/httpd24から/var/log/httpdに変更されます。
Swarm用のサイト構成ファイルが/etc/httpdディレクトリ内に既に存在する場合、構成ファイルのコピー操作と上書き操作は実行されません。
アップグレードが完了すると、httpd24-httpdが無効になります。
-
Apacheサーバの起動時にApache HTTPサーバのLinuxテストページが表示されないようにするには、/etc/httpd/conf.d/ディレクトリのwelcome.confファイルの内容をコメント化します。
-
Apacheサーバの起動時に、Swarmの構成情報の代わりにApache HTTPサーバのサンプル構成情報が読み込まれないようにするため、/etc/httpd/conf.d/ディレクトリ内のautoindex.confファイルの名前をz-autoindex.confなどに変更してください。この処理が必要になる理由は、/etc/httpd/conf.d/ディレクトリ内で最初に見つかった構成ファイル(アルファベット順)がApacheによって実行されないようにする必要があるためです。実行する必要があるのは、perforce-swarm-site.confファイルです。
-
システムのApache構成を探します。
一般的な構成ディレクトリは次のとおりです。
- /etc/httpd/conf/
- /etc/apache2/
- /usr/local/apache2/conf/
- /Applications/XAMPP/etc/
構成パス内にある主要なApache構成ファイルの名前は、通常次のいずれかです。
- httpd.conf
- apache2.conf
ヒントApache構成ファイルの場所や名前に関する詳しい説明については、https://cwiki.apache.org/confluence/display/httpd/DistrosDefaultLayoutを参照してください。
-
Apache仮想ホスト(vhost)をインストールに設定します。
Apache構成ディレクトリ内に
sites-available
ディレクトリとsites-enabled
ディレクトリが存在する場合は、以下のコマンドを実行します。sites-available/swarm
ファイルに以下のうちから適切な仮想ホスト定義を選んでコピーします。-
Swarmの仮想ホスト定義を有効にします。
sudo a2ensite swarm
または、メインのApache構成ファイル(
httpd.conf
またはapache2.conf
)の最下部に、以下に示す仮想ホスト定義をコピーします。Apache 2.4の仮想ホスト定義の例:
<VirtualHost *:80> ServerName myswarm.host AllowEncodedSlashes NoDecode ServerAlias myswarm ErrorLog "/path/to/apache/logs/myswarm.error_log" CustomLog "/path/to/apache/logs/myswarm.access_log" common DocumentRoot "/path/to/swarm/public" <Directory "/path/to/swarm/public"> AllowOverride All Require all granted </Directory> </VirtualHost>
注意詳細については、次のリンクでApacheの仮想ホストに関するドキュメントを参照してください: https://httpd.apache.org/docs/2.4/vhosts/
- 仮想ホスト定義のカスタマイズを行います。
myswarm.host
を、ネットワーク上のSwarmのホスト名に置き換えます。これにはネットワーク上のDNS構成の調整が必要な場合があります。myswarm
を、Swarmがホストされているサブドメインに置き換えます。通常は、「swarm」に置き換えます。注意ログファイルのパスに
myswarm
という文字列が含まれていますが、アクティブなホストとそのログファイルを整合させるため、この文字列はログファイルのサブドメイン名とプレフィックスに一致している必要があります。こうすると、Apacheサーバが複数のSwarmインスタンスをホストしている場合に特に便利です。/path/to/apache/logs
を、Apacheのログファイルを保管するパスに置き換えます。通常、Apacheのログファイル名は、access_log
とerror_log
です。/path/to/swarm
を、Swarmディレクトリのパスに置き換えます。
-
適切なApacheモジュールが有効化されていることを確認します。
-
PHPモジュールとRewriteモジュールがアクティブになっているかどうかを確認するには、apachectlユーティリティを使用して、すべてのアクティブなモジュールを一覧表示します(このユーティリティは、システム上で
apache2ctl
という名前になっていることがあります)。apachectl -t -D DUMP_MODULES
- 出力内で
php7_module
およびrewrite_module
を探してください。出力内でこれらが見つかった場合は、ステップ5に進んでください。 -
Apacheユーティリティの
a2enmod
がインストールされている場合は、このユーティリティを使用してPHPモジュールとRewriteモジュールを有効にすることができます。sudo a2enmod php7 rewrite
-
a2enmod
ユーティリティがインストールされていない場合は、Apache構成ファイルを手動で編集してください。モジュールのApache構成ファイルを探してコメントを解除するか、次の行を追加します。LoadModule php7_module libexec/apache2/libphp7.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so - Apacheのインストールによって、モジュールの場所(.soファイル)のパスが異なる場合があります。
-
-
Webサーバを再起動します。
-
有効化したApache構成の変更を確実にするため、Webサーバの再起動を行います。
sudo apachectl restart
-
Apacheのアクティブな仮想ホストとモジュールを照会して、変更が反映されていることを確認します。
apachectl -t -D DUMP_VHOSTS
apachectl -t -D DUMP_MODULES
重要P4PHPはスレッド操作をサポートしていないため、プリフォークMPM マルチプロセッシングモジュールの略称。Apache WebサーバのコンポーネントであるMPMは、ネットワークポートへのバインディング、要求の受信、要求を処理するための送信操作を実行します。を使用するようにApacheを構成する必要があります。
LinuxとOSX Apacheのインストール環境では、プリフォーク
MPM
がデフォルトでインストールされているため、何も設定する必要がない場合があります。Apache MPMとその設定方法については、次のリンクを参照してください: https://httpd.apache.org/docs/2.4/mpm.html
-
- PHPを構成します。詳しくは、「PHP構成」を参照してください。