MySQL
PHP7
AmazonLinux2
ubuntu18.04
EC-CUBE4

[EC-CUBE4]ワンライナー/必要なPHP拡張ライブラリのインストール


環境


  • 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という見出しの中にリンクが表示されるので、そこをクリックするともろもろ確認できます。