在 1and1 托管环境中指定不同的 PHP 版本,让 Composer 安装和运行现代 PHP 应用程序
2024-03-01 19:35:49
在 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 版本。