2011-03-16 50 views
2

我有一个脚本,我正在试图加载一个自定义的php.ini文件。该脚本通过#!/usr/bin/php -qc /path/to/php.ini标题在* nix系统上运行。但是,当这样做时,PHP报告加载的php.ini文件不存在,即没有加载。自定义php.ini当使用#!/ usr/bin/php

如果我在命令行直接执行php -qc /path/to/php.ini /path/to/script,它拿起php.ini - 这可能使用#!符号覆盖php.ini文件?

+1

你有没有尝试过没有'q'只是为了测试?根据[本](http://www.php.net/manual/en/features.commandline.php#95272),shebang符号似乎有多个选项的问题 – 2011-03-16 21:49:16

回答

0

PHP不喜欢解析shebang的参数。它只允许一个人在场。但是,您可以通过忽略空间的第一个参数参数绝招吧:(。显然,这种方法仅适用于具有级联参数一个这样的参数)

#!/usr/bin/php -qc/etc/php5/my.ini 

+0

尝试过,但它不起作用。 – Carpetsmoker 2011-03-16 21:56:56

+0

可能取决于版本。 (适用于5.3中的php-cgi和php-cli,自4.2 iirc以来,我一直在使用它。) – mario 2011-03-16 22:00:54

+0

是的,它并没有为我去除空间,这是在PHP 5.3.5上,但是你肯定没有理由解析这些论点,所以你明白了! – 2011-03-22 08:22:07

0

可以解决这个家当便携规范失效通过包装你的PHP脚本在shell脚本:

#!/bin/sh 
SCRIPT_PATH="$(dirname $0)" 
/usr/bin/env php -qc /path/to/php.ini -f $SCRIPT_PATH/my_original_script.php