【问题标题】:Load specific PHP version加载特定的 PHP 版本
【发布时间】:2015-02-25 23:01:52
【问题描述】:

我想加载一个特定的 PHP 版本 (5.4),我使用 Bluehost 共享主机,它使用 Apache 并支持 PHP 5.4。

我在子目录 (/api) 中有一个 .htaccess 文件和一个 php.ini 文件,其中包含该行:

AddHandler application/x-httpd-php54 .php 指定服务器使用 PHP 5.4。

我在/public_html 有另一个 htaccess,它使用位于该目录中的 单个 php.ini 文件

我有一个由 Shell 调用的文件,带有那个 hashbang 行:

#!/usr/bin/php -c/homex/xx/public_html/api/php.ini

我在运行时查看了 PHP 版本(当由 hashbang 行调用时),它显示 5.2(默认版本),尽管我指定使用PHP 5.4 和/api 中php.ini 的使用。

另一方面,如果我通过浏览器调用我的脚本,使用的PHP版本是5.4

怎么了?我需要添加其他内容吗?

如何将 PHP 5.4 与我的 hashbang 文件一起使用?

我已经从 /api 中删除了 php.ini 文件,并从 AddHandler application/x-httpd-php54 .php.htaccess 文件中删除了该行。所以使用的 php.ini 文件是来自/public_html 的单个文件。

我已经将该行从/public_html 添加到 .htaccess 中:AddHandler application/x-httpd-php54s .php s 这意味着单个 php.ini 文件。

【问题讨论】:

  • /user/bin/php 只是一个可执行文件,对吗?这就是文件开头那个 hashbang-fu 背后的全部想法。我假设它符号链接到 5.2 版本?为什么不将 hashbang 行更改为 php 5.4 可执行文件?
  • 怎么做?我的脚本通过管道发送电子邮件,所以当有收到的电子邮件时,我的脚本就会被执行。
  • 主要问题是您有什么样的托管计划?是共享的吗?虚拟专用?投入的?你有 root 权限的 ssh 访问权限吗?
  • @Meorg:只需找出 php 5.4 在服务器上的位置,然后根据 #!/usr/bin/php54 更改 hashbang。

标签: php apache .htaccess bluehost shebang


【解决方案1】:

According to Bluehost,您必须在控制面板中选择您的 PHP 版本。根据他们设置 Apache 的方式,您可能无法通过 .htaccess 选择运行的 PHP 版本

我们所有的服务器都支持(即能够运行)PHP 5.2 和 PHP 5.4。默认版本是 5.4.x,但您可以按照以下说明使用 PHP 5.2.X。但是,我们正在努力从我们的服务器中逐步淘汰 PHP 5.2.x,因为它的开发人员不再支持它。

【讨论】:

  • 这仅说明 WebServer(即 Apache)使用什么版本的 PHP,而不是 OP 想要的 CLI 上的默认版本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多