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ファイルです。

  1. システムの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を参照してください。

  2. Apache仮想ホスト(vhost)をインストールに設定します。

    Apache構成ディレクトリ内にsites-availableディレクトリとsites-enabledディレクトリが存在する場合は、以下のコマンドを実行します。

    1. sites-available/swarmファイルに以下のうちから適切な仮想ホスト定義を選んでコピーします。
    2. 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/

  3. 仮想ホスト定義のカスタマイズを行います。
    1. myswarm.hostを、ネットワーク上のSwarmのホスト名に置き換えます。これにはネットワーク上のDNS構成の調整が必要な場合があります。
    2. myswarm を、Swarmがホストされているサブドメインに置き換えます。通常は、「swarm」に置き換えます。

      注意

      ログファイルのパスにmyswarm という文字列が含まれていますが、アクティブなホストとそのログファイルを整合させるため、この文字列はログファイルのサブドメイン名とプレフィックスに一致している必要があります。こうすると、Apacheサーバが複数のSwarmインスタンスをホストしている場合に特に便利です。

    3. /path/to/apache/logsを、Apacheのログファイルを保管するパスに置き換えます。通常、Apacheのログファイル名は、access_logerror_logです。
    4. /path/to/swarmを、Swarmディレクトリのパスに置き換えます。
  4. 適切な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ファイル)のパスが異なる場合があります。
  5. 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

  6. PHPを構成します。詳しくは、「PHP構成」を参照してください。