備忘録_13 / ServersMan@VPS_06
ServersMan@VPS_Entryプラン_SentOS7ブログセット環境に於いて、PHP5.4よりPHP7.4にupdateした時の手記をここに書き記す。わたしは傍観者でいるつもりはない。わたしもまたspaghetti_codeに立ち向かう一人の人間なのだ。もしわたしが倒れても残した手記がきっと役に立つ。これも誰かの糧になれるのなら僥倖であろう。
PHP7.4 updateは以下の手順で行った。
⚠️ Please do this at your own risk.
バックアップの後、先刻の模擬戦通り、上から順に「Copy & Paste」の入力をひたすら繰り返し行った。
序盤からまずまず予想通りの展開で手順5にして、やはり"System Error"が返された。
――― が、しかし敵のこの攻撃パターンは予め想定されていたものであり、即座にBクイックに移行する、
その間、手筈通り別動隊がThe Master Throneに向う ――― 。
1. | yum -y install epel-release |
2. | rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm |
3. | vi /etc/yum.repos.d/epel.repo |
4. | yum -y remove php-* |
5. | vim /etc/yum.conf |
6. | yum -y install –enablerepo=remi,remi-php74 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-mysql |
7. | rpm -qa | grep php |
8. | vi /etc/php.ini |
9. | systemctl restart httpd.service |
⚠️ Operation Note.
1.EPELリポジトリ
・ EPEL(Extra Packages for Enterprise Linux)は、エンタープライズ用の拡張パッケージ。
・ FedoraProjectの有志がビルドしたサードパーティ製のリポジトリ。
・ CentOSの公式リポジトリは、パッケージ数が少なく、最新版が用意されていないことなどザラにある。
よってこれら外部リポジトリを使い必要なパッケージを追加するのが一般的な使い方。
・ repository / リポジトリ 〔LV10:英検1級〕 ― 貯蔵所、倉庫、納骨堂、埋葬所、〔知識などの〕宝庫。
2.Remiリポジトリ
・ remiとは、RemiCollet氏(仏)がメンテナンスされているリポジトリである。
・ YumはRedHatのパッケージマネージャーで、更新/インストール/削除を実行しているパッケージで
依存関係の自動解決を行ってくれる。そのときyum
3.epel.repoの編集
・ 実はepel.repoは修正しないと動作しない。
・ この原因は、先のネットワーク関連の修正が行われた際の二次的な不具合によるものらしい。
・ よって以下2行の注釈#を付け替えることとした。
修正前 | 修正後 | |
1 | #baseurl=http://download~ | baseurl=http://download~ |
2 | mirrorlist=https://mirrors~ | #mirrorlist=https://mirrors~ |
4.PHP5.4アンインストール
・ PHP7を入れる前に既存のPHPを消しておく。updateと言うよりは完全な入れ替えに近い。
・ 環境によっては消さずとも上書きされるらしいが、ServersManでは完全に消さないとPHP5.4が自動選択される。
つまり、我らServersManユーザーではアンインストールの一択しか存在し得ない。
5.yum.confの編集
・ yum を使用して php-devel をインストした際に例によってServersman特有の現象、
"Error: systemd conflicts with initscripts-9.49.17-1.el7_0.1.x86_64"が発生した。
・ 同社の持つHV仮想技術と相性問題らしく、安価に提供する代償として自由度が比較的低い。
・ 緊急措置として、以後サポートの対象外となるが、exclude文はコメントアウトする事にした。
修正前 | 修正後 | |
1 | exclude=initscripts* | #exclude=initscripts* |
6.PHP7.4インストール
・ PHP7系を導入する。リポジトリが正常に追加されていたらyumで簡単に入れることが出来るだろう。
と、暗にその程度のイージーさで済むなら、この世界に苦労するマはいない … … 。
それはUnix系プログラムの多くが、広範な外部依存性を有す傾向にあるからだ。
bugfix・update等の修正が加わる度にそれを基に、更なる拡張が"カスケード的"に行われている。
いつの時点からかphp-develもkernelのバージョンアップを含むアップデートに差し換わっていたということだ。
・ 故にこの手記も、3か月後・1年後に糞ほどの役にも立たなくなるだろう。私にすら告げずに。
7.PHPバージョンの確認
・ 特に必要は無い。
ただ、repo・remi等の外部リポジトリを指定しない限り、デフォルトはbaseでPHP5.4が自動でインストされる、
念のため確かめておいた方が無難だろう事を伝えておく。充分警戒せよ。
8.php.iniの編集
・ PHPの設定ファイルを編集する。
・ 変更箇所はtimezoneとmbstring周りの設定のみ。
修正前 | 修正後 | |
1. | ;date.timezone = | date.timezone = “Asia/Tokyo” |
2. | post_max_size = 8M | post_max_size = 120M |
3. | upload_max_filesize = 2M | upload_max_filesize = 100M |
4. | ;mbstring.language = Japanese | mbstring.language = Japanese |
5. | ;mbstring.internal_encoding = | mbstring.internal_encoding = UTF-8 |
6. | ;mbstring.http_input = | mbstring.http_input = UTF-8 |
7. | ;mbstring.http_output = | mbstring.http_output = pass |
8. | ;mbstring.encoding_translation = Off | mbstring.encoding_translation = On |
9. | ;mbstring.detect_order = auto | mbstring.detect_order = auto |
10. | ;mbstring.substitute_charset = none | mbstring.substitute_charset = none |
Viエディタのコマンド
x | 1文字消去 | i | 現在のカーソル位置に文字を挿入する |
A | 現在のカーソル行の最後に文字を追加する | o | 現在のカーソル行の次の行に行を挿入する |
:q! | ファイルを破棄してviを閉じる | :wq | ファイルを上書してviをを閉じる |
9.httpd再起動
・ ウホッ!httpdを再起動する。
・ そうするも、きょうのオデなでかお尻no穴が…ムズムズ落ち着かない。
・ もともとオデ、アタマ無いのにムリに使いすぎたようでボーっとしている。
・ お、おにいちゃん…おかえり…た、大漁ダッタ?い、イサキは?
・"initscripts-9.49.17-1.el7_0.1.x86_64"で大漁の喧嘩が起こる。
・ コノハ、さくら、インディゴ、男たちは全員別のイサキに乗り換えようと殺気立っている。
・ あゝ、bug大漁さ。メイク ビルド デプロイ イサキぃぃぃい!! heheeefueeehogematurieee 。
・ かゆ うま
EyeCatch画像:Sammy-WilliamsによるPixabayからの画像