webサーバー

【XAMPP】PHPを上書きしないでバージョンアップする方法

更新日:2022/10/06

XAMPP で動作するPHPのバージョンを変更したいとき、XAMPP内のPHPを上書きすればいいのですが、元に戻したいとき困ってしまいます。
そので上書きしないで、PHPのバージョンを変更する方法をお伝えします。

 

PHPのインストール

まずはPHPをXAMPPとは異なるフォルダ(ディレクトリ)にインストールします。

Zipファイルをダウンロードして適当なフォルダに解凍します。

参考になるかもしれない記事
【PHP】各OS毎のインストールメモ

 

httpd-xampp.confの編集

XAMPPで使用するPHPは、httpd-xampp.conf で指定します。
Windowsは、\xampp\apache\conf\extra にあります。

次の点に着目して、内容を変更していきます。

  1. phpフォルダを指定している箇所


    他のバージョンをインストールしたフォルダに変更

  2. php?ts.dll、php?apache2_4.dll ( ?はPHPバージョン )


    インストールしたフォルダを見て、ファイル名を変更

僕が実際に変更して、動作確認したものを掲載します。

#
# XAMPP settings
#

Define MYPHPPATH "C:/php/php8.1"
Define MYPHPVAR 8

<IfModule env_module>
    SetEnv MIBDIRS "C:/xampp/php/extras/mibs"
    SetEnv MYSQL_HOME "\\xampp\\mysql\\bin"
    SetEnv OPENSSL_CONF "C:/xampp/apache/bin/openssl.cnf"
    SetEnv PHP_PEAR_SYSCONF_DIR "${MYPHPPATH}"
    SetEnv PHPRC "${MYPHPPATH}"
    SetEnv TMP "\\xampp\\tmp"
</IfModule>

#
# PHP-Module setup
#
LoadFile "${MYPHPPATH}/php${MYPHPVAR}ts.dll"
LoadFile "${MYPHPPATH}/libpq.dll"
LoadModule php_module "${MYPHPPATH}/php${MYPHPVAR}apache2_4.dll"

<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>

#
# PHP-CGI setup
#
#<FilesMatch "\.php$">
#    SetHandler application/x-httpd-php-cgi
#</FilesMatch>
#<IfModule actions_module>
#    Action application/x-httpd-php-cgi "/php-cgi/php-cgi.exe"
#</IfModule>
<IfModule php_module>
    PHPINIDir "${MYPHPPATH}"
</IfModule>

<IfModule mime_module>
    AddType text/html .php .phps
</IfModule>

ScriptAlias /php-cgi/ "${MYPHPPATH}"
<Directory "${MYPHPPATH}">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
          Require all granted
    </Files>
</Directory>

<Directory "C:/xampp/cgi-bin">
    <FilesMatch "\.php$">
        SetHandler cgi-script
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler None
    </FilesMatch>
</Directory>
<Directory "C:/xampp/htdocs/xampp">
    <IfModule php_module>
    <Files "status.php">
    php_admin_flag safe_mode off
    </Files>
    </IfModule>
    AllowOverride AuthConfig
</Directory>

<IfModule alias_module>
    Alias /licenses "C:/xampp/licenses/"
    <Directory "C:/xampp/licenses">
        Options +Indexes
        <IfModule autoindex_color_module>
            DirectoryIndexTextColor  "#000000"
            DirectoryIndexBGColor "#f8e8a0"
            DirectoryIndexLinkColor "#bb3902"
            DirectoryIndexVLinkColor "#bb3902"
            DirectoryIndexALinkColor "#bb3902"
        </IfModule>
        Require local
        ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
   </Directory>

    Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
    <Directory "C:/xampp/phpMyAdmin">
        AllowOverride AuthConfig
        Require local
        ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
    </Directory>

    Alias /webalizer "C:/xampp/webalizer/"
    <Directory "C:/xampp/webalizer">
        <IfModule php_module>
    <Files "webalizer.php">
    php_admin_flag safe_mode off
    </Files>
        </IfModule>
        AllowOverride AuthConfig
        Require local
        ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
    </Directory>
</IfModule>

Defineは変数の定義をしています。
ここを変更すれば、他のバージョンにも変更できる、と思う。

SetEnv MIBDIRS は mibsフォルダが変更先に無いので、変更していません。

更新日:2022/10/06

書いた人(管理人):けーちゃん

スポンサーリンク

記事の内容について

null

こんにちはけーちゃんです。
説明するのって難しいですね。

「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。

裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。

掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。

ご意見、ご指摘はこちら。
https://note.affi-sapo-sv.com/info.php

 

このサイトは、リンクフリーです。大歓迎です。