2011-03-16 51 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