返回

在 1and1 托管环境中指定不同的 PHP 版本,让 Composer 安装和运行现代 PHP 应用程序

php

在 1and1 托管环境中为 Composer 指定不同的 PHP 版本

问题

1and1 托管环境中默认使用 PHP 4.4.6 运行 Composer,这对现代 PHP 应用来说过低。虽然直接运行 php5.5 composer.phar install 可以部分解决问题,但后续进程仍会使用 PHP 4.4.6,导致失败。

解决方案

有多种方法可以在 1and1 托管环境中为 Composer 指定不同的 PHP 版本:

1. 使用 --php-options 选项

php --php-options="--php=/usr/local/bin/php5.5" composer.phar install

此命令将使用指定路径的 PHP 版本运行 Composer。请注意替换路径为你的 PHP 5.5 二进制文件的确切路径。

2. 使用 PHP 脚本包装器

创建一个 PHP 脚本 wrapper.php

#!/usr/bin/env php
<?php
exec('/usr/local/bin/php5.5 ' . __DIR__ . '/composer.phar ' . implode(' ', $_SERVER['argv']));

同样,将 /usr/local/bin/php5.5 替换为你的 PHP 5.5 二进制文件的确切路径。将脚本放置在与 composer.phar 相同的目录中并使其可执行:

chmod +x wrapper.php

使用 ./wrapper.php composer.phar install 运行 Composer,它将使用 PHP 5.5。

3. 修改 .user.ini 文件

在 1and1 托管环境中,创建一个 .user.ini 文件并将其放置在项目根目录中。此文件可用于覆盖 PHP 设置,包括 PHP 版本:

open_basedir=/path/to/my/project
engine=php5.5

请将路径替换为项目根目录的正确路径。

注意

  • 确保已安装所需版本的 PHP。
  • 上述方法可能需要根据特定托管环境进行调整。
  • 修改 .user.ini 文件可能会影响其他使用 PHP 的应用程序。

结论

通过上述方法,可以成功在 1and1 托管环境中为 Composer 配置 PHP 5.5,从而安装并运行现代 PHP 应用。

常见问题解答

Q:为什么不能直接用 composer.phar install

A:因为 1and1 托管环境默认使用较低版本的 PHP(如 PHP 4.4.6),这对于现代 PHP 应用来说过低。

Q:修改 .user.ini 文件有什么影响?

A:.user.ini 文件可以覆盖 PHP 设置,包括 PHP 版本,但请注意它可能会影响其他使用 PHP 的应用程序。

Q:我是否需要安装 PHP 5.5?

A:是的,你需要确保已安装所需版本的 PHP。

Q:上述方法是否适用于其他托管环境?

A:不一定,不同托管环境可能需要不同的配置方法。

Q:如何检查 Composer 使用哪个 PHP 版本?

A:可以在命令行中运行 composer --version 来检查使用的 PHP 版本。