Apache2をセットアップしていますPHP 5.3.3サーバーはCentOS 6で実行されています。私のWebアプリケーションは短いタグ<?
と<?=
を使用しています。短いタグを有効にできないようです。 phpinfo()
を実行すると、short_open_tag = off
が表示されますが、/etc/php.ini
にはshort_open_tag = on
があります(はい、サーバーを再起動しました)。
また、ページの先頭で<?php ini_set('short_open_tag','1'); ?>
を使用してみましたが、それでも短いタグのコードを解析しません。
私が考えることができる唯一のことは、代わりに使用されている、またはphp.ini
のファイルをオーバーライドしている別の/etc/php.ini
ファイルがどこかにあるということです。
何かアドバイス?
かなりデフォルトのCentOS6.3システムがあり、PHP 5.3.3が手元にあり、期待どおりに機能します。/etc/php.iniのshort_open_tagsの値を変更して、httpdサービスを再起動するだけで機能します。
PHPは/etc/php.d
内のファイルも読み取るため、ファイルの1つでオーバーライドされていないことを確認してください。
他のphp.iniファイルを確認したい場合は
find / -name php.ini
もう少し詳しく説明しますが、short_open_tagの値は.htaccessファイルでも設定できます。
php_value short_open_tag On
ほとんどの場合、eAcceleratorまたは同様のものが有効になっています。プリコンパイルされたページは処理されないため、eAcceleratorキャッシュをクリアするか、(醜い)eAcceleratorをアンインストールし、Apacheを再起動し、eAcceleratorを再インストールして、Apacheを再起動します。
それも確認してください
.htaccess
ファイルにshort_open_tag
ディレクティブが含まれていないため、競合する可能性があります(私の場合、上位レベルのディレクトリにあるこのファイルが問題の原因でした)上記のすべての答えは部分的にのみ正しいことがわかります。実際には、21世紀のすべてのPHPアプリにはFastCGIプロセスマネージャー(php-fpm)があるため、php-info()をtest.phpスクリプトに追加して、phpの正しいパスを確認すると、 ini
Go to php.ini and set short_open_tag = On
重要:これが機能するように、php-fpmプロセスを再起動する必要があります!
Sudo service php-fpm restart
そして最後にnginx/httpサーバーを再起動します
Sudo service nginx restart
centos6では、/ etc/php.iniを配置する必要があります。ファイルで複数回定義されていないことを確認してください。
デフォルトでは、「クイックリファレンス」セクションにタグの説明があります。
; short_open_tag
; Default Value: On
; Development Value: Off
; Production Value: Off
後で「言語オプション」セクションで設定されるため、タグを追加しないでください(設定が上書きされます)。
; This directive determines whether or not PHP will recognize code between
; <? and ?> tags as PHP source which should be processed as such. It's been
; recommended for several years that you not use the short tag "short cut" and
; instead to use the full <?php and ?> tag combination. With the wide spread use
; of XML and use of these tags by other languages, the server can become easily
; confused and end up parsing the wrong code in the wrong context. But because
; this short cut has been a feature for such a long time, it's currently still
; supported for backwards compatibility, but we recommend you don't use them.
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://www.php.net/manual/en/ini.core.php#ini.short-open-tag
short_open_tag = Off