PHP構成
PHPの構成は、OSディストリビューションによって異なる場合があります。詳細については、PHPのインストール環境に対応するドキュメントを参照してください。
-
最初に、PHP Apacheモジュールで使用されているPHPの
.ini
ファイルを特定します。注意このファイルは、コマンドラインからPHPを呼び出す際に使用される
.ini
ファイルと必ずしも同じファイルではありません。コマンドラインでphp --ini
を実行すると、該当するファイルを確認することができます。PHP Apacheモジュールで使用されている
.ini
ファイルを特定できない場合は、Apache経由で使用できるPHPファイルを作成して以下の行を追加します。<?php phpinfo();?>
使用しているブラウザでこのファイルを参照し、結果のテーブル内で以下のテーブル行を検索します。
Loaded Configuration File
-
現在のシステムに対して
date.timezone
が正しく設定されていることを確認します。一部のディストリビューションでは、デフォルトのタイムゾーンをPHPで使用できないため、PHP用のタイムゾーンを明示的に設定することをお勧めします。 サポートされているタイムゾーンの一覧を参照してください。
php.ini
ファイル内で設定されているdate.timezone
の例を以下に示します。date.timezone = America/Vancouver
-
iconv、json、セッションの拡張機能がインストールされていることを確認します。
通常、これらの拡張機能はデフォルトで有効になっていますが、OSディストリビューション経由でこれらの拡張機能用のパッケージをインストールしなければならない場合があります。 上記の
phpinfo
出力内でそれぞれの拡張機能名を検索して、必要な拡張機能がインストールされていることを確認してください。 -
PHP用Perforce拡張機能であるP4PHPを有効にします。
SwarmがHelix Coreサーバと通信を行うには、P4PHP拡張機能が必要です。 SwarmでサポートされるPHP 7の各バージョンに対して、P4PHPバリアントが用意されており、各バリアントはopenssl 1.02またはopenssl 1.1.1として使用できます。 P4PHPのすべてのバリアントは、Swarmパッケージ、OVA、およびtarballのインストールに含まれます。
注意- Linuxの場合、デフォルトのバリアントはglibc 2.11を使用してコンパイルされています。
- Swarm 2019.1以降には、P4PHP 2019.1以降が必要です。
- perforce-php7x.soはSSL 1.0.2を使用するシステムに対応しています。
- perforce-php7x-ssl1.1.1.soはSSL 1.1.1(Ubuntu 18.04のデフォルト)を使用するシステムに対応しています。
- Swarm Webページが読み込まれず、Connection Resetエラーが表示される。
- Apacheのエラーログにundefined symbol: SSLeayというメッセージが記録される場合がある。
Swarm パッケージ、OVA、tarballのインストール: SwarmがサポートするPHP 7の各バージョンには、それぞれ2つのパッケージのP4PHPが提供されています。 これらはp4-bin/bin.linux26x86_64ディレクトリにあります。
「x」は、PHP 7のバージョンです。
perforce.iniファイルがP4PHPの正しいバージョンを指しておらず、SSLが有効になったHelixサーバに接続している場合、以下のような動作になります。
P4PHPを有効にするには、Webサーバの
php.ini
ファイルを編集して、以下の行を追加します。extension=/path/to/swarm/p4-bin/bin.<platform>/perforce-<variant>.so
例1: PHP 7.0およびSSL 1.0.2を実行する64ビットのLinuxシステムの場合:
extension=/path/to/swarm/p4-bin/bin.linux26x86_64/perforce-php70.so
例2: PHP 7.1およびSSL 1.0.2を実行する64ビットのLinuxシステムの場合:
extension=/path/to/swarm/p4-bin/bin.linux26x86_64/perforce-php71.so
例3: PHP 7.2およびSSL 1.0.2を実行する64ビットのLinuxシステムの場合:
extension=/path/to/swarm/p4-bin/bin.linux26x86_64/perforce-php72.so
例4: PHP 7.2およびSSL 1.1.1を実行する64ビットのLinuxシステムの場合:
extension=/path/to/swarm/p4-bin/bin.linux26x86_64/perforce-php72-ssl1.1.1.so
または、拡張ファイルをPHP拡張機能のデフォルトの場所にコピーして、そのファイルに以下の行を追加します。
extension=perforce-<variant>.so
- Apacheを再起動して、変更内容を有効にします。
- P4PHPが有効であることを検証するには、前述の手順で作成した
phpinfo
ファイルに移動します。 「Perforce Module」というセクションを検索します。 このセクションに、モジュールが有効になっていることを示す情報と、バージョン情報が記載されています。 -
CentOS/RHEL 6の場合の推奨事項: /etc/php.iniファイルの[Pcre]セクションに記述されている以下のパラメータの値を次のように変更してください。 この変更により、非常に長いコメントも表示できるようになります。
- pcre.backtrack_limit = 1000000
- pcre.recursion_limit = 10000
- また、PHP用のオプション拡張機能であるImageMagickをインストールすると、Swarmの機能を大幅に拡張することができます。通常のWebブラウザでは表示できないグラフィック形式のプレビューをSwarmで表示できるようになります。詳細については、「PHP用のImageMagick (imagick)拡張機能」を参照してください。
- Swarmを構成します。詳細については、「Swarmの構成」を参照してください。
Swarmをホストしているマシン上でオペレーティングシステムをアップグレードすると、PHPのアップデートが必要になる場合があることに注意してください。 その場合は、P4PHPの正しいvariant
を参照するようにPHPの.iniファイルを更新し、アップグレード後のオペレーティングシステムで使用されるPHPのバージョンと一致させる必要があります。
PHP用のImageMagick (imagick)拡張機能
Imagickは、ImageMagickのグラフィックライブラリのAPIを統合して画像の作成と操作を行うためのPHP拡張機能です。 Imagickを有効にすると、通常のWebブラウザでは表示できないグラフィック形式をプレビュー表示する場合のSwarmのパフォーマンスが向上します。
詳細については、下記のサイトを参照してください。
-
apt-get
やyum
などのコマンドを使用して、OSディストリビューションからImagickをインストールすることをお勧めします。 PHP用のImagickパッケージがディストリビューションに付属していない場合は、以下のPECLコマンドを使用してImagickをインストールしてください(ただし、システムの依存関係を解決しなければならない場合があります)。$ sudo pecl install imagick
-
PHP ApacheモジュールのPHPの
.ini
ファイルで、Imagickが有効になっていることを確認します(前の手順で説明したP4PHPの場合と同じ方法で確認します)。 その際、以下の行を追加しなければならない場合があります。extension=imagick.so
- Apacheを再起動して、変更内容を有効にします。
-
imagickが有効になっているかどうかを確認するには、前の手順で作成した
phpinfo
ファイルに移動して、 「imagick」というセクションを検索します。 このセクションに、Imagickのバージョン情報、Imagickのディレクティブ用のテーブル、サポートされる画像ファイル形式などが記載されています。警告P4PHPとImagickをインストールして有効にしたら、インストール環境に関する情報が外部に漏れないように、
phpinfo
ファイルを削除することをお勧めします。