351

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

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

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

ありがとう

4

21 に答える 21

597

設定

short_open_tag=On

php.ini

そして、Apache サーバーを再起動します。

于 2010-02-02T15:45:29.353 に答える
87

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

short_open_tag = on

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

php_value short_open_tag 1

short_open_tags がphp 5.4 の時点で<?= ... ?>悪い習慣であると考えている人にとっては、設定に関係なく、 shorttag はどこでもサポートされるため、サーバーの設定を制御できる場合は使用しない理由はありません。このリンクでも述べています: short_open_tag

于 2010-02-02T15:46:28.290 に答える
23

これは、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

ありがとう

于 2013-08-26T12:08:32.297 に答える
14

上記のすべての回答は部分的にのみ正しいことがわかります。実際には、すべての 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
于 2014-07-03T11:00:41.923 に答える
10

簡単ですが、次の手順に従います。

  1. php.iniファイルに移動
  2. 見つけshort_open_tagて設定しますon

    short_open_tag = On
    
  3. サーバーを再起動します

于 2013-02-10T11:11:00.153 に答える
10

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

short_open_tag = On
于 2010-02-02T15:46:14.043 に答える
8

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
于 2013-11-06T21:42:40.710 に答える
7

を使用Ubuntuしている場合Apache+php5、現在のバージョンでは、変更する必要がある場所が 2 つあります。short_open_tag = On

  1. /etc/php5/apache2/php.ini- これは、Web サーバー (Apache) を介してロードされたページ用です。
  2. /etc/php5/cli/php.ini- この構成は、コマンド ラインから php ファイルを起動するときに使用さphp yourscript.phpれます。
于 2015-01-21T09:51:52.653 に答える
6

php.ini ファイルを編集する場合は、php.ini への編集を有効にするためにサービス (apache2 など) を再起動することを忘れないでください。

于 2011-04-27T12:54:45.437 に答える
6

Wamp Server ユーザーの場合は、もっと簡単な方法があります。その設定を有効にするには、WampServer アイコンを (左) 1 回クリックし、PHP -> PHP 設定 -> 短い開始タグを選択します。しばらく待つと、WampServer が PHP とその Web サービスを自動的に再起動します。

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

于 2012-09-21T15:26:17.450 に答える
5
; 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
于 2014-01-09T11:38:42.843 に答える
1

Windowsでxamppを使用している場合は、次のことを行ってください

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

ctrl+f ユーティリティを使用して short_open_tag を見つけます

あなたは見つけるでしょう;short_open_tag

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

そしてそのままにしておくshort_open_tag = on

最後に、Apache サーバーを再起動します。

于 2014-11-21T09:11:33.303 に答える
1
sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php/7.2/apache2/php.ini

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

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

于 2018-07-18T00:56:23.793 に答える
1

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

于 2013-12-04T05:33:51.583 に答える
0

Docker の場合、このステップを Dockerfile に追加します。

  ARG phpIniPath=/path/to/your/php.ini

  RUN sed -i -e 's/^short_open_tag\s*=.*/short_open_tag = On/' $phpIniPath  
于 2021-01-27T16:21:13.007 に答える
-2

aws centos 7 インスタンスと php7(PHP 7.0.33 (cli) (built: 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
于 2019-04-26T08:57:08.807 に答える
-5

両方のファイルに とasp_tags = Onを設定してから 、Apache サーバーを再起動します。short_open_tag = On\apache\Apache2.2.21\bin\php.ini\bin\php\php5.3.8\php.ini

于 2012-03-14T07:20:53.773 に答える