先日XserverにSSH接続し、Tera Termでコマンド操作する機会があったんですが、当初コマンドがうまく動作しませんでした。
コマンドは、wordpress用のWP-CLIライブラリの中の「regenerate」でしたが、実行すると、
「あなたのサーバーのPHPバージョンは5.4.16だが、wordpress6.1.1には少なくてもPHPバージョン5.6.20以上が必要です。」
と言われました。

???XserverのPHPバージョンはたしか7.4.33に設定しているはずだが?
で、Xserverのサーバーパネルで確認してみると、やはり7.4.33になってます。
どういうことなのか?
そこで今回は、XserverのSSH接続でWP-CLIコマンドを実行させるために行った、PHPバージョンの変更方法をわかりやすく説明します。
SSH接続のPHPバージョン
数あるレンタルサーバーの中でも、XserverはSSHを使ってサーバー上のファイル操作が安全にできるユーザーフレンドリーなサーバーです。
\Xserverの申し込みはこちらから/
ですが、SSH接続して、Tera TermからWP-CLIのコマンドを実行しようとすると、前述のようにPHPのバージョンが適切でないと言われました。
実は、XserverでSSH接続しコマンドラインを実行する際に適用されるPHPバージョンは、デフォルトでPHP5.4.16になっています。
これは、XserverのサーバーパネルからPHPバージョンを切り替えてもその結果が反映されず、変更されません。


PHPバージョンの変更
解決策として、wordpressのバージョンダウンも考えましたが、あまり現実的とは言えません。そこでSSH接続時のPHPバージョンを変更することにしました。



これがコマンド素人の私には大変でした。何度もやり直し何とか変更できましたが、できるだけわかりやすく説明します。
- ①SSH接続
- ②現在のPHPバージョン確認
- ③利用できるPHPバージョンの確認
- ④binディレクトリの作成
- ⑤シンボリックリンクの作成
- ⑥bash_profileを編集
- ⑦変更を反映させる
- ⑧確認
①SSH接続
とりあえずSSH接続しないと始まりません。
SSH接続にはTera Termを使いますが、詳細は前回の記事を参照してください。


②現在のPHPバージョン確認
SSH接続できたら、現在のPHPバージョンを確認します。
Tera Termのプロンプトに
php -v
と入力後Enterを押す。


すると、上図のように現在SSHで使われているPHPのバージョンが表示されます。
上図はすでに変更済みのためPHP7.4.33になってますが、通常はPHP5.4.16となっていると思います。
③利用できるPHPバージョン確認
次にXserverで利用できるPHPバージョンとパスを調べます。
Tera Termに
find /opt/php-*/bin -type f -name 'php'
と入力しEnterを押すと、


このように利用できるPHPのバージョン一覧とパスが表示されます。
ここで使いたいバージョンのパスをメモしておきます。
私は、Xserver推奨のPHPバージョン7.4.33にしましたのでパスは、
/opt/php-7.4.33/bin/php
になります。
④binディレクトリを作成
Xserverのホームディレクトリにbinディレクトリが無い場合は、作成しておきます。
mkdir $home/bin
すでにディレクトリが存在する場合は、「/binを作成できません:ファイルが存在します。」と言われますがそのままで問題ありません。
⑤シンボリックリンクの作成
*注 すでにシンボリックリンクが存在する場合もあります。
すでにPHPのシンボリックリンクが存在していることがありますので、シンボリックリンク作成前に、念のため既存のリンクを解除しておきましょう。
プロンプトでbinディレクトリに移動した後、リンク解除します。
cd $home/bin
unlink php
それでは、binディレクトリの中に、選択したPHPバージョンのシンボリックリンクを作成します。(シンボリックリンクはWindowsのショートカットと似た機能のことです。)
プロンプトに、
ln -s /opt/php-7.4.33/bin/php $HOME/bin
このように入力しEnterを押します。
*上記コマンドの「/opt/php-7.4.33/php」の部分が先ほどメモしたPHPバージョンのパスになります。
これで、binディレクトリに選択したPHPバージョンのシンボリックリンクができました。
シンボリックリンクの確認は、binディレクトリに移動し、「ls -l」コマンドでできます。
ls -l
lrwxrwxrwx 1 ksanhonsan3 members 23 1月 21 22:07 php -> /opt/php-7.4.33/bin/php
上記のようになっていればOK。
⑥bash_profoileの編集
続いて、bash_profileを編集してbash起動時に、優先的にbinディレクトリを参照するようにパス(PATH)を通します。



bash_profile?bash?何がなんやらわかりにくいですが、ここではまぁそんなものかと思ってください。
bash_profileの編集はプロンプトからもできます。
vi .bash_profile
ですが、「vi」を使った編集は私には手強かったので、XserverのWebFTP(ファイルマネージャー)で行いました。
Xserverのファイルマネージャーにログインし、


ルートディレクトリから「bash_profile」を選択、メニューの「編集」をクリックしファイルを開きます。
編集するのは、
PATH=$PATH:$HOME/bin
この部分です。これを、
PATH=$HOME/bin:$PATH
と書き換えるだけ。


書き換えが終わったら下の更新をクリックしてください。


⑦変更を反映させる
bash_profileを編集し終えたら、変更を反映させなければなりません。
プロンプトにもどり、
source .bash_profile



bash_profileの前に「.」ドットを入れるのを忘れないでくださいね。
⑧変更の確認
最後にPHPバージョンを変更できたかどうか確認してください。
プロンプトから、
php -v


上図のように、希望のバージョン(ここではPHP7.4.33)になっていれば完了です。
まとめ


もともとは、wordpressのプラグインRegenerate Thumbnailsを使おうとして試してみたSSH接続ですが、コマンド音痴の私には敷居が高かったです。
ただ今回の作業を通じて、少しはUNIX/Linuxのコマンド操作やサーバーの遠隔操作について学べたのは収穫だったかなと思います。



いやぁ~しかしネットの世界は深くて広いなぁ。



あんまり深入りすると抜け出せなくなりそう。
ですが、いずれ今回覚えた一連の操作がいずれ役に立つ時が来るんではないかと思ってます。
今回は以上です。
この記事がどなたかのお役に立てればうれしいです。
それでは
\Xserverのお申し込みはこちら/
コメント