我最近修改了 php.ini 文件中的“include_path”变量。在你问之前,我重新启动了 apache 服务。该更改适用于我们从 Web 浏览器访问的每个页面。
问题是 cron 工作似乎没有考虑到这种变化。当我在 cron 作业中执行 phpinfo() 时,它使用与 Web 服务器相同的 php.ini 文件,这是我更改的文件,但“include_path”旁边的值是旧文件。
那么有没有办法“重启”crontab?或者也许还有另一个问题?
一些系统为 web 和 CLI 使用单独的 php.ini 文件。您还需要在其中进行更改:如何找到命令行使用的 php.ini 文件?
找到这个文件的最简单方法是在命令行运行它:php --ini这将产生如下输出:
user@computer:~$ php --ini
Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File: /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
您看到的“加载的配置文件:”是您需要添加更改的地方。
编辑:另一个选项是在您的 CRON 脚本中使用set_include_path()在运行时进行更改。
PHP 通常有两个 .ini 文件。一种用于网络服务器内 (SAPI),另一种用于命令行 (CLI)。如果您只修改了 SAPI 之一,那么从 CLI 运行的任何内容(例如 cron 作业)都不会看到更改。
在命令行中执行 aphp -i
以查看 PHP 在该模式下在哪里寻找它的 ini 文件。