【问题标题】:PHP version in HostGatorHostGator 中的 PHP 版本
【发布时间】:2019-03-08 00:32:21
【问题描述】:

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

这是错误:

PHP 启动:SourceGuardian:无法初始化模块
使用模块 API=20131226 编译的模块
使用模块 API=20100525 编译的 PHP
这些选项需要匹配

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

PHP 5.4.45 (cli)(构建时间:2017 年 4 月 17 日 15:59:08)
版权所有 (c) 1997-2014 PHP Group
Zend Engine v2.4.0,版权所有 (c) 1998-2014 Zend Technologies
使用 ionCube PHP Loader(已启用)+ ioncube24.com(未配置)v10.2.4 的入侵保护,版权 (c) 2002-2018,ionCube Ltd.
Zend Guard Loader v3.3,版权所有 (c) 1998-2013,由 Zend Technologies 提供

也许这可能是问题所在?我读到了这个错误,但我无法得到解决方案。不知道是不是我做错了。

【问题讨论】:

标签: php host


【解决方案1】:

只需修改 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 月)的提示。

【讨论】:

  • 我不知道 hostgator 是否支持 7.2,因为在 Cpanel 中您只能选择 5.4、7 和 7.1。我在 hostgator 有两个项目,但只有 7.1 。我的 .htacess 类似于:AddHandler application/x-httpd-php71 .php。 (与您发布的相同)如果您在项目中使用作曲家,我知道您可以强制更新并尝试检查这是否正常。对不起,短暂的帮助,祝你好运
  • 试试AddHandler application/x-httpd-ea-php72 .php .php7 .phtml
【解决方案2】:

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

<?php
    phpinfo();
?>

【讨论】:

  • 该版本仍在 PHP 版本 5.4.45 中,但我在 cpanel 中将其更改为 5.6。也许需要用腻子来做?
【解决方案3】:

只需将此行添加到您的 .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 

【讨论】:

    【解决方案4】:

    cPanel 提供了 2 种不同的方法来设置 php 版本。一种称为“选择 PHP 版本”,它将全局 php 版本设置为新域、cron 作业等的默认值,另一种是“MultiPHP 管理器”,它允许您设置不同版本的 php 以用于不同的域相同的 cPanel 帐户。您需要确保“MultiPHP 管理器”还列出了您域的正确 php 版本(它可以覆盖“选择 PHP 版本”设置)。

    【讨论】:

    • 我可以解决将项目文件夹中.htacess 中的PHP 版本添加到cPanel 的“选择PHP 版本”相同的问题。谢谢大家的帮助和建议!
    猜你喜欢
    • 2018-01-26
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 2016-12-23
    相关资源
    最近更新 更多