SentOS7のPHP7.4インストール/ServersMan@VPS

ServersMan@VPS
この記事は約7分で読めます。

備忘録_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が自動でインストされる、
    念のため確かめておいた方が無難だろう事を伝えておく。充分警戒せよ。

[図_1]

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からの画像