本サーバのPHPを最新版(7.3)に更新した。先日書いた手順で行った。いくつかトラブルがあり、一時(php-apcuのインストールがうまくできなかった時)は諦めモードになったが、何とか解決できた。約3時間掛かった。以下に、作業中に起こった問題と概要を示す。

  • コマンド(add-apt-repository)がない。
    • 最初は手で最新PHPのPPA(リポジトリ)を追加したのだが、pgpの鍵も入れないと警告が出るので、パッケージsoftware-properties-commonをインストールし、上記コマンドを追加して改めてリポジトリを追加した。
  • php-apcu(とphp-common)が古いものしかインストールできない。
    • なぜか、他と同様に"php7.3-apcu"のように指定してもインストールできなかった。
    • いろいろ試しても駄目だったので、以下のように、バージョンを指定してインストールした。

sudo aptitude install \
php-apcu=5.1.17+4.0.11-1+ubuntu16.04.1+deb.sury.org+1 \
php-common=2:69+ubuntu16.04.1+deb.sury.org+1

    • その後、aptの追加設定(/etc/apt/preferences.d/ondrej-php.pref)に上記モジュールを有効にする設定が漏れていることに気付いたので、以下を追加した。

Package: php-*
Pin: release o=LP-PPA-ondrej-php
Pin-Priority: 500 # 注: 優先度をデフォルト(500)以上にしないと、古いものがインストールされてしまう。

  • ブログアクセスでHTTPエラー500
    • 最新のphp-fpmの設定ファイル(php-fpm.conf)のコピーを忘れていたために、php-fpmの設定が今までと異なっていて、webサーバとphp-fpm間のソケット(通信路)がない(正確には食い違っている)ためにエラーになっていた。
    • 元の設定ファイルをコピーした。
  • 自作プログラム(古い投稿の非表示プログラム)が山ほどの警告を出す。
    • 昔作ったプログラムで、WordPressの関数add_action()の第2引数の指定方法が間違っていたので修正した。
    • PHPのバージョンが新しくなって厳しくなったのか、ずっと気付かずにいたのか・・・
  • systemctlコマンドでphp7.0-fpmのサービスを無効にできない。
    • 先にPHP 7.0をアンインストールしたため、そのsystemctl用の設定もなくなったためと思われる。
    • 手(ちょっとしたスクリプトをコマンドラインにコピペ)で、/etc/rc?.d/S*php7.0-fpmの"S"を"K"に変更した。

php-apcuの問題は、デスクトップPCで試した時に確認し忘れたので、今まで気付かなかった。

主要な動作確認は問題なく(修正もした)、残件としては、今回追加した最新のPHPのパッケージが自動更新されるか確認する必要がある程度だ。

今朝、ログのローテート処理がエラーになっていた。PHP 7.3をインストールするとphp-fpmのログのローテート処理も追加されるのだが、それと元の処理が競合していた。php-fpmのプログラム名にバージョン番号が付くため、PHPのバージョンに関係なくphp-fpmのローテート後の処理を実行させるのが容易でなかったが、なんとか回避した(phpでプログラム名を出して、それを使うようにした)。 (2/12 5:37)

 

PS. 他の重要なプログラムが駄目になったりサポート期間切れにならなければ、OSは2021年頭までサポートされるので、あと1年以上は「安泰」で、来年中にOSをバージョンアップすればいい。デスクトップPCも同様だが、OSが古いために使いたいアプリが動かない問題が出るかも知れないから、少し早くなるかも知れない。

  •   0
  •   1

コメントを書く

名前    

メール 

URL