PHP7よりPHP8へ移行できない

TOP Forums インストール(Installing KUSANAGI) PHP7よりPHP8へ移行できない

PHP7よりPHP8へ移行できない

Tagged: 

Viewing 8 reply threads
  • Author
    Posts
    • #1152
      momo
      Participant

        現在conoha VPS kusanagiにてphp7で稼働しております。
        コンソールよりコマンドkusanagi php8でphp8に切替えると以下のようなエラーになり、
        wordpressブラウザでも「重大なエラー…」と不能になります。

        ++++++++++++++++++++++++++++++++++
        kusanagi php8
        use php8.
        Remove symlink /etc/systemd/system/multi-user.target.wants/php7-fpm.service.
        Created symlink from /etc/systemd/system/multi-user.target.wants/php8-fpm/service to /usr/lib/systemd/system/php8-fpm.service.
        NOTICE: Please run the following comand to change the command path in the current shell/

        $ hash -r

        Done.
        ++++++++++++++++++++++++++++++++++++++
        各バージョンは以下になります。
        kusanagi 8.7.9-1
        MariaDB 10.5.18
        nginx 1.23.3
        wordpress 6.1.1
        +++++++++++++++++++++++++++
        因みに
        ※/etc/systemd/system/multi-user.target.wants/ には
        php7-fpm.serviceファイルはありますが、php8-fpm.serviceファイルはありません。
        ※/run/php8-fpm/ フォルダはありますが、中身は空になります。
        (/run/php7-fpm/ フォルダには php7-fpm.pid があります。)
        ※wp-config.php
        define(‘FS_METHOD’, ‘ftpext’); と記載済みになります。

        どなたかアドバイスをよろしくお願いします。

      • #1154
        ichiru
        Participant

          自分はkusanagiを使用していないので詳しいことはわかりませんが、
          ps aux |grep php
          というコマンドを打ってphp7.4が起動している場合は
          systemctl stop php7-fpm
          systemctl disable php7-fpm
          を打ってください。
          再度kusanagi php8を実行すればいけると思います。
          もしいけない場合は
          systemctl status php8-fpm
          を打ちphp8のステータスを確認してください。
          ステータスのほうに起動しないエラーが表示されると思います。

          • This reply was modified 1 year, 3 months ago by ichiru.
        • #1156
          cloudy
          Participant

            momo さん、こんにちは。

            トップページにも書かれている通り kusanagi status の結果をいただけませんか?

            > コンソールよりコマンドkusanagi php8でphp8に切替えると以下のようなエラーになり、

            とかかれていますが、私が見る限りエラーは特に見当たらないようです。
            貼り付けてある内容は、PHP8に正常に切り替わったときに表示される内容です。

            > wordpressブラウザでも「重大なエラー…」と不能になります。

            WordPress 側のテーマやプラグインの一部が PHP8 に対応できていない可能性ではないのでしょうか?
            いずれにしても問題の切り分けができないので、まず kusanagi status の情報を教えて下さい。

          • #1157
            momo
            Participant

              ps aux |grep php
              systemctl stop php7-fpm
              systemctl disable php7-fpm
              systemctl status php8-fpm
              その他 restart kusanagi
              上記アドバイスいただいたコマンドを試してみましたが、
              コンソール上ではエラー無くphp8として起動しているようです。
              が、やはりブラウザで閲覧してみると「wordpress…重大エラー….」となり不能となってしまいます。

              conohaではコンソール画面のコピペが出来ません。

              kusanagi status
              KUSANAGI Version8.7.9-1
              conoha
              *** (active) nginx ***
              nginx.service -The NGINX HTTP and reverse proxy server
              Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled;vender preset:disabled)
              Active: active (running) since …..
              *** (active) php7-fpm ***
              php7-fpm.service -The PHP FastCGI Process Manager
              Loaded: loaded (/usr/lib/systemd/system/php7-fpm.service; enabled;vender preset:disabled)
              Active: active (running) since …..
              *** (active) MariaDB ***
              mariadb.service – MariaDB 10.5.18 database server
              Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled;vender preset:disabled)
              Active: active (running) since …..
              *** ruby ***
              KUSANAGI Ruby is not installed yet
              *** add-on ***
              *** Cache Status ***
              bcache on
              fcache on
              *** WAF ***
              off
              *** SELinux ***
              off (permanent)

            • #1158
              ichiru
              Participant

                WordPressのエラーだと思うので
                wp-contentディレクトリにある
                pluginsとthemasを削除してみてください。
                削除コマンド例
                rm -rm /var/www/html/plugins
                rm -rm /var/www/html/themas
                /var/www/htmlは自分のディレクトリに変更してください。
                削除すると復活できないので気おつけてください。
                これでもエラーが発生する場合は
                php.iniから
                display_errors = Off
                から
                display_errors = On
                に変更するか
                wp-config.phpから
                define( ‘WP_DEBUG’, false );
                から
                define( ‘WP_DEBUG’, true );
                に変更してください。
                ページを開くとエラーが表示されるのでそれを教えて下さい。

              • #1159
                cloudy
                Participant

                  momo さん、こんにちは。

                  頂いた内容から、PHP7のままのようです。
                  以下、PHP8に切り替える例を書きます。

                  1. PHP7であることの確認

                  kusanagi status 実行結果の一部抜粋します。

                  *** (active) php7-fpm ***
                  ● php7-fpm.service – The PHP FastCGI Process Manager
                  Loaded: loaded (/usr/lib/systemd/system/php7-fpm.service; enabled; vendor preset: disabled)
                  Active: active (running) since Mon 2023-01-23 09:37:03 JST; 44min ago

                  php7-fpm なので PHP7。
                  php -v 実行結果。

                  PHP 7.4.33 (cli) (built: Nov 7 2022 01:42:01) ( NTS )
                  Copyright (c) The PHP Group
                  Zend Engine v3.4.0, Copyright (c) Zend Technologies
                  with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies

                  PHP 7.4.33 なので PHP7。

                  2. PHP8 切り替え

                  kusanagi php8
                  hash -r
                  kusanagi restart

                  以下、実際に作業した記録です。

                  [root@kusanagi83 ~]# kusanagi php8
                  use php8.
                  Removed symlink /etc/systemd/system/multi-user.target.wants/php7-fpm.service.
                  Created symlink from /etc/systemd/system/multi-user.target.wants/php8-fpm.service to /usr/lib/systemd/system/php8-fpm.service.
                  NOTICE: Please run the following command to change the php command path in the current shell.

                  $ hash -r

                  Done.
                  [root@kusanagi83 ~]# hash -r
                  [root@kusanagi83 ~]# kusanagi restart
                  use nginx
                  nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
                  nginx: configuration file /etc/nginx/nginx.conf test is successful
                  use php8.
                  Done.

                  3. PHP8 に切り替わっているか確認

                  kusanagi status 実行結果の一部抜粋します。

                  *** (active) php8-fpm ***
                  ● php8-fpm.service – The PHP FastCGI Process Manager
                  Loaded: loaded (/usr/lib/systemd/system/php8-fpm.service; enabled; vendor preset: disabled)
                  Active: active (running) since Mon 2023-01-23 10:22:59 JST; 21s ago

                  php8-fpm なので PHP8。
                  php -v 実行結果。

                  PHP 8.0.27 (cli) (built: Jan 6 2023 08:51:20) ( NTS )
                  Copyright (c) The PHP Group
                  Zend Engine v4.0.27, Copyright (c) Zend Technologies
                  with Zend OPcache v8.0.27, Copyright (c), by Zend Technologies

                  PHP 8.0.27 なので PHP8。

                  この手順で PHP8 に切り替わっていることをまず確認してください。
                  PHP8 に切り替わっていることが確認できれば、当初の PHP8 に切り替わらない問題は解決できたと思います。
                  ここより先、WordPress が表示できなくなった場合はプラグインかテーマがPHP8に対応できていないことという別の問題になります。
                  これは KUSANAGI の範疇ではないので、WordPress ユーザー会で質問してください。

                  このあと補足を書きますが、ichiru さんの内容にある削除コマンドでテーマやプラグインの削除は大変危険です。その作業はしないでください。

                • #1160
                  cloudy
                  Participant

                    momo さん、補足です。

                    ichiru さんの対応方法に補足を入れます。

                    pluginsとthemasを削除してみてください。
                    削除コマンド例
                    rm -rm /var/www/html/plugins
                    rm -rm /var/www/html/themas
                    /var/www/htmlは自分のディレクトリに変更してください。
                    削除すると復活できないので気おつけてください。

                    とありますが、これは大変危険です。削除はしないでください。
                    質問内容を見る限り、初心者とお見受けします。削除した場合、復元は困難になるでしょう。

                    WordPress で問題が発生した場合、多くはプラグインもしくはテーマが原因です。
                    この解決方法として、テーマやプラグインを一時的にオフにして確認する手法がよく取られます。
                    プラグインを例に話します。

                    通常は管理画面からオフにするのですが、管理画面にログインできない場合にプラグインのディレクトリから強制的に取り除く手法がよく用いられます。
                    このとき、プラグインはディレクトリ名を見ているので、削除ではなくリネームすれば一時的にプラグインをオフにすることができます。
                    すべてのプラグインのディレクトリを一時的にリネームし、WordPress がエラーを起こさなくなればプラグインが原因です。
                    一つずつプラグインのリネームを元の名前に戻し、管理画面から再度有効にして、WordPress でエラーが出ないか確認していきます。
                    エラーが出たら、最後に有効にしたプラグインが根本原因です。

                    このような質問は、KUSANAGI ユーザー会の範疇を超えておりますので、WordPress ユーザーフォーラムでお聞きになると良いでしょう。

                    アクセスとログイン画面が表示されない
                    https://ja.wordpress.org/support/topic/%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%A8%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E7%94%BB%E9%9D%A2%E3%81%8C%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84/

                    WordPressのプラグインを無効にする
                    https://oversleptabit.com/archives/5514

                    テーマについても同様にディレクトリのリネームが望ましいです。
                    削除すると復元はできないものと思ってください。

                  • #1161
                    momo
                    Participant

                      聞きたいのですが、「プラグインやテーマがPHP8に対応できていない」と「重大なエラー…」などとして
                      すべてが全くの不能になるのものなのでしょうか?
                      希望としては、php8に切替後、どの部分が影響を受けているのか否か?を確認しながら個々の箇所を修正したいと考えておりました。ので、今回のように全くの不能になってしまうと修正のしようがないもので。

                    • #1162
                      cloudy
                      Participant

                        momo さん、こんにちは。

                        > 聞きたいのですが、「プラグインやテーマがPHP8に対応できていない」と「重大なエラー…」などとして
                        すべてが全くの不能になるのものなのでしょうか?

                        なります。
                        検索するだけでこのような記事がすぐ見つかると思います。

                        WordPressのPHP8への対応状況。古いプラグインを使っている場合には要注意

                        WordPressのPHP8への対応状況。古いプラグインを使っている場合には要注意

                        > 希望としては、php8に切替後、どの部分が影響を受けているのか否か?を確認しながら個々の箇所を修正したいと考えておりました。ので、今回のように全くの不能になってしまうと修正のしようがないもので。

                        エラーの内容はログに記録されていますので、まずはログを確認してみてください。
                        kusanagi status の結果から Nginx を使っているようなので、下記のディレクトにあるログを確認するとエラーが記録されているはずです。

                        http:// アクセスのエラーログ
                        /home/kusanagi/(プロファイル名)/log/nginx/error.log

                        https:// (ssl) アクセスのエラーログ
                        /home/kusanagi/(プロファイル名)/log/nginx/ssl_error.log

                        前回もお伝えしましたが、この質問は KUSANAGI の問題ではなく WordPress の問題です。
                        KUSANAGI ユーザー会の範疇を超えておりますので、WordPress ユーザーフォーラムでお聞きになると良いでしょう。
                        そちらのほうが良いアドバイスが得られると思います。

                    Viewing 8 reply threads
                    • You must be logged in to reply to this topic.

                    Next article

                    フォーラムについて