LoginSignup
3
0

xserverのphpバージョンアップがどん詰まったので備忘録
他にスマートな方法をご存知の方、教えてください…

xserverへSSH接続して確認したPHPバージョン

$ php -v
PHP 5.4.16

xserverのPHP Ver.切り替え画面
スクリーンショット 2024-01-10 14.41.38.png

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のサーバパネルを確認

スクリーンショット 2024-01-10 15.27.56.png

設定すべきディレクトリ、書いてました

$ 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バージョンを変更する方法をわかりやすく

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0