PHP HostGator 中的版本

PHP version in HostGator

当我尝试在我的主机 (HostGator) 中上传新版本时,我的项目遇到了一个问题。

这是错误:

PHP Startup: SourceGuardian: Unable to initialize module
Module compiled with module API=20131226
PHP compiled with module API=20100525
These options need to match

我在 cPanel 中将 PHP 的版本从 5.4 更改为 5.6,但是当我通过 putty 连接检查服务器中 PHP 的版本时,我收到以下消息:

PHP 5.4.45 (cli) (built: Apr 17 2017 15:59:08)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
    with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v10.2.4, Copyright (c) 2002-2018, by ionCube Ltd.
    with Zend Guard Loader v3.3, Copyright (c) 1998-2013, by Zend Technologies

也许这就是问题所在?我阅读了有关此错误的信息,但无法找到解决方案。不知道是不是我做错了

从命令行调用的 php 二进制文件可能与 Apache 使用的 php 二进制文件相同,也可能不同。您应该使用以下 PHP 脚本(将其保存到可公开访问的 Web 目录并在 Web 浏览器中加载它)来确定哪个 PHP 版本的 Apache 配置为 运行:

<?php
    phpinfo();
?>

cPanel 提供了 2 种不同的方法来设置 php 版本。一个叫做 "Select PHP version",它将全局 php 版本设置为新域、cron 作业等的默认版本,另一个是 "MultiPHP Manager",它允许您设置 [=16] 的不同版本=] 用于同一 cPanel 帐户下的不同域。您需要确保 "MultiPHP Manager" 还为您的域列出了正确的 php 版本(它可以覆盖 "Select PHP version" 设置)。

简单修改HTACCESS文件:

首先,Hostgator 将在 2020 年 10 月之前弃用早于 7.2 的版本。

其次,如果以下解决方案不能解决您的问题,请确保父文件夹中没有包含不同说明的 .htaccess 文件(MySQL 模块似乎由第一个版本指示文件夹层次结构,PHP 最后一个)。

在 htaccess 文件中使用以下代码(以#开头的行被注释):

  # Use PHP 5.4 (will no longer be available in Oct 2020)
#AddHandler application/x-httpd-php54 .php
#<IfModule mod_suphp.c>
#    suPHP_ConfigPath /opt/php54/lib
#</IfModule>

  # Use PHP 5.6 (will no longer be available in Oct 2020)
#AddHandler application/x-httpd-php56 .php
#<IfModule mod_suphp.c>
#    suPHP_ConfigPath /opt/php56/lib
#</IfModule>

  # Use PHP 7.1 (will no longer be available in Oct 2020)
#AddHandler application/x-httpd-php71 .php
#<IfModule mod_suphp.c>
#    suPHP_ConfigPath /opt/php71/lib
#</IfModule>

  # Use PHP 7.2
#<IfModule mime_module>
#  AddHandler application/x-httpd-ea-php72 .php .php7 .phtml
#</IfModule>

  # Use PHP 7.3
#<IfModule mime_module>
#  AddHandler application/x-httpd-ea-php73 .php .php7 .phtml
#</IfModule>

  # Use PHP 7.4 (automatically asigned to new domains since ~Sept 2020)
<IfModule mime_module>
  AddHandler application/x-httpd-ea-php74 .php .php7 .phtml
</IfModule>

感谢@anayarojo 为 v7.2(2020 年 4 月)提供的提示。

只需将此行添加到您的 .htaccess 中,新版本的 php 即可工作:

对于PHP 7.2:

AddHandler application/x-httpd-ea-php72 .php .php7 .phtml 

对于PHP 7.3:

AddHandler application/x-httpd-ea-php73 .php .php7 .phtml