如何在XAMPP上安装PHP 8。

13

我正在尝试更新我的PHP版本到全新的PHP 8。我已经按照这个教程中类似的步骤进行了操作。但现在出现了以下错误提示:

12:06:23  [Apache]  Error: Apache shutdown unexpectedly.
12:06:23  [Apache]  This may be due to a blocked port, missing dependencies, 
12:06:23  [Apache]  improper privileges, a crash, or a shutdown by another method.
12:06:23  [Apache]  Press the Logs button to view error logs and check
12:06:23  [Apache]  the Windows Event Viewer for more clues
12:06:23  [Apache]  If you need more help, copy and post this
12:06:23  [Apache]  entire log window on the forums

注意:我使用的是全新的XAMPP 7.2.33版本。

我找不到解决我的问题的方法。

编辑:它说我需要查看日志文件,但由于这是全新安装,它们完全为空。

这是我的httpd-xampp.conf文件:

<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/php8ts.dll"
LoadFile "C:/xampp/php/libpq.dll"
LoadModule php8_module "C:/xampp/php/php8apache2_4.dll"
LoadFile "C:/xampp/php/libsqlite3.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 php8_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 php8_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 php8_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>

1
你能发一下你的 httpd-xampp.conf 文件吗? - Matt
你为什么在跟进已有线索之前要在这里提问?错误提示说“按日志按钮查看错误日志,并检查Windows事件查看器以获取更多线索”。那就去做吧! - Quentin
请查看我所做的修改。 - Tim567
6个回答

14
在“httpd-xampp.conf”文件中将所有出现的php8_module重写为php_module解决了Apache意外关闭的问题。 :)

那对我也起作用了。谢谢你的发布。 - SteveM

5

1
感谢您的回答。以上答案都不适用于我,因为常规的PHP下载版本没有extras文件夹,也没有php8...dll文件。然而,即使使用“线程安全”版本,mibs文件夹也不存在。 - Mugé

4

现在,使用支持PHP 8的新版本XAMPP非常容易。安装XAMPP,在本地主机上使用XAMPP服务器运行第一个PHP程序。以下是步骤:

  • 下载并安装XAMPP
  • 在XAMPP中创建新项目并添加你的PHP程序
  • 打开XAMPP并运行第一个PHP程序

下载并安装XAMPP

步骤1:进入Apache Friends官网,下载支持PHP 8的XAMPP服务器。Apache Friends是下载XAMPP的官方网站:

下载XAMPP

步骤2:下载完毕后,安装XAMPP。你可以在任何位置进行安装,我们将XAMPP安装于C盘。

在XAMPP中创建新项目

步骤3:现在,转到XAMPP文件夹中的htdocs文件夹,并创建你的项目文件夹。

在此处,创建了一个名为AmitProject的文件夹,如下图所示:

按照这个教程操作,你就不需要更新以上设置。


2
我已经安装了xampp。 - Azhar Uddin Sheikh
这不是一个好的答案 - OP 正试图将现有的 XAMPP 升级到 PHP8。 - charliefortune
这是一个很好的答案,事实上,它是最好的答案 - 只需要升级您的旧软件! - DtechNet

1
这个错误是由于xampp对新的php版本进行了错误配置(即在xampp/apache/conf/extra/httpd-xampp.conf中存在错误条目)导致的。
幸运的是,您可以使用以下shell命令检查apache服务器的配置:
c:/xampp/apache/bin/httpd.exe -t

(用您的安装驱动器字母替换驱动器字母,如果您在自定义文件夹中安装了xampp,则还要更改xampp文件夹。)
如果您看到“语法OK”php应该基本工作(不要忘记复制/调整php.ini文件)。如果没有,则httpd.exe -t的输出提供有用的提示,应该在httpd-xampp.conf中进行更改。

0
  1. 将旧的php目录重命名为phpX
  2. 下载所需版本的PHP + dev包,例如:https://windows.php.net/download#php-8.0
  3. 将下载的存档文件提取到xampp / php中
  4. 如果旧的php配置对您很重要,请将phpX / php.ini复制到php /
  5. 在xampp中提取,重写httpd-xampp.config中引用的phpOld行
  • 使用php_module而不是phpX_module
  1. 如果问题仍然存在,运行xampp_start会出现PHP load error: %1 is not a valid Win32 application.,那么也需要下载新的apache版本...
  • 不要忘记将httpd.conf,httpd-ssl.conf,httpd-xampp.conf放回原位

或者,可以直接安装所需版本的XAMPP,并复制php + apache目录,然后卸载旧版本。从旧的apache目录中获取httpd * .conf文件或更正其路径。


0

我选择这种方式

备份您的XAMPP和htdocs文件, 然后卸载XAMPP, 下载新的XAMPP版本, 安装XAMPP, 配置路径到您的备份htdocs文件或项目文件-> httpd.config

您应该找到此选项以便自定义路径

DocumentRoot "D:\PROJECT"
<Directory "D:\PROJECT">

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接