AWS CentOS7 にPHP最新版をインストールする

PHPのバージョン最新版をAWSのCentOS7にインストールしようとして試行錯誤した顛末。

お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。と表示された対応 | Qiita

そもそもremiリポジトリがなく最初にインストールするところから始めました。

# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

鍵がない!(NOKEY)と怒られたので、wget でとりに行きました。

# wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

# rpm -Uvh remi-release-7.rpm

ここでエラー: 依存性の欠如:
epel-release = 7 は remi-release-7.7-2.el7.remi.noarch に必要とされています

ん・・・epel が必要らしいことがbash のlocale をJPにして気付きました。

# yum -y install epel-release

こんなこともしばらく触れないうちに忘れてしまうものなんですね・・・で表題の件。PHPをモジュールごとまるっとインストールします。

PHP バージョン情報 | OpenStandia™ (オープンスタンディア) 最新版は7.4.7

# yum install --enablerepo=remi,remi-php74 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-mysql

# php -v
PHP 7.4.7 (cli) (built: Jun 9 2020 10:57:17) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

無事、Wordpress を初期設定できました。ありがとうございました。

CentOS6.10 GUI起動、完了です。

yum update するとグラフィックボードのドライバーが書き換わりGUI 起動ができなかったのですが、ふと他の方のブログを検索した結果、Radeon のfglrx-uninstall.sh を使えばドライバーを上書きせずにアンインストールすることができると判明。

【centos6】Radeonドライバー再設定で嵌ってしまった!

早速、試したところドライバーのアンインストール、yum によるカーネルのバージョンアップ、ドライバーの再インストールに成功した結果、件の課題をクリアすることができました。

まず [F2] 押下からBIOSを起動、 Onboad のグラフィックボードを有効にして再起動、シングルユーザーモードに入って/boot/grub/grub.conf のカーネルオプション行末の、nouveau.modeset=0 を削除、init 3 でランレベル3でroot でCUI ログインします。(ディスプレイケーブルはオンボードのVGA端子に接続する)

/etc/yum.conf でカーネルアップデートをexclude しているときは行頭を# コメントアウトして yum update 、すべての更新を掛けます。

/usr/share/ati/ ディレクトリに移動してドライバー削除スクリプト、fglrx-uninstall.sh を実行後、/usr/share/ati/ をディレクトリごと削除、再起動。

ふたたびシングルユーザーモードでgrub.conf のnouveau.modeset=0 をカーネルオプションの行末に加えて再起動。

[F2] BIOS で外付けグラフィックボード[External Video] を有効にして(ディスプレイケーブルをグラフィックボードのVGA端子に接続する)

シングルユーザーモードからinit 3 でCUI ログイン。

あらかじめユーザーディレクトリにコピーしておいた、AMD-Catalyst-15.9-Linux-installer-15.201.1151-x86.x86_64.run を実行、エラーが出たら必要なパッケージを別のPCからでもダウンロード、フラッシュドライブにコピーしておく。(ここはトライアンドエラーもやむなしです。)

エラーログから必要なドライバーに当たりをつけやっと、本体のドライバーのインストールに成功しました。最後に#aticonfig –initial して再起動するとカーネルのアップデートされたCentOS6.10 でXウィンドウが起動してGUI 表示できました。

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

ランレベル

サーバー機でひさびさにyum update を掛けてGUIログインしようとしたら画面が固まりました。

シングルユーザーモードから

# telinit 3

でCUIログインしようとするとパスワードではねられてログインできない、ふぐっ、ちりりぃ。
察するに、yum でグラフィックボードのドライバーが更新されて不整合を起こしているんだと推理してます。
再びシングルユーザーモードでパスワードリセットして、アカウントのロックアウトポリシーを解除。root でCUIログイン成功。

# pam_tally2 -u root --reset

