在一个XAMPP中切换和使用PHP版本(PHP8 ⇄ 7)
首先
为了在现有的XAMPP环境(PHP8)中使用PHP7,我们进行了调查并总结了方法。我们的想法是在现有的xampp中安装另一个版本的PHP,然后切换PHP版本并启动Apache。
希望我的文章对那些遇到相同错误的人有所帮助。我遇到了各种问题,如Apache错误和Composer错误,在环境搭建上花了大约3天的时间。
在进行各种调查时,发现还有一种方法可以使用符号链接,通过一个xamm切换PHP版本。但我认为本次介绍的方法最简单。
请注意:
以下内容是学习的总结。
因为我是初学者,所以如果有错误,请指正。
这篇文章的目标是什么?
以下的产出内容
-
PHPのインストール
ComposerでPHPのバージョンを指定
Composerのバージョン変更
现有的开发环境
xampp 8.1.10
PHP 8.1.10
Composer 2.3.0
PHP 8.1.10
Composer 2.3.0
提示:
1. Break down your tasks into smaller, manageable chunks.
2. Prioritize your tasks based on their importance and urgency.
3. Stay focused and avoid distractions while working.
4. Take short breaks to recharge and avoid burnout.
5. Set goals for each task and track your progress.
6. Seek help or delegate tasks if necessary.
7. Stay organized and maintain a clean workspace.
8. Practice effective time management techniques.
-
xamppのバージョン = PHPのバージョン
バージョンの確認は以下コマンドを参考にしてください。
// phpのバージョンを確認
php -v
// Composerのバージョンを確認
Composer -v
// xamppのバージョンを確認
xampp -v
// Laravelのバージョンを確認
php artisan -v
这篇文章的内容 (Zhè de
安装PHP
使用Composer指定PHP版本
更改Composer版本
有关Apache错误的问题
1. 安装PHP
这次将安装PHP7.1.30版本。
请下载xampp7.1.30版本。
ダウンロード先
ダウンロードするファイル
xampp-windows-x64-7.1.30-5-VC14.zip
提示:
请解压缩下载的zip文件。
将现有的XAMPP文件夹内的文件名改名。
把以下的三个文件名改成其他名称。
xapmm/php → php8110
xampp/apache/conf/http.conf → http.conf8110
xampp/apache/conf/extra/httpd-xampp.conf → httpd-xampp.conf8110
提示:
文件名可以自行决定,但建议将文件名与版本号结合起来,以便不会忘记版本。
将文件放置在现有的xampp文件夹内。
将刚刚下载的xampp中,已更改文件名的三个文件与同名文件,放置到已存在的xampp文件夹中。
编辑 http.conf
php7apache2_4.dll へのパスを、ファイルの最終行に追記する
LoadModule php7_module c:/xampp/php/php7apache2_4.dll
拡張子(.php)とPHPを関連付けるコードを、ファイルの最終行に追記する
FilesMatch ディレクティブを使用
<FilesMatch "\.php$">
AddHandler php7-script .php
AddType application/x-httpd-php .php
</FilesMatch>
php.iniへのパスを、ファイルの最終行に追記する
PHPIniDir を使用
PHPIniDir "c:/xampp/php"
提示:
请根据自己的环境设置适当的路径。
编辑httpd-xampp.conf文件。
将 php7_module 更改为 php_module(3个地方)。
# <IfModule php7_module> ←コメントアウトにする
<IfModule php_module> ←追記
请参考以下内容。 (Please refer to the following information.)
【6】修改php.ini文件
取消下面的1行注释
; extension_dir = "./" ←変更前
extension_dir = "./" ←変更後
确认 PHP 版本。
当执行以下命令并确认 PHP 版本,即可视为成功。
php -v
// 以下のように出力されたらOK
PHP 7.1.30 (cli) (built: May 28 2019 15:32:26) ( ZTS MSVC14 (Visual C++ 2015) x64 )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
使用Composer指定PHP版本。
【1】 ComposerでPHPのバージョンを指定
请执行下面的命令
// プロジェクトのディレクトリに移動
C:\Users\hoge-huga> cd C:\xampp\htdocs\プロジェクト名
// ComposerでPHPのバージョンを指定
C:\xampp\htdocs\プロジェクト名> composer config platform.php 7.1.30
// アップグレード or ダウングレードを適用
C:\xampp\htdocs\プロジェクト名> composer update
启动Apache。
.env ファイルを配置し、プロジェクトディレクトリで以下コマンドを実行
Composer install
Apacheを起動し、ブラウザが開いたら成功
以下のようなエラーメッセージが出た場合、Composerのバージョン変更が必要ですので、
3. Composerのバージョン変更 を行なってください。
// エラーメッセージ
Composer 2.3.0 dropped support for PHP <7.2.5 and you are running 7.0.0,
please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.
Apacheが正常に起動した場合、3. Composerのバージョン変更 は不要です。
3. Composerのバージョン変更
我打算安装Composer 2.2这一次。
【1】 xamppのPHPバージョンを戻す
把以下三个文件名恢复到原始的状态。
xapmm/php8110 → php
xampp/apache/conf/http.conf8110 → http.conf
xampp/apache/conf/extra/httpd-xampp.conf8110 → httpd-xampp.conf
提示:
对于已配置好的PHP7.1.30文件,最好将其名称更改为 文件名 + 版本。
执行self-update命令。
指定Composer版本,并执行self-update命令。
composer self-update --2.2
应用PHP7
刚才我已经将版本回滚到了PHP8,现在再次更改文件名,并应用PHP7版本。
提示:
只有将PHP恢复到原始版本,才能执行self-update命令。
完成此步骤后,您需要在Composer中重新指定PHP版本。
4. 关于Apache错误
Apacheを起動する際、こんなエラーに遭遇しました。
使用XAMPP控制面板启动Apache。
无论尝试了多少方法,仍然一直出现相同的错误信息,无法找出原因。
// エラーメッセージ
Error: Apache shutdown unexpectedly.
This may be due to a blocked port, missing dependencies,
improper privileges, a crash, or a shutdown by another method.
Press the Logs button to view error logs and check
the Windows Event Viewer for more clues
If you need more help, copy and post this
entire log window on the forums
在这种情况下,请尝试以下方法。
使用PowerShell启动Apache。
如果您以管理员身份在PowerShell中运行,启动Apache,您就可以检查错误信息。
但奇怪的是,有些错误信息是德语的。
// xamppに移動
> cd C:\xampp
// Apache起動
> .\apache_start.bat
// エラーメッセージ
Diese Eingabeforderung nicht waehrend des Running beenden
Bitte erst bei einem gewollten Shutdown schliessen
Please close this command only for Shutdown
Apache 2 is starting ...
httpd.exe: Syntax error on line 537 of C:/xampp/apache/conf/httpd.conf: Syntax error on line 20 of C:/xampp/apache/conf/extra/httpd-xampp.conf: Can't locate API module structure `php_module' in file C:/xampp/php/php7apache2_4.dll: No error
Apache konnte nicht gestartet werden
Apache could not be started
使用Composer指定PHP版本
更改Composer版本
有关Apache错误的问题
请下载xampp7.1.30版本。
ダウンロード先
-
ダウンロードするファイル
xampp-windows-x64-7.1.30-5-VC14.zip
提示:
请解压缩下载的zip文件。
将现有的XAMPP文件夹内的文件名改名。
把以下的三个文件名改成其他名称。
-
xapmm/php → php8110
xampp/apache/conf/http.conf → http.conf8110
xampp/apache/conf/extra/httpd-xampp.conf → httpd-xampp.conf8110
提示:
文件名可以自行决定,但建议将文件名与版本号结合起来,以便不会忘记版本。
将文件放置在现有的xampp文件夹内。
将刚刚下载的xampp中,已更改文件名的三个文件与同名文件,放置到已存在的xampp文件夹中。
编辑 http.conf
php7apache2_4.dll へのパスを、ファイルの最終行に追記する
LoadModule php7_module c:/xampp/php/php7apache2_4.dll
拡張子(.php)とPHPを関連付けるコードを、ファイルの最終行に追記する
FilesMatch ディレクティブを使用
<FilesMatch "\.php$">
AddHandler php7-script .php
AddType application/x-httpd-php .php
</FilesMatch>
php.iniへのパスを、ファイルの最終行に追記する
PHPIniDir を使用
PHPIniDir "c:/xampp/php"
LoadModule php7_module c:/xampp/php/php7apache2_4.dll
FilesMatch ディレクティブを使用
<FilesMatch "\.php$">
AddHandler php7-script .php
AddType application/x-httpd-php .php
</FilesMatch>
PHPIniDir を使用
PHPIniDir "c:/xampp/php"
提示:
请根据自己的环境设置适当的路径。
编辑httpd-xampp.conf文件。
将 php7_module 更改为 php_module(3个地方)。
# <IfModule php7_module> ←コメントアウトにする
<IfModule php_module> ←追記
请参考以下内容。 (Please refer to the following information.)
【6】修改php.ini文件
取消下面的1行注释
; extension_dir = "./" ←変更前
extension_dir = "./" ←変更後
确认 PHP 版本。
当执行以下命令并确认 PHP 版本,即可视为成功。
php -v
// 以下のように出力されたらOK
PHP 7.1.30 (cli) (built: May 28 2019 15:32:26) ( ZTS MSVC14 (Visual C++ 2015) x64 )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
使用Composer指定PHP版本。
【1】 ComposerでPHPのバージョンを指定
请执行下面的命令
// プロジェクトのディレクトリに移動
C:\Users\hoge-huga> cd C:\xampp\htdocs\プロジェクト名
// ComposerでPHPのバージョンを指定
C:\xampp\htdocs\プロジェクト名> composer config platform.php 7.1.30
// アップグレード or ダウングレードを適用
C:\xampp\htdocs\プロジェクト名> composer update
启动Apache。
.env ファイルを配置し、プロジェクトディレクトリで以下コマンドを実行
Composer install
Apacheを起動し、ブラウザが開いたら成功
.env ファイルを配置し、プロジェクトディレクトリで以下コマンドを実行
Composer install
以下のようなエラーメッセージが出た場合、Composerのバージョン変更が必要ですので、
3. Composerのバージョン変更 を行なってください。
// エラーメッセージ
Composer 2.3.0 dropped support for PHP <7.2.5 and you are running 7.0.0,
please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.
Apacheが正常に起動した場合、3. Composerのバージョン変更 は不要です。
3. Composerのバージョン変更
我打算安装Composer 2.2这一次。
【1】 xamppのPHPバージョンを戻す
把以下三个文件名恢复到原始的状态。
xapmm/php8110 → php
xampp/apache/conf/http.conf8110 → http.conf
xampp/apache/conf/extra/httpd-xampp.conf8110 → httpd-xampp.conf
提示:
对于已配置好的PHP7.1.30文件,最好将其名称更改为 文件名 + 版本。
执行self-update命令。
指定Composer版本,并执行self-update命令。
composer self-update --2.2
应用PHP7
刚才我已经将版本回滚到了PHP8,现在再次更改文件名,并应用PHP7版本。
提示:
只有将PHP恢复到原始版本,才能执行self-update命令。
完成此步骤后,您需要在Composer中重新指定PHP版本。
4. 关于Apache错误
Apacheを起動する際、こんなエラーに遭遇しました。
使用XAMPP控制面板启动Apache。
无论尝试了多少方法,仍然一直出现相同的错误信息,无法找出原因。
// エラーメッセージ
Error: Apache shutdown unexpectedly.
This may be due to a blocked port, missing dependencies,
improper privileges, a crash, or a shutdown by another method.
Press the Logs button to view error logs and check
the Windows Event Viewer for more clues
If you need more help, copy and post this
entire log window on the forums
在这种情况下,请尝试以下方法。
使用PowerShell启动Apache。
如果您以管理员身份在PowerShell中运行,启动Apache,您就可以检查错误信息。
但奇怪的是,有些错误信息是德语的。
// xamppに移動
> cd C:\xampp
// Apache起動
> .\apache_start.bat
// エラーメッセージ
Diese Eingabeforderung nicht waehrend des Running beenden
Bitte erst bei einem gewollten Shutdown schliessen
Please close this command only for Shutdown
Apache 2 is starting ...
httpd.exe: Syntax error on line 537 of C:/xampp/apache/conf/httpd.conf: Syntax error on line 20 of C:/xampp/apache/conf/extra/httpd-xampp.conf: Can't locate API module structure `php_module' in file C:/xampp/php/php7apache2_4.dll: No error
Apache konnte nicht gestartet werden
Apache could not be started
【1】 xamppのPHPバージョンを戻す
把以下三个文件名恢复到原始的状态。
-
xapmm/php8110 → php
xampp/apache/conf/http.conf8110 → http.conf
xampp/apache/conf/extra/httpd-xampp.conf8110 → httpd-xampp.conf
提示:
对于已配置好的PHP7.1.30文件,最好将其名称更改为 文件名 + 版本。
执行self-update命令。
指定Composer版本,并执行self-update命令。
composer self-update --2.2
应用PHP7
刚才我已经将版本回滚到了PHP8,现在再次更改文件名,并应用PHP7版本。
提示:
只有将PHP恢复到原始版本,才能执行self-update命令。
4. 关于Apache错误
Apacheを起動する際、こんなエラーに遭遇しました。
使用XAMPP控制面板启动Apache。
无论尝试了多少方法,仍然一直出现相同的错误信息,无法找出原因。
// エラーメッセージ
Error: Apache shutdown unexpectedly.
This may be due to a blocked port, missing dependencies,
improper privileges, a crash, or a shutdown by another method.
Press the Logs button to view error logs and check
the Windows Event Viewer for more clues
If you need more help, copy and post this
entire log window on the forums
在这种情况下,请尝试以下方法。
使用PowerShell启动Apache。
如果您以管理员身份在PowerShell中运行,启动Apache,您就可以检查错误信息。
但奇怪的是,有些错误信息是德语的。
// xamppに移動
> cd C:\xampp
// Apache起動
> .\apache_start.bat
// エラーメッセージ
Diese Eingabeforderung nicht waehrend des Running beenden
Bitte erst bei einem gewollten Shutdown schliessen
Please close this command only for Shutdown
Apache 2 is starting ...
httpd.exe: Syntax error on line 537 of C:/xampp/apache/conf/httpd.conf: Syntax error on line 20 of C:/xampp/apache/conf/extra/httpd-xampp.conf: Can't locate API module structure `php_module' in file C:/xampp/php/php7apache2_4.dll: No error
Apache konnte nicht gestartet werden
Apache could not be started