无法在xampp中使用多个php版本

dzjeubhm  于 2022-10-30  发布在  PHP
关注(0)|答案(2)|浏览(155)

我的xampp中默认有php 7.4(路径c:\xampp\php),我的大多数项目都在它上面运行。现在,我有一个php 8项目,所以需要在另一个端口(8056)上运行php 8.1的xampp。我试着用这个链接中提到的答案来做这件事:
How to use Multiple xampp Like xampp php version 5, xampp php version 7, version 8. I also install it but problem new laravel project npm not install
虽然新端口(8056)也在Xampp控制面板中的ports下列出,但无法用它加载Xampp。运行http://localhost:8056/时,我收到错误:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at postmaster@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

Apache/2.4.52 (Win64) OpenSSL/1.1.1m PHP/7.4.27 Server at localhost Port 8056

在这个错误的最后一行,它似乎仍然在php.7.4上运行。我只想php 8.1监听这个端口。我该如何修复这个问题?任何帮助都是非常感谢的。
我执行的步骤:
1.下载php 8(非线程安全版本)&解压文件到路径c:\xampp\php8
2.由于路径c:\xampp\php8中不存在php.ini文件,因此创建了一个新的文本文件,并将其命名为php.ini。将php.ini-development中的内容复制到php.ini中,并取消注解该行

extension_dir = "ext"

3.添加了第3步和第4步-选项2中提到的内容,只修改了php版本名称,如下所示。下面给出了我当前的xampp - Apache配置文件(httpd-xampp.conf)的完整内容


# 

# XAMPP settings

# 

<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 "\\xampp\\php"
    SetEnv PHPRC "\\xampp\\php"
    SetEnv TMP "\\xampp\\tmp"
</IfModule>

# 

# PHP-Module setup

# 

LoadFile "C:/xampp/php/php7ts.dll"
LoadFile "C:/xampp/php/libpq.dll"
LoadFile "C:/xampp/php/libsqlite3.dll"
LoadModule php7_module "C:/xampp/php/php7apache2_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 php7_module>
    PHPINIDir "C:/xampp/php"
</IfModule>

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

ScriptAlias /php-cgi/ "C:/xampp/php/"
<Directory "C:/xampp/php">
    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 php7_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 php7_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>

ScriptAlias /php8 "C:/xampp/php8"
Action application/x-httpd-php8-cgi /php8/php-cgi.exe
<Directory "C:/xampp/php8">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

Listen 8056
<VirtualHost *:8056>
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php8-cgi
    </FilesMatch>
</VirtualHost>

1.保存了它的内容并重新启动了xampp & apache。

gcmastyq

gcmastyq1#

我使用了XAMPP,也遇到了同样的问题。后来我搬到了Laragon,它使使用不同版本的PHP和MySQL变得简单。
请查看:Laragon

c2e8gylq

c2e8gylq2#

我同意laragon是最好的windows不确定如果你可以使用多个php上的xamp没有安装在不同的文件夹
也许这有用
Is there way to use two PHP versions in XAMPP?

相关问题