正しいStackExchangeに投稿してください。
PHP CLIを使用しながら、非常に奇妙な問題に直面しました。私はSymfonyフレームワークを使用しています/etc/php5/cli/php.ini
。
長い記事より以下をご覧ください。
1/通常出力、拡張なし
app/console doctrine:schema:update
Nothing to update - your database is already in sync with the current entity metadata.
→確認 注:アプリ/コンソールはシェルバンを含むPHPスクリプトです。
app/console doctrine:schema:update --force
Nothing to update - your database is already in sync with the current entity metadata.
→確認(--force
PHPがスクリプトに渡したSymfonyオプションです)
2/ PHPに2つの拡張機能を追加
php.iniを編集しますsudo vim /etc/php5/cli/php.ini
。 2行を追加します。
extension=cairo.so
extension=php_gtk2.so
これらの拡張は完全に機能します。警告もなく、エラーもありません。
3/ PHPが「衝突」しました。無関係な2つの拡張機能が追加されました。
app/console doctrine:schema:update
Nothing to update - your database is already in sync with the current entity metadata.
→確認...しかし:
app/console doctrine:schema:update --force
PHP Fatal error: Option inconnue --force in Unknown on line 0
Could not startup.
→何?シンフォニーのせいではありません...
注:フランス語のみを意味しますOption inconnue
。Unknown option
他のコマンド、Symfonyコマンド、またはスタンドアロンPHPスクリプトにも同じ効果があります。
結論として:PHPには、呼び出されたPHPスクリプトにオプションを渡す奇妙な方法があります。
私もphp
前に載せたが、app/console
あまり変化がないですね。 php.iniで拡張機能をコメントアウトまたは削除すると、すべてがうまく機能します。この2行だけが関連しています。
編集:PHPを5.5.12から5.6.3にアップグレードしましたが、同じ問題が発生しました。
答え1
私はLinuxでPHP 5.6.1(cli)を実行していますが、drushを使用しようとすると同じ問題に直面しました。 PHP cliスクリプトを実行するたびに、次のメッセージが表示されます。
PHP 致命的なエラー: 不明なオプション --whatever-option-you-have
簡単なスクリプトを自分で作成したことを確認するには、次の手順を実行します。
#!/usr/bin/env php
<?php
echo ("Test");
php.iniから「php_gtk2.so」を削除するとエラーが消えました。
この問題はphp_gtk2.soまたはここに追加した拡張機能でのみ発生しますか? cairo.soを離れると同じエラーが発生しますか?
これはPHPの本当に奇妙な動作です!