どうしても、telinit 5 や、startx ができないのでyum で不整合を起こしたドライバーのエラーログ何かないかと探したのですが原因不明。強制的にドライバーを再インストールしたところ画面表示が壊れました。もうダメポ。バックアップから復元。yum update は諦めました。復旧に際し、6時間にわたり通信障害が起きたことをお詫び申し上げます。

yum コマンド

Linux を管理、メンテナンス、機能の追加をするコマンド、yum のまとめです。

アップデート。一番お世話になるコマンドです。

# yum update

自前でビルドしたwebサーバーがあるときなど、アップデートしたくないパッケージは、/etc/yum.conf にexclude=httpd*などとすると良いでしょう。

インストールされているか確認

# yum list installed | grep php

パッケージをインストール or 削除

# yum install or remove [packages]

パイプを使ってまとめてインストール、削除できます。| grep [packages]

リポジトリからインストール

# yum --enablerepo=epel install [packages]

package が複数ある時は併記するとまとめてインストールできます。

インストール可能なパッケージを探す

# yum search [packages]

* (ワイルドカード)を使って当たりをつけると探しやすいです。

ライブラリを提供しているパッケージを確認

# yum whatprovides libX11.so.6

依存関係にあるライブラリを引きたいときに便利です。

利用可能なパッケージのグループ一覧を表示

 # yum grouplist [group]

パッケージをグループでインストール

# yum groupinstall [group]

OSの初期インストールで選択しなかったグループもあとからまとめてインストールできます。

以上、簡単なyum コマンドのまとめでした。
最後までお読みいただき、ありがとうございました。

詳しい説明は、man で確認できます。

# man yum

「q」とタイプすると説明から抜けられます。

いつの間にかCentOS7.4

VirtualBox のCentOS7 でyum updateすると以下のエラー

Another app is currently holding the yum lock; waiting for it to exit...

yumのlockが解除されなくなった場合の対処方法

# rm -f /var/run/yum.pid

してロックファイルを削除すると良いのだそう。更新1690件、溜まってんな~。

カーネルアップデートされてCentOS7.4 にヴァージョンアップしました。

# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

 

追記)カスペルスキーインターネットセキュリティーも2018にアップデートしていました。

yum のエラー

ふと、yum で update を掛けると

"Found 4 pre-existing rpmdb problem(s), 'yum check' output follows:
~httpd-2.2.15-54.el6.centos.x86_64.rpm
~httpd-tools-2.2.15-54.el6.centos.x86_64.rpm

みたいな(正確なエラーログ取ってなかったんで。)のが出たので試行錯誤。

エラーの出てるrpm ファイルをスタンドアローンでダウンロードして1)データベース情報を削除。2)確認。3)dbにhttpdを追加。4)dbの再構築。したところ、5)yum update が通りました。

# rpm -e --nodeps --allmatches --justdb httpd
# rpm -q httpd
# rpm -ivh httpd-2.2.15-54.el6.centos.x86_64.rpm
# rpm --rebuilddb
# yum update

httpdのエラー解決後に今度は、php で下記のエラーが出るので

エラー: パッケージ: php-pecl-apcu-4.0.11-2.el6.remi.5.6.x86_64 (remi-php56)
             要求: php(zend-abi) = 20131226-64
            インストール: php-common-5.3.3-48.el6_8.x86_64 (@updates)
                php(zend-abi) = 20090626
            利用可能: php-common-5.3.3-47.el6.x86_64 (base)
                php(zend-abi) = 20090626
エラー: パッケージ: php-mysqlnd-5.6.30-2.el6.remi.x86_64 (remi-test)
             要求: php-pdo(x86-64) = 5.6.30-2.el6.remi
            インストール: php-pdo-5.3.3-48.el6_8.x86_64 (@updates)
                php-pdo(x86-64) = 5.3.3-48.el6_8
            利用可能: php-pdo-5.3.3-47.el6.x86_64 (base)
                php-pdo(x86-64) = 5.3.3-47.el6
