環境
- Ubuntu 18.04 / Amazon Linux2
- PHP 7.2 ★当初7.3として記載していましたがComposerコマンドがエラーになるので7.2に変更しました
- ECCUBE 4.0.2
- MySQL 5.6
背景
ECCUBE4公式のシステム要件には必要となるPHPライブラリの一覧記載されていますが、「どうやってインストールするの?」という細かい部分は記載されていません。
後述した表に記載したようにインストールする際に必要とするパッケージ名はライブラリ名と違うこともありますし、PHPバージョンが必要だったり・不要だったり一貫性がありません。さらに上記の一覧には「標準インストールすれば有効になっている(=追加インストール不要)」ものも含まれています。
全部を揃えるまで、イラッとしました面倒でした。こういう機械的な作業はさっとコピペで終わらせたいという人が多いと思うので控えておきました。ご利用ください。
結論
結論から書くと以下を実行すればOKです。
PHP本体(7.2)
Ubuntu 18.04の場合
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php7.2
Amazon Linux 2の場合
amazon-linux-extras install php7.2
拡張モジュール
Ubuntu 18.04の場合
sudo apt install php7.2-mysql php7.2-common php7.2-mbstring php7.2-json php7.2-xml php7.2-zip php7.2-curl php7.2-intl php-apcu php7.2-opcache php7.2-sqlite
Amazon Linux 2の場合
yum install php-mysql php-common php-mbstring php-json php-xml php-zip php-cURL php-intl php-apcu php-opcache php-sqlite
SQLiteの拡張モジュール(php7.2-sqlite php-sqlite)を含めている理由
ECCUBEのコマンドラインインストール時に自動的にSQLiteが利用されるためです。インストールしていないとデータベース作成処理で以下の実行エラーが発生します。
Script bin/console doctrine:database:create handling the installer-scripts event returned with error code 1
有効になっているPHPモジュールの確認
$ php -m
付録
ライブラリ名と(インストール時に利用する)パッケージ名
拡張名 | 必須or推奨 | パッケージ名 |
---|---|---|
mysqli | 必須 | php7.2-mysql |
pdo_mysql | 必須 | php7.2-mysql |
pdo | 必須 | php7.2-common |
phar | 必須 | php7.2-common |
mbstring | 必須 | php7.2-mbstring |
zlib | 必須 | デフォルトで有効 自身でコンパイルする場合 --with-zlib を指定 |
ctype | 必須 | php7.2-common |
session | 必須 | デフォルトで有効 |
JSON | 必須 | php7.2-json |
xml | 必須 | php7.2-xml |
libxml | 必須 | デフォルトで有効 |
OpenSSL | 必須 | デフォルトで有効 自身でコンパイルする場合 --with-openssl を指定 |
zip | 必須 | php7.2-zip |
cURL | 必須 | php7.2-curl |
fileinfo | 必須 | php7.2-common |
intl | 必須 | php7.2-intl |
hash | 推奨 | デフォルトで有効 |
APCu | 推奨 | php-apcu |
ZendOPcache | 推奨 | php7.2-opcache |
各ライブラリ名(php extensions)の詳細やインストール手順
上記の表でオプション指定して 自身でPHPをコンパイルする時のオプション指定について記載していますが、こういった情報は、PHP公式マニュアルの画面右上のボックスにライブラリ名を入力するとExtensions
という見出しの中にリンクが表示されるので、そこをクリックするともろもろ確認できます。