CentOS6 環境に PHP の ssh2 extension をインストールしたときのメモ
2018/11/18 12:18
  • ひょんなことから Apache で ssh を使いたくなり、 ssh2 の extension をインストールすることにしました。
    インストール自体は以下のサイトのとおりです。

    参考: SSH2 EXTENSION FOR PHP ON CENTOS 6


    ただし、僕の環境で同じように実行した際、 pecl でエラーになりうまくインストールできなかったので
    対応方法を含めまとめます。


    サーバー環境


    CentOS release 6.8 (Final)
    Apache/2.2.15 (Unix)
    


    ssh2 extension のインストール

    以下の手順でインストールしました。

    必要なパッケージをインストールする

    $ sudo yum install gcc php-devel php-pear libssh2 libssh2-devel make
    


    pecl で ssh2 をインストールする

    $ pecl install -f ssh2
    

    エラーになる(´・ω・`)

    ...
    XML Extension not found
    


    どうやら pecl のバグっぽいものを踏んだらしいので、以下のサイトを参考にして pecl を修正する。

    参考: Vagrant上でXdebug使いたくてPeclコマンドでインストールしたけどうまくいかなかった話

    $ sudo vim `which pecl`
    
    ## 実行オプションの `-n` を削除して保存する
    #!/bin/sh
    exec /usr/bin/php -C -q -d include_path=/usr/share/pear \
        -d date.timezone=UTC \
        -d output_buffering=1 /usr/share/pear/peclcmd.php "$@"
    

    もう一度実行する

    $ pecl install -f ssh2
    


    今度は違うエラーが;;(´・ω・`)

    could not extract the package.xml file from "/tmp/pear/download/ssh2-0.13.tgz"
    

    少なくともパッケージ自体はダウンロードできているんだけど展開できないという状況にあったようです。
    アーカイブ系のパッケージになにか問題がありそうってことでアップグレードしてみる。

    参考: PEAR:but it is not a valid package archiveとなってしまう時の対処


    $ sudo pear upgrade Archive_Tar
    
    ## やはりパッケージがダウンロードされるだけで以降が進まないので、手動で展開する
    $ cd /tmp/pear/download/
    $ tar -zxvf Archive_Tar-1.4.3.tgz 
    
    ### 念の為既存の Tar.php をバックアップ
    $ sudo mv /usr/share/pear/Archive/Tar.php /usr/share/pear/Archive/Tar.php.org
    
    ### 新しい Tar.php を移動
    sudo cp Archive_Tar-1.4.3/Archive/Tar.php /usr/share/pear/Archive/
    


    pear もアップグレードする

    ## パッケージを展開できるようになったはずなので、 pear 本体をアップグレードする
    $ sudo pear upgrade
    

    再々度、 ssh2 をインストールする

    $ sudo pecl install -f ssh2
    


    確認する

    $ php -m |grep ssh2
    ssh2
    


    Apache を再起動して反映

    $ sudo service httpd graceful
    

    以上です。


    …ひさしぶりにサーバー触ったような気もしなくもない。( ・ิω・ิ)


    人気ブログランキングへ ブログランキング・にほんブログ村へ
    ↑応援よろしくお願いします!m(_ _)m

  • <2018/11/18 12:18>
  • サーバー
  • PHPCentOSPECLApacheモジュールmoduleSSHサーバー
  • 新しい記事へ
    [MySQL] 正常に稼働していたのにメンテナンス時に一度停止すると再起動できなくなった

    古い記事へ
    [GAS] Google Drive の特定フォルダ配下のフォルダ・ファイルの権限を一括で移譲する

profile picture

自己紹介的な何か

@wkmettyでついったーやってます。時々。 6年間勤めたゲーム会社を2018年2月に退職しフリーランスのプログラマに。 WordPress Core, WP-CLI コントリビューター。 お仕事募集中です。