エラー: パッケージ: php-pecl-apcu-4.0.11-2.el6.remi.5.6.x86_64 (remi-php56)
             要求: php(api) = 20131106-64
            インストール: php-common-5.3.3-48.el6_8.x86_64 (@updates)
                php(api) = 20090626
            利用可能: php-common-5.3.3-47.el6.x86_64 (base)
                php(api) = 20090626
 問題を回避するために --skip-broken を用いることができません
 これらを試行できます: rpm -Va --nofiles --nodigest

エラーの出るパッケージを削除してから

# yum remove php-common php-pdo
# yum update

update をかけると

 * remi-php55: mirror.smartmedia.net.id
 * remi-php56: mirror.smartmedia.net.id
 * remi-safe: mirror.smartmedia.net.id
 * remi-test: mirror.smartmedia.net.id
255 packages excluded due to repository priority protections

で止まるので /etc/yum/pluginconf.d/priorities.conf を

[main]

enabled = 0

して yum clean all 。再度、yum update。今度は上手く行きました。php入れ直し。

# yum --enablerepo=remi install php php-devel php-common php-cli php-gd php-ldap php-mbstring php-mysql php-odbc php-pdo php-pear php-pecl-apc php-pecl-memcache php-pgsql php-soap php-xml php-xmlrpc

更新、完了です。

[root@stuffy public_html]# yum --enablerepo=remi install php php-devel php-common php-cli php-gd php-ldap php-mbstring php-mysql php-odbc php-pdo php-pear php-pecl-apc php-pecl-memcache php-pgsql php-soap php-xml php-xmlrpc
読み込んだプラグイン:fastestmirror, refresh-packagekit, security
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
 * remi: mirror.smartmedia.net.id
 * remi-php55: mirror.smartmedia.net.id
 * remi-php56: mirror.smartmedia.net.id
 * remi-safe: mirror.smartmedia.net.id
 * remi-test: mirror.smartmedia.net.id
パッケージ php-5.6.30-2.el6.remi.x86_64 はインストール済みか最新バージョンです
パッケージ php-devel-5.6.30-2.el6.remi.x86_64 はインストール済みか最新バージョンです
パッケージ php-common-5.6.30-2.el6.remi.x86_64 はインストール済みか最新バージョンです
パッケージ php-cli-5.6.30-2.el6.remi.x86_64 はインストール済みか最新バージョンです
パッケージ php-mysql は php-mysqlnd によって不要になりました。代わりに php-mysqlnd-5.6.30-2.el6.remi.x86_64 のインストールを試みています。
パッケージ php-pecl-apc は php-pecl-apcu によって不要になりました。代わりに php-pecl-apcu-4.0.11-2.el6.remi.5.6.x86_64 のインストール を試みています。
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package php-gd.x86_64 0:5.6.30-2.el6.remi will be インストール
---> Package php-ldap.x86_64 0:5.6.30-2.el6.remi will be インストール
---> Package php-mbstring.x86_64 0:5.6.30-2.el6.remi will be インストール
---> Package php-mysqlnd.x86_64 0:5.6.30-2.el6.remi will be インストール
---> Package php-odbc.x86_64 0:5.6.30-2.el6.remi will be インストール
---> Package php-pdo.x86_64 0:5.6.30-2.el6.remi will be インストール
---> Package php-pear.noarch 1:1.10.1-9.el6.remi will be インストール
--> 依存性の処理をしています: php-posix のパッケージ: 1:php-pear-1.10.1-9.el6.remi.noarch
---> Package php-pecl-apcu.x86_64 0:4.0.11-2.el6.remi.5.6 will be インストール
---> Package php-pecl-memcache.x86_64 0:3.0.8-3.el6.remi.5.6 will be インストール
---> Package php-pgsql.x86_64 0:5.6.30-2.el6.remi will be インストール
---> Package php-soap.x86_64 0:5.6.30-2.el6.remi will be インストール
---> Package php-xml.x86_64 0:5.6.30-2.el6.remi will be インストール
---> Package php-xmlrpc.x86_64 0:5.6.30-2.el6.remi will be インストール
--> トランザクションの確認を実行しています。
---> Package php-process.x86_64 0:5.6.30-2.el6.remi will be インストール
--> 依存性解決を終了しました。
依存性を解決しました
======================================================================================================================================
 パッケージ                         アーキテクチャ          バージョン                              リポジトリー                 容量
