この記事では、ThinkPHP3.2.3 を php5 から php7 にアップグレードする方法を紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。
まず第一に、ThinkPHP3.2.3 は php7 をサポートしていますか? もちろんサポートします。
Windows では、以前のプロジェクトは Apache2.4.17 php5.x バージョンでデプロイされました。お客様のネットワーク セキュリティ スキャンで、Apache と php の高リスクの脆弱性を含む多くの脆弱性が何百回も見つかったためです。 . 緊急に修理が必要な場合、修理しない場合はサイト閉鎖のリスクがあります。
そこでソフトウェア供給元に問い合わせたところ、アップグレードに協力してくれると約束されましたが、最終的にはアップグレードできず、ThinkPHP3.2.3 は php7 にはデプロイできないとの返事でした。
そこで、3~4 日ほど自分の力を頼りに手探りして、ようやくアップグレードに成功したので、大まかな手順を紹介したいと思います。
1. Apache をアップグレードします。ダウンロード アドレス http://httpd.apache.org/download.cgi、ダウンロードされたバージョンは 2.4.33です。
最も重要なのは、次に示す構成ファイルです。以下 :
apache 読み込み php サポート
PHPIniDir d:/GPS-LOCK/php/php.ini
LoadModule php7_module D: / GPS-LOCK/php/php7apache2_4.dll
このステップで多くの問題が発生しました。PHPIniDir パスが有効になっていると、Apache を起動できません。最後に、php.ini ファイルが php_ptheads を参照していることがわかりました。 dll マルチスレッド。何度も試行した結果、問題は解決されました。
2. php のアップグレード、ダウンロード アドレス: https://windows.php.net/download/ ここでダウンロードされるのは 7.2.26 です、
次に、アップグレード時に予想される問題をまとめます。 php7
1. ここでは、php7 に対応するコンパイル済み vc クラス ライブラリ バージョン、vc_redist.x64.exe をインストールする必要があります。インストールは vc15
2、SQL サーバー データベース サポート
これは、php7 がデフォルトで SQL サーバー関連の DLL を読み込まないためです
3. SQL Server 用の Microsoft Drivers for PHP https://www.SQL Server 用の Microsoft Drivers for PHP をダウンロードする必要があります。 microsoft.com/en-us /download/details.aspx?id=20098、バージョン 7.2 をダウンロードしました。
場所ファイルを次のように変更します
4 .php.ini ファイルを php7 に追加し、ext の php_.dll を省略して上記のように設定します。現在、解凍したファイルを php\ext ディレクトリにコピーする必要があります
3. システムはできると思いました。 php7 では正常に実行されますが、プロジェクトはマルチスレッドを使用しており、php は pthreads をサポートする必要があり、現在クラッシュしそうになっています。php.ini ファイルに extension=pthreads を追加すると、Apache は再び起動できなくなります。 ptheads は cli モードで実行する必要があることが判明しました。ptheads のダウンロード アドレスは https://windows.php.net/downloads/pecl/releases/pthreads/
ダウンロード パッケージを解凍します
1. pthreadVC2 を置きます。dll ファイルは php ルート ディレクトリに配置されます。
2. php_pthreads.dll を php\ext ディレクトリにコピーします。
Apache を再度起動して、それができないことを確認します。多くの情報を検索した結果、ptheads は cli モードで実行する必要があることがわかり、私の解決策は 2 つの php.ini 設定ファイルを作成し、1 つはサイトで php.ini を使用し、もう 1 つは php-cli.ini を使用することです。 ptheads が使用するファイルです。ファイルの内容は同じです。この時点で、アップグレードは最終的に完了します。
推奨学習: php ビデオ チュートリアル
以上がThinkPHP3.2.3 を php5 から php7 にアップグレードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。