Как включить короткие теги PHP? - PullRequest
299 голосов
/ 02 февраля 2010

У меня есть веб-приложение на сервере Linux, которое начинается с <?

Мне нужно было скопировать это приложение в среду Windows, и все работает нормально, за исключением того, что оператор SQL отображается по-другому. Я не знаю, связано ли это со сценарием, начинающимся с <?php вместо <?, потому что я не знаю, откуда включить <? из PHP.ini, поэтому я изменил его на <?php

Я знаю, что эти 2 утверждения должны означать одно и то же, но мне нужно проверить его с помощью <?, чтобы убедиться, что приложение точно такое же. Таким образом, я могу исключить еще одну возможность.

Спасибо

Ответы [ 19 ]

526 голосов
/ 02 февраля 2010

Установить

short_open_tag=On

in php.ini

И перезапустите сервер Apache.

75 голосов
/ 02 февраля 2010

Это можно сделать, включив short_open_tag в php.ini :

short_open_tag = on

Если у вас нет доступа к php.ini, вы можете попытаться включить их через файл .htaccess , но возможно, что хостинговая компания отключила это, если вы используете общий хостинг:

php_value short_open_tag 1

Для людей, которые думают, что short_open_tags - плохая практика начиная с php 5.4 шорттаг <?= ... ?> будет поддерживаться везде , независимо от настроек, поэтому нет причин не использовать их, если вы можете управлять настройками на сервере. Также сказано в этой ссылке: short_open_tag

19 голосов
/ 26 августа 2013

Это можно сделать, включив short_open_tag в php.ini:

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. Откройте файл php.ini и найдите short_open_tag.По умолчанию он находится в off, измените его на on.

3. Перезагрузите сервер, выполните этот комментарий

service httpd restart

Спасибо

18 голосов
/ 16 января 2014

Чтобы настроить короткие теги для открытия из сценария установки Vagrant в Ubuntu:

sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php5/apache2/php.ini
12 голосов
/ 03 июля 2014

Я вижу все ответы, приведенные выше, только частично верны. На самом деле все приложения PHP 21-го века будут иметь FastCGI Process Manager (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
10 голосов
/ 02 февраля 2010

вам нужно включить short_open_tags.

short_open_tag = On
10 голосов
/ 10 февраля 2013

Так просто, выполните следующие шаги:

  1. перейти к файлу php.ini
  2. найдите, 'short_open_tag' и включите его
  3. перезагрузите сервер

так, short_open_tag = On

9 голосов
/ 07 ноября 2013

В CentOS 6 (также протестирован на Centos 7) вы не можете установить short_open_tag в /etc/php.ini для php-fpm. У вас будет ошибка:

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
7 голосов
/ 21 января 2015

Если вы используете Ubuntu с Apache+php5, то в текущих версиях есть 2 места, где вам нужно изменить на short_open_tag = On

  1. /etc/php5/apache2/php.ini - это для страниц, загружаемых через ваш веб-сервер (Apache)
  2. /etc/php5/cli/php.ini - эта конфигурация используется, когда вы запускаете ваши php-файлы из командной строки, например: php yourscript.php - это относится к выполняемым вручную или cronjob php-файлам непосредственно на сервере.
6 голосов
/ 27 апреля 2011

если вы редактируете файл php.ini, не забудьте перезапустить службу (apache2 и т. Д.), Чтобы изменения в php.ini вступили в силу

...