======================================================================================================================================
インストールしています:
 php-gd                             x86_64                  5.6.30-2.el6.remi                       remi-test                    78 k
 php-ldap                           x86_64                  5.6.30-2.el6.remi                       remi-test                    61 k
 php-mbstring                       x86_64                  5.6.30-2.el6.remi                       remi-test                   969 k
 php-mysqlnd                        x86_64                  5.6.30-2.el6.remi                       remi-test                   277 k
 php-odbc                           x86_64                  5.6.30-2.el6.remi                       remi-test                    76 k
 php-pdo                            x86_64                  5.6.30-2.el6.remi                       remi-test                   119 k
 php-pear                           noarch                  1:1.10.1-9.el6.remi                     remi                        365 k
 php-pecl-apcu                      x86_64                  4.0.11-2.el6.remi.5.6                   remi-php56                   81 k
 php-pecl-memcache                  x86_64                  3.0.8-3.el6.remi.5.6                    remi-php56                  101 k
 php-pgsql                          x86_64                  5.6.30-2.el6.remi                       remi-test                   119 k
 php-soap                           x86_64                  5.6.30-2.el6.remi                       remi-test                   228 k
 php-xml                            x86_64                  5.6.30-2.el6.remi                       remi-test                   220 k
 php-xmlrpc                         x86_64                  5.6.30-2.el6.remi                       remi-test                    68 k
依存性関連でのインストールをします。:
 php-process                        x86_64                  5.6.30-2.el6.remi                       remi-test                    63 k
