Xserverでpearを使おうとした時、インストールに詰まってしまったので覚え書き。
XserverにはデフォルトでPEARが入っているということだが、現時点でデフォルトで入ってるライブラリーは下記のもののみ。
それならばと、pear channel-update pear.php.netを試みるも、
Updating channel “pear.php.net” could not create lock file: fopen(/var/lib/pear/.lock): failed to open stream: Permission deniedと返ってくる。どうやら普通の設定でコマンド使ってインストールしようとすると、XserverのデフォルトでPEARが入っているディレクトリに入れようとするので、そういう権限はユーザーには無いですよと言われるようだ。
他にも色々とgo-pear.phpとかgo-pear.pharをダウンロードして動かしてはみたもののインストール途中で止まってしまうのだ。公式サイトからダウンロードしたり修正版のやつを試してみてもだめ。テラタームとかで難しい設定付きのコマンドを打てば新規インストールとかできるのかもしれないが、そういうスキルは自分には無いのでどうにかマウス(ブラウザ)でやりたいのだがそれが叶わない。
これぶっちゃけ結論から言うと、go-pear.phpまたはgo-pear.pharは、PHPのvesionが7以上だと、インストール途中で停止してしまうらしいのだ。つまりPEARはアプデされてないし、古すぎて7に対応できないっぽい。もうお手上げだ。
ってことでXserverの運営にどうすれば良いか問い合わせてみたところ、別にレンタルサーバー側でわざわざ頑張ってライブラリーのインストールをしようとしなくても、ローカルで一旦PEARライブラリーをインストール(ダウンロード)して、それをディレクトリごとFTPソフトでサーバーへアップすればライブラリーが使えるという解答。
そういえばローカル環境のxamppでPEARをインストールするとPHPのディレクトリ内にpearというフォルダができたのを思い出した。なのでそのローカルのpearフォルダごとまるまるそのままXserverなどのレンタルサーバー(ホスティング環境)にあるPHPディレクトリ内にアップしたら、レンサバ上でもPEARライブラリーが動作するようになった。うーん、こまけぇことはいいんだよ的なことか。なるほど。
なおpearをサーバーにアップロードした後はphp.iniにinclude_path = “.:/usr/share/pear:/home/以下人それぞれドメイン環境~を書けば使えるようになった。
20230131追記
pearライブラリ、パッケージのアップデートがあった場合、まずはローカルPCでアップデートして、その新しいファイルをレンタルサーバーへアップすることになると思うが、その場合、新しくしたファイル内で読み込んでいるファイルのディレクトリのパスが短縮されてしまっている場合があるので注意が必要だ。
例えばrequire_onceやinclude_onceあたりでエラーが起きる場合があるので、そんな時は正しいディレクトリが入力されているかエラーメッセージをよく見てみよう。