こんにちは、さるまりんです。
macOSのPHPでssh2
の機能を使いたくて、モジュールがインストールされているかを調べてみました。
$ php -m | grep ssh2
何も表示されません。
こんなプログラムで試してみます。
is_ssh2_available.php
<?php
if (function_exists('ssh2_connect')) {
echo 'ssh2_connect() is available';
} else {
echo 'ssh2_connect() is not available';
}
ssh2_connect()
関数が存在すればavailable、存在しなければnot availableと表示されます。
実行してみました。
$ php is_ssh2_available.php
ssh2_connect() is not available
not available… 存在しないようです。
ssh2
の機能を利用できるようにするには次の手順を実行します。
phpがインストールされてなければ、まずはbrew
でphp
をインストール。
brew install php
(上のPHPスクリプトが実行できる。ということは、PHPがすでにインストールされています。事前にbrewでphpをインストールしていたので、今回はこの手順はスキップしました。)
続いてbrew
でlibssh2
をインストールします。
brew install libssh2
続いてphpのssh2
モジュールをインストールします。
cd ~/Downloads
git clone https://git.php.net/repository/pecl/networking/ssh2.git
cd ssh2
phpize
./configure
make
make install
ssh2
を利用できるように設定ファイルを追加します。
$ php --ini
Configuration File (php.ini) Path: /usr/local/etc/php/8.0
Loaded Configuration File: /usr/local/etc/php/8.0/php.ini
Scan for additional .ini files in: /usr/local/etc/php/8.0/conf.d
Additional .ini files parsed: /usr/local/etc/php/8.0/conf.d/ext-opcache.ini
ディレクトリ/usr/local/etc/php/8.0/conf.d
より、設定ファイルを読み込んでくれるので、そのディレクトリに次のファイルを追加します。
ssh2.ini
extension="ssh2.so"
これで使えるはずです。
確認してみます。
$ php -m | grep ssh
ssh2
ssh2
と表示されました。
上のスクリプトを実行してみます。
$ php is_ssh2_available.php
ssh2_connect() is available
available! ssh2_connect()
関数が存在しています。
これで使えるようになりました!
前回の記事はこれをやろうとして、色々やってる中で試したことでした。
一つのことからいろんなことを学べますね。がんばります!
読んでくださってありがとうございました。
それではまた!