📌  相关文章
📜  composer 不会将 php 版本用于子域 multiphp (1)

📅  最后修改于: 2023-12-03 15:14:13.762000             🧑  作者: Mango

Composer 不会将 PHP 版本用于子域 Multiphp

在使用 cPanel 控制面板托管您的 PHP 项目时,您可能会面临需要在多个 PHP 版本之间切换的情况。cPanel 提供了 MultiPHP Manager 工具,使您可以在同一主机上使用不同的 PHP 版本来运行多个网站。

在使用 MultiPHP Manager 工具时,您可能会遇到一个问题,即无法将特定版本的 PHP 应用于子域。具体来说,如果您在主域上使用 PHP 7.2,并在子域上尝试使用 PHP 7.3,您可能会发现子域仍在使用 PHP 7.2。

这是因为 Composer 不会将 PHP 版本用于子域 Multiphp。当您在主域上使用 Composer 安装依赖项时,它将使用主域上的 PHP 版本。当您访问子域时,它仍将使用 MultiPHP Manager 中为子域指定的 PHP 版本。

要解决这个问题,您需要在子域上手动安装所需版本的 PHP,并在 MultiPHP Manager 中将子域配置为使用该版本。您还应该在子域的项目文件夹中运行 Composer,以确保它使用子域指定的 PHP 版本。

示例代码

以下是在子域上手动安装 PHP 7.3 的示例命令:

# 下载 PHP 7.3 的源代码
$ wget https://www.php.net/distributions/php-7.3.29.tar.gz

# 解压源代码
$ tar -xvf php-7.3.29.tar.gz

# 进入源代码目录
$ cd php-7.3.29

# 配置 PHP
$ ./configure --prefix=$HOME/php --with-pdo-mysql --with-zlib

# 编译并安装 PHP
$ make && make install

# 将 PHP 可执行文件路径添加到 PATH 环境变量
$ export PATH=$HOME/php/bin:$PATH

运行 Composer:

$ php -d allow_url_fopen=on -d detect_unicode=Off /path/to/composer.phar install

为了确保 Composer 使用子域指定的 PHP 版本,请确保已将其添加到 PATH 环境变量中。

结论

在使用 MultiPHP Manager 时,如果需要在子域上使用不同的 PHP 版本,请手动安装所需的版本,并在子域的项目文件夹中运行 Composer。请注意,Composer 不会自动将 PHP 版本用于子域 Multiphp。