web-dev-qa-db-ja.com

有効にする方法 PHP 短いタグ?

<?で始まるLinuxサーバー上のWebアプリケーションがあります。

私はこのアプリケーションをWindows環境にコピーする必要がありました、そして、SQLステートメントが異なってレンダリングされていることを除いて、すべてがうまく働いています。 <?phpから<?を有効にする場所がわからないので、これが<?ではなくPHP.iniで始まるスクリプトと関係があるかどうかわかりませんので、<?phpに変更しました

これら2つのステートメントは同じ意味であることを前提としていますが、アプリケーションがまったく同じであることを確認するために<?でテストする必要があります。こうすれば、私は別の可能性を排除することができます。

ありがとう

293
seedg

セット

short_open_tag=On

php.ini

そして、Apacheサーバーを再起動してください。

516
codaddict

これは short_open_tag in php.ini :を有効にすることで実現できます。

short_open_tag = on

Php.iniにアクセスできない場合は、 .htaccess ファイルを使用して有効にすることができますが、共有ホスティングを利用している場合はホスティング会社がこれを無効にしている可能性があります。

php_value short_open_tag 1

Short_open_tagsは悪い習慣だと思っている人たちのために php 5.4では<?= ... ?> shorttagはどこでもサポートされます あなたがサーバ上の設定を制御できるならそれらを使わない理由はありません。また、このリンクで言った: short_open_tag

75
RJD22

これはphp.iniでshort_open_tagを有効にすることで実行できます。

1.php.iniファイルを見つけるには、コメント行で次のコマンドを実行します。

 php --ini

あなたはこのようなものを得るでしょう、

Configuration File (php.ini) Path: /etc
Loaded Configuration File:         /etc/php.ini
Scan for additional .ini files in: /etc/php.d
Additional .ini files parsed:      /etc/php.d/curl.ini,
/etc/php.d/fileinfo.ini,
/etc/php.d/Gd.ini,
/etc/php.d/json.ini,
/etc/php.d/mcrypt.ini,
/etc/php.d/mysql.ini,
/etc/php.d/mysqli.ini,
/etc/php.d/pdo.ini,
/etc/php.d/pdo_mysql.ini,
/etc/php.d/pdo_sqlite.ini,
/etc/php.d/phar.ini,
/etc/php.d/sqlite3.ini,
/etc/php.d/Zip.ini

コメント出力の2行目を参照してください。ファイルは上記のパスにあります。

2. php.iniファイルを開き、short_open_tagを見つけます。デフォルトではoffにありますonに変更してください。

3.サーバーを再起動し、このコメントを実行

service httpd restart

ありがとう

19
user2086641

UbuntuのVagrantインストールスクリプトから短いタグを開くように設定するには、次の手順を実行します。

sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php5/Apache2/php.ini
18
Bradley Flood

上記の答えはすべて部分的にしか正しいとは言えません。実際にはすべての21世紀のPHPアプリにはFastCGI Process Manager(php-fpm)があるので、test.phpスクリプトにphp-info()を追加して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
12
Eddy Ferreira

それと同じくらい簡単に、以下のステップに従ってください。

  1. php.iniファイルに行きます
  2. short_open_tagを見つけてonに設定します。
  3. サーバーを再起動します

そのため、short_open_tag = On

10

あなたはshort_open_tagsをオンにする必要があります。

short_open_tag = On
10
Jage

CentOS 6(Centos 7でもテスト済み)では、php-fpmの/etc/php.iniにshort_open_tagを設定することはできません。あなたはエラーがあるでしょう:

ERROR: [/etc/php.ini:159] unknown entry 'short_open_tag'
ERROR: Unable to include /etc/php.ini from /etc/php-fpm.conf at line 159
ERROR: failed to load configuration file '/etc/php-fpm.conf'
ERROR: FPM initialization failed

あなたは/etc/php-fpm.d/www.confにあるあなたのサイトの設定を編集しなければなりませんそしてファイルの終わりに書いてください:

