こんにちは。
プライム・ストラテジー株式会社でKUSANAGIを開発している田島です。
KUSANAGIのPHP7環境では、あらかじめいくつかのモジュールがインストールされています。
インストールされている全てのモジュールを下記コマンドで確認することができます。
$ php7 -m
しかしながら、デフォルトのKUSANAGI環境にはインストールされていないPHP7拡張モジュールを追加でインストールしたいというケースもあると思います。
そこで今回は、KUSANAGIのPHP7に拡張モジュールを追加する方法を、ssh2を追加する具体例をもとにご紹介します。
目次
モジュールがインストールずみか確認
$ php7 -m | grep ssh2 # 何も出力されない場合はインストールされていない
PECLのWEBサイトで拡張モジュールを検索する。
検索窓にssh2と入力して、エンターキーを押します。
検索結果から該当するモジュールにアクセスする。
Available ReleasesのDownloadsから最新のURLを取得し、右クリックでコピーしておく。(2018年9月13日現在だとssh2の最新版のURLはhttps://pecl.php.net/get/ssh2-1.1.2.tgz)
※この時Dependenciesの欄でPHP7に対応しているモジュールであることを確認する。
拡張モジュールをインストールする
拡張モジュールをインストールしたいKUSANAGI環境にログインし、rootユーザーにて下記コマンドを順番に実行していきます。
$ cd /usr/local/src # ワーキングディレクトリに移動 $ wget https://pecl.php.net/get/ssh2-1.1.2.tgz # コピーしておいたモジュールの最新URL $ tar xfvz ssh2-1.1.2.tgz $ cd ssh2-1.1.2 $ /usr/local/php7/bin/phpize # phpizeを使って拡張モジュールのコンパイル前処理をする $ ./configure --with-php-config=/usr/local/php7/bin/php-config # Makefile作成 $ make && make install # ビルドとインストール $ ls /usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718 | grep ssh2 # *.soを確認する。 ssh2.so $ echo 'extension = ssh2.so' > /etc/php7.d/extensions/ssh2.ini # モジュールを読み込めるようにする
モジュールがインストールされているか確認する
$ php7 -m | grep -i ssh2 ssh2 # インストールされている
PHP-FPMを再起動する
WEBサーバに設定が反映されるように、最後にkusanagiコマンドでPHP-FPMを再起動して終了です。
$ kusanagi php7-fpm
問題が起こったので、戻したい場合
下記ファイルを削除してPHP-FPMを再起動します。
$ rm /etc/php7.d/extensions/ssh2.ini $ rm /usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718/ssh2.so $ kusanagi php7-fpm