<?
で始まるLinuxサーバー上のWebアプリケーションがあります。
私はこのアプリケーションをWindows環境にコピーする必要がありました、そして、SQLステートメントが異なってレンダリングされていることを除いて、すべてがうまく働いています。 <?php
から<?
を有効にする場所がわからないので、これが<?
ではなくPHP.ini
で始まるスクリプトと関係があるかどうかわかりませんので、<?php
に変更しました
これら2つのステートメントは同じ意味であることを前提としていますが、アプリケーションがまったく同じであることを確認するために<?
でテストする必要があります。こうすれば、私は別の可能性を排除することができます。
ありがとう
これは 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
これは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
ありがとう
UbuntuのVagrantインストールスクリプトから短いタグを開くように設定するには、次の手順を実行します。
sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php5/Apache2/php.ini
上記の答えはすべて部分的にしか正しいとは言えません。実際にはすべての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
それと同じくらい簡単に、以下のステップに従ってください。
そのため、short_open_tag = On
あなたはshort_open_tagsをオンにする必要があります。
short_open_tag = On
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
あなたがApache+php5
と一緒にUbuntu
を使っているならば、現在のバージョンであなたがshort_open_tag = On
に変える必要がある2つの場所があります
/etc/php5/Apache2/php.ini
- これはあなたのWebサーバーを通してロードされたページのためのものです(Apache)/etc/php5/cli/php.ini
- この設定は、コマンドラインからphpファイルを起動するときに使用されます。php yourscript.php
- 手動またはcronjobで実行されるphpファイルを直接サーバー上で実行します。php.iniファイルを編集した場合は、php.iniの編集内容を有効にするために、必ずサービス(Apache 2など)を再起動してください。
; 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
Wamp Serverユーザーにとってはより簡単な方法があります:その設定を有効にするには、WampServerアイコンを左クリックし、PHP - > PHP settings - >短いタグを開きます。少し待つと、WampServerは自動的にあなたのPHPとそのWebサービスを再起動します。
あなたがウィンドウズでxamppを使っているならば、以下をしてください
Ctrl + fユーティリティを使ってshort_open_tagを見つける
;short_open_tag
が見つかります
行からセミコロン (;) を削除してください。
そしてshort_open_tag = on
のようにそれを保ちます
最後に、Apacheサーバーを再起動してください。
xamppを使用している場合、php.iniファイルにshort_open_tagが2回記載されていることに気付くでしょう。 2番目のものを有効にしてshort_open_tag = Onにします。最初のものはコメントアウトされているので、コメントを外して編集したくなるかもしれませんが、2番目のshort_open_tagによってオーバーライドされています。
sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php/7.2/Apache2/php.ini
設定ファイルが保存されているディレクトリは変更されていますが、これはubuntu 16上のphp7.2で機能します。BradleyFloodによる上記と同じ答えです。
現在インストールされているバージョンと一致するようにphp文字列のバージョンを変更することもできます。
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
Php-fpmで特定のドメインのshort_open_tagを有効にするには、編集しなければなりません:
/etc/php5/fpm/pool.d/xxxxxxxxxx.conf
Xxxxxはドメインのソケット番号です。
そして追加:php_value [short_open_tag] = On