php_value[short_open_tag] =  On
9
XakRu

あなたがApache+php5と一緒にUbuntuを使っているならば、現在のバージョンであなたがshort_open_tag = Onに変える必要がある2つの場所があります

  1. /etc/php5/Apache2/php.ini - これはあなたのWebサーバーを通してロードされたページのためのものです(Apache)
  2. /etc/php5/cli/php.ini - この設定は、コマンドラインからphpファイルを起動するときに使用されます。php yourscript.php - 手動またはcronjobで実行されるphpファイルを直接サーバー上で実行します。
7

php.iniファイルを編集した場合は、php.iniの編集内容を有効にするために、必ずサービス(Apache 2など)を再起動してください。

6
Steve Wasiura
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://php.net/short-open-tag
;short_open_tag=Off   <--Comment this out
; XAMPP for Linux is currently old fashioned
short_open_tag = On   <--Uncomment this
5
Rhadley

Wamp Serverユーザーにとってはより簡単な方法があります:その設定を有効にするには、WampServerアイコンを左クリックし、PHP - > PHP settings - >短いタグを開きます。少し待つと、WampServerは自動的にあなたのPHPとそのWebサービスを再起動します。

もともとから: http://osticket.com/forums/showthread.php?t=3149

5
Reza Ameri

あなたがウィンドウズでxamppを使っているならば、以下をしてください

  1. XAMPPコントロールパネルを開きます。
  2. CONFIGボタンをクリックしてください。
  3. PHP(php.ini)オプションに進みます。

Ctrl + fユーティリティを使ってshort_open_tagを見つける

;short_open_tagが見つかります

行からセミコロン (;) を削除してください。

そしてshort_open_tag = onのようにそれを保ちます

最後に、Apacheサーバーを再起動してください。

1
Praful Rajput

xamppを使用している場合、php.iniファイルにshort_open_tagが2回記載されていることに気付くでしょう。 2番目のものを有効にしてshort_open_tag = Onにします。最初のものはコメントアウトされているので、コメントを外して編集したくなるかもしれませんが、2番目のshort_open_tagによってオーバーライドされています。

1
Roger Gajraj
sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php/7.2/Apache2/php.ini

設定ファイルが保存されているディレクトリは変更されていますが、これはubuntu 16上のphp7.2で機能します。BradleyFloodによる上記と同じ答えです。

現在インストールされているバージョンと一致するようにphp文字列のバージョンを変更することもできます。

0
Raymie

Aws centos 7インスタンスとphp7(PHP 7.0.33(cli)(構築日:Dec 6 2018 22:30:44)(NTS))のshort_open_tagをOffからOnに変更しましたが、php情報ページは反映されません。そしてコード。それで私は私の場合の文書を参考にして解決策を見つける。 short_open_tagの後に asp_tags = On の後にApacheを再起動して追加の行を追加します。コード上で動作し、出力が正しく行われます。

php.iniファイル

engine = On

; This directive determines whether or not PHP will recognize code between
; <? and ?> tags as PHP source which should be processed as such. It is
; generally recommended that <?php and ?> should be used and that this feature
; should be disabled, as enabling it may result in issues when generating XML
; documents, however this remains supported for backward compatibility reasons.
; Note that this directive does not control the <?= shorthand tag, which can be
; used regardless of this directive. 
; Default Value: On   
; Development Value: Off     
; Production Value: Off  
; http://php.net/short-open-tag

short_open_tag = On

; Allow ASP-style <% %> tags   
; http://php.net/asp-tags
asp_tags = On
0
bibinnaickenz

Php-fpmで特定のドメインのshort_open_tagを有効にするには、編集しなければなりません:

/etc/php5/fpm/pool.d/xxxxxxxxxx.conf

Xxxxxはドメインのソケット番号です。

そして追加:php_value [short_open_tag] = On

0
contremaitre