トランザクションの要約
======================================================================================================================================
インストール        14 パッケージ
総ダウンロード容量: 2.8 M
インストール済み容量: 9.4 M
これでいいですか? [y/N]y
パッケージをダウンロードしています:
(1/14): php-gd-5.6.30-2.el6.remi.x86_64.rpm                                                                    |  78 kB     00:00
(2/14): php-ldap-5.6.30-2.el6.remi.x86_64.rpm                                                                  |  61 kB     00:01
(3/14): php-mbstring-5.6.30-2.el6.remi.x86_64.rpm                                                              | 969 kB     00:09
(4/14): php-mysqlnd-5.6.30-2.el6.remi.x86_64.rpm                                                               | 277 kB     00:03
(5/14): php-odbc-5.6.30-2.el6.remi.x86_64.rpm                                                                  |  76 kB     00:00
(6/14): php-pdo-5.6.30-2.el6.remi.x86_64.rpm                                                                   | 119 kB     00:01
(7/14): php-pear-1.10.1-9.el6.remi.noarch.rpm                                                                  | 365 kB     00:04
(8/14): php-pecl-apcu-4.0.11-2.el6.remi.5.6.x86_64.rpm                                                         |  81 kB     00:02
(9/14): php-pecl-memcache-3.0.8-3.el6.remi.5.6.x86_64.rpm                                                      | 101 kB     00:01
(10/14): php-pgsql-5.6.30-2.el6.remi.x86_64.rpm                                                                | 119 kB     00:01
(11/14): php-process-5.6.30-2.el6.remi.x86_64.rpm                                                              |  63 kB     00:00
(12/14): php-soap-5.6.30-2.el6.remi.x86_64.rpm                                                                 | 228 kB     00:02
(13/14): php-xml-5.6.30-2.el6.remi.x86_64.rpm                                                                  | 220 kB     00:02
(14/14): php-xmlrpc-5.6.30-2.el6.remi.x86_64.rpm                                                               |  68 kB     00:00
--------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                   81 kB/s | 2.8 MB     00:34
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
  インストールしています  : php-pdo-5.6.30-2.el6.remi.x86_64                                                                     1/14
  インストールしています  : php-xml-5.6.30-2.el6.remi.x86_64                                                                     2/14
  インストールしています  : php-process-5.6.30-2.el6.remi.x86_64                                                                 3/14
  インストールしています  : 1:php-pear-1.10.1-9.el6.remi.noarch                                                                  4/14
  インストールしています  : php-pecl-memcache-3.0.8-3.el6.remi.5.6.x86_64                                                        5/14
  インストールしています  : php-xmlrpc-5.6.30-2.el6.remi.x86_64                                                                  6/14
  インストールしています  : php-odbc-5.6.30-2.el6.remi.x86_64                                                                    7/14
  インストールしています  : php-pgsql-5.6.30-2.el6.remi.x86_64                                                                   8/14
  インストールしています  : php-mysqlnd-5.6.30-2.el6.remi.x86_64                                                                 9/14
  インストールしています  : php-soap-5.6.30-2.el6.remi.x86_64                                                                   10/14
  インストールしています  : php-gd-5.6.30-2.el6.remi.x86_64                                                                     11/14
  インストールしています  : php-ldap-5.6.30-2.el6.remi.x86_64                                                                   12/14
  インストールしています  : php-pecl-apcu-4.0.11-2.el6.remi.5.6.x86_64                                                          13/14
  インストールしています  : php-mbstring-5.6.30-2.el6.remi.x86_64                                                               14/14
  Verifying               : php-mbstring-5.6.30-2.el6.remi.x86_64                                                                1/14
  Verifying               : php-pdo-5.6.30-2.el6.remi.x86_64                                                                     2/14
  Verifying               : php-xmlrpc-5.6.30-2.el6.remi.x86_64                                                                  3/14
  Verifying               : php-pecl-apcu-4.0.11-2.el6.remi.5.6.x86_64                                                           4/14
  Verifying               : php-odbc-5.6.30-2.el6.remi.x86_64                                                                    5/14
  Verifying               : php-pecl-memcache-3.0.8-3.el6.remi.5.6.x86_64                                                        6/14
  Verifying               : php-ldap-5.6.30-2.el6.remi.x86_64                                                                    7/14
  Verifying               : php-process-5.6.30-2.el6.remi.x86_64                                                                 8/14
  Verifying               : php-xml-5.6.30-2.el6.remi.x86_64                                                                     9/14
  Verifying               : 1:php-pear-1.10.1-9.el6.remi.noarch                                                                 10/14
  Verifying               : php-pgsql-5.6.30-2.el6.remi.x86_64                                                                  11/14
  Verifying               : php-gd-5.6.30-2.el6.remi.x86_64                                                                     12/14
  Verifying               : php-mysqlnd-5.6.30-2.el6.remi.x86_64                                                                13/14
  Verifying               : php-soap-5.6.30-2.el6.remi.x86_64                                                                   14/14
インストール:
  php-gd.x86_64 0:5.6.30-2.el6.remi      php-ldap.x86_64 0:5.6.30-2.el6.remi          php-mbstring.x86_64 0:5.6.30-2.el6.remi
  php-mysqlnd.x86_64 0:5.6.30-2.el6.remi php-odbc.x86_64 0:5.6.30-2.el6.remi          php-pdo.x86_64 0:5.6.30-2.el6.remi
  php-pear.noarch 1:1.10.1-9.el6.remi    php-pecl-apcu.x86_64 0:4.0.11-2.el6.remi.5.6 php-pecl-memcache.x86_64 0:3.0.8-3.el6.remi.5.6
  php-pgsql.x86_64 0:5.6.30-2.el6.remi   php-soap.x86_64 0:5.6.30-2.el6.remi          php-xml.x86_64 0:5.6.30-2.el6.remi
  php-xmlrpc.x86_64 0:5.6.30-2.el6.remi
依存性関連をインストールしました:
  php-process.x86_64 0:5.6.30-2.el6.remi
完了しました!

参考URL:

https://cloudpack.media/10567

http://qiita.com/masahirok_jp/items/40e685bbafd5f2463992