我最近修改了php.ini文件中的"include_path"var。在您询问之前,我已经重新启动了apache服务。更改适用于我们从网络浏览器访问的每一个页面。
问题是,cron工作似乎没有考虑到这一变化。当我在cron作业中执行phpinfo()时,它使用与web服务器相同的php.ini文件,这是我更改的文件,但"include_path"旁边的值是旧的。
那么,有没有办法"重启"crontab?或者可能还有其他问题?
一些系统使用单独的php.ini文件进行web和CLI。您还需要在其中进行更改:如何找到命令行使用的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
您所看到的"加载的配置文件:"是您需要添加更改的地方。
EDIT:另一个选项是在CRON脚本中使用set_include_path()在运行时进行更改。
PHP通常有两个.ini文件。一个用于Web服务器内(SAPI),另一个用于命令行(CLI)使用。如果只修改了SAPI,那么从CLI运行的任何程序(例如cron作业)都不会看到更改。
在命令行执行php -i
,查看PHP在该模式下查找其ini文件的位置。