ubuntu litespeed php7.0 有一个奇怪的 php.ini 路径

ubuntu litespeed php7.0 got a weird php.ini path

Ubuntu 16.04.2 LSPHP7.0

 wget -O - http://rpms.litespeedtech.com/debian/enable_lst_debain_repo.sh | bash
 apt install -y lsphp70

然后我将 /usr/local/lsws/lsphp70/bin 添加到 $PATH 并为 /usr/local/lsws/lsphp70/bin/php7.0 创建了一个符号链接到 /usr/local/lsws/lsphp70/bin/php。这样我就可以在终端中 运行 php 作为 cli 版本。

 apt install composer
 composer require geoip2/geoip2:~2.0

我收到一个错误 the requested PHP extension curl is missing from your system.

还说

To enable extensions, verify that they are enabled in those .ini files:
- /etc/php/7.0/cli/php.ini
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

但是当我 运行 php -i | grep php.ini 它显示 ini 不是 /etc/php/7.0/cli/php.ini 而是 /usr/local/lsws/lsphp70/etc/php/7.0/litespeed/php.ini

更进一步,我运行php --ini,显示:

Configuration File (php.ini) Path: /usr/local/lsws/lsphp70//etc/php/7.0/litespeed/
Loaded Configuration File:         /usr/local/lsws/lsphp70/etc/php/7.0/litespeed/php.ini
Scan for additional .ini files in: /usr/local/lsws/lsphp70//etc/php/7.0/mods-available/
Additional .ini files parsed:      /usr/local/lsws/lsphp70//etc/php/7.0/mods-available/curl.ini,
/usr/local/lsws/lsphp70//etc/php/7.0/mods-available/imap.ini,
/usr/local/lsws/lsphp70//etc/php/7.0/mods-available/json.ini,
/usr/local/lsws/lsphp70//etc/php/7.0/mods-available/mysqli.ini,
/usr/local/lsws/lsphp70//etc/php/7.0/mods-available/opcache.ini,
/usr/local/lsws/lsphp70//etc/php/7.0/mods-available/pdo_mysql.ini

php cli 如何获取 /etc/php/7.0/cli/php.ini 作为其 php 配置文件?有人提供线索吗?谢谢。

Ubuntu 通常安装系统默认 php(当前 php7.0)到 /usr/bin/php

Composer 通常会调用 $PATH 中定义的 PHP,通常是 /usr/bin/php.

错误 "the requested PHP extension curl is missing from your system" 表示 Ubuntu 系统默认值 php7.0 curl 丢失。解决: apt-get install php7.0-curl 到目前为止,它应该已经解决了您的问题。

LiteSpeed Web 服务器通常使用 LiteSpeed API 与 PHP 引擎通信,这比其他 API 更快。在 LiteSpeed Ubuntu/Debian repo 中,它提供了不同版本的 lsphp,它们将位于不同于系统默认位置的不同位置,通常在 /usr/local/lsws/lsphpxx/bin/.

Composer 通常会使用系统默认的 php 位置,如上所述。如果要覆盖 PHP 路径以使用 lsphp70 php 二进制文件,则需要将此路径添加到 $PATH.

的开头

export PATH="/usr/local/lsws/lsphp70/bin/:$PATH"

这样,当你 运行:

which php

系统应该使用在 PATH 中最先找到的 php,即 /usr/local/lsws/lsphp70/bin/php

在这种情况下,当您看到类似php-curl missing 错误信息时,您应该运行: apt-get install lsphp70-curl 解决问题。

要使新的 PATH 永久化,您可以编辑 ~/.profile 或 .bashrc,或任何其他类似的方式,这超出了本主题的讨论范围。