it-swarm.com.ru

Как включить PHP короткие теги?

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

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

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

Спасибо

298
seedg

Задавать

short_open_tag=On

в php.ini

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

522
codaddict

Это можно сделать, включив 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

75
RJD22

Это можно сделать, включив 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

Спасибо

19
user2086641

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

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

Я вижу, что все ответы выше являются только частично правильными. В действительности все приложения 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
12
Eddy Ferreira

Так же просто, как это, выполните следующие действия:

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

итак, short_open_tag = On

10
Suresh KUMAR Mukhiya

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

short_open_tag = On
10
Jage

В 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
9
XakRu

Если вы используете 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-файлам непосредственно на сервере.
7
Vladas Freimanas

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

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 -> short open tag. Подождите секунду, затем WampServer автоматически перезапустит ваш PHP, а также его веб-сервис.

родом из: http://osticket.com/forums/showthread.php?t=3149

5
Reza Ameri

Если вы используете xampp в Windows, пожалуйста, сделайте следующее

  1. Откройте панель управления XAMPP.
  2. Нажмите на кнопку CONFIG.
  3. Перейдите к параметру PHP (php.ini).

Найти short_open_tag с помощью утилиты ctrl + f

Вы найдете ;short_open_tag

удалите точку с запятой (;) из строки.

и сохраните его как short_open_tag = on

Наконец, перезагрузите сервер Apache

1
Praful Rajput

при использовании xampp вы заметите, что файл php.ini дважды упомянул short_open_tag. Включите второй для short_open_tag = On. Первый закомментирован, и у вас может возникнуть желание раскомментировать и отредактировать его, но он перезаписывается вторым short_open_tag

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

Это работает на php7.2 в Ubuntu 16, тот же ответ, что и выше, Брэдли Флуд, хотя каталог, в котором хранится файл конфигурации, изменился.

Также вы можете изменить версию в строке php, чтобы она соответствовала вашей установленной версии.

0
Raymie

Я изменил значение short_open_tag на "Вкл" на моем экземпляре aws centos 7 и php7 (PHP 7.0.33 (cli) (построено: 6 декабря 2018 22:30:44) (NTS)), но оно не отражает информационную страницу 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

Чтобы включить short_open_tag для определенного домена с php-fpm, вы должны отредактировать:

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

Где xxxxx - номер сокета домена.

И добавьте: php_value [short_open_tag] = вкл

0
contremaitre