#解決! xserver php バージョンアップした時に ssh 環境に反映されない

長く xserver 使っていますが、そろそろ php8 もリリースするのに未だに php5.6 使っています。
composer require したいけど、php のバージョンが低すぎって言われたので、
**アップしよう!**と思ってやってみましたが、意外と簡単なことと意外と躓いたことがありました。

これがほしい

PHP 7.2.6 (cli) (built: May 30 2018 21:41:35) ( NTS )

-bash-4.2$ php -v
PHP 7.2.6 (cli) (built: May 30 2018 21:41:35) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

#管理画面で php ver のメニューから php バージョン変更可能

そうです。vps より 100 倍くらい速い!これはレンタルサーバーの強みですね。クリックするだけで php バージョン変更完了!
vps の時の php バージョンアップもそんなに手間ではないが、レンタルサーバーみたいにクリック何回かで完了することはまずない。やはり自由度が高い分、自分の手でメンテして行かないと行けないので、php でちょっとしたプログラム書くなら、やはりレンタルサーバーの方がいいと再び実感~~

#ssh にログインして composer require

早速 ssh でログインして composer require やってみましたが、以前に php バージョン低い云々って言ってくる。。。

#グーグルセンセイに聞いてみた!

さすがにエックスサーバー!seo 対策しかっりやっているでしょうけど、表示ページのほとんどが xserver 本家ですが、調べたいものと関係ない!
役に立ったページを貼ります。

# 利用可能なPHPのバージョンを調べる
$ find /opt/php-*/bin -type f -name 'php'

# PHPのシンボリックリンクを作成する
$ mkdir $HOME/bin
$ ln -s /opt/php-7.2.6/bin/php $HOME/bin/php

# パスを通す
# 変更前 PATH=$PATH:$HOME/bin
# 変更後 PATH=$HOME/bin:$PATH
$ ln -s /opt/php-7.2.6/bin/php $HOME/opt/bin/

# .bashrc バックアップ
$ cp ~/.bashrc ~/.bashrc.bk

# .bashrc 編集
# 最終行に以下を追加
# export PATH=$HOME/bin:$PATH
$ vi ~/.bashrc

# 変更内容反映
$ source ~/.bashrc

# バージョン確認
$ php -v

bin ディレクトリが存在する場合 mkdir エラー

$ mkdir $HOME/bin
mkdir: ディレクトリ `/home/xxx/bin' を作成できません: ファイルが存在します

ファイルがすでに存在する時の ln シンボリックリンクエラー

$ ln -s /opt/php-7.1.4/bin/php $HOME/bin/php
ln: シンボリックリンク `/home/gini/bin/php' の作成に失敗しました: ファイルが存在します

参考にさせていただいたページ

エックスサーバーの ssh で任意のバージョンの php を使えるようにする方法(opens new window)

SSH の PHP のバージョンを変更(opens new window)

ありがとうございました!

2020-07-28
  • server