xserverのphpバージョンアップがどん詰まったので備忘録
他にスマートな方法をご存知の方、教えてください…
xserverへSSH接続して確認したPHPバージョン
$ php -v
PHP 5.4.16
PHPバージョンを合わせる
xserverのPHP Ver.切り替え画面で設定したPHP8.1.22に変更します
xserver上に存在するPHPのバージョンを検索
$ find /opt/php-*/bin -type f -name 'php'
結果
たくさんのPHPバージョンが出てきました
/opt/php-5.1.6/bin/php
…
/opt/php-5.4.16/bin/php
…
/opt/php-8.1.22/bin/php
…
この中からxserverサーバパネルで設定した8.1.22を設定します
以下、作業に詰まった手順と現象
bin/phpにシンボリックリンクを作成するためにln
すでにリンクがある(と思う)ので上書きオプション-iを付けて
$ ln -i -s /opt/php-8.1.22/bin/php $home/bin/php
実行!
$ ln -i -s /opt/php-8.1.22/bin/php $home/bin/php
ln: `/bin/php' を置き換えますか(yes/no)? yes
ln: `/bin/php' を削除できません: 許可がありません
私にbin/phpを書き換える権限はないらしい
なるほど、私がrootじゃないからか!
と浅はかに試してみたスーパーユーザ
$ sudo ln -i -s /opt/php-8.1.22/bin/php $home/bin/php
-bash: /usr/bin/sudo: 許可がありません
そもそも
xserverのユーザにはroot権限は与えられません
共有サーバなので、root権限を持たれては困りますということ
では私が私の権限のまま、設定すべきディレクトリはどこ??
以下、解決手順
xserverのサーバパネルを確認
設定すべきディレクトリ、書いてました
$ cd /home/{serverID}
(ここって多分ssh接続したときに降り立つ場所では?)
binディレクトリが存在しないので作成
$ mkdir ~/bin
$ cd ~/bin
ここを宛先としたシンボリックリンクを作成…
$ ln -i -s /opt/php-8.1.22/bin/php ~/bin
php -> /opt/php-8.1.22/bin/php
できました〜〜〜〜
パスを通しましょう
例のホームディレクトリに戻ってパスを通します
$ cd ..
$ vi .bash_profile
…
# PATH=$PATH:$HOME/bin // 元々設定されています、コメントアウトします
PATH=$HOME/bin:$PATH // 追加!ここは「$HOME/bin」(最初にfindした場所)
export PATH
escキー→:wq
で保存し
下記コマンド実行して更新
$ source .bash_profile
PHPを確認してみる
$ php -v
PHP 8.1.22
無事利用したいphpバージョンに変更することができました
参考ページ🙇!
XServerのSSH接続でPHP5.4ではなくPHP7を指定してbin/console実行
XserverのSSH接続でPHPバージョンを変更する方法をわかりやすく