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

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

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

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

спасибо

18 ответов


Set

short_open_tag=On

на php.ini

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


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

short_open_tag = on

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

php_value short_open_tag 1

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


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

1.Чтобы найти php.ini-файл, в строке комментария execute

 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

спасибо


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

sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php5/apache2/php.ini

Я вижу, что все ответы выше частично верны только. На самом деле все приложения 21st Century PHP будут иметь FastCGI Process Manager(php-fpm), поэтому, как только вы добавили php-info() в свой тест.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

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

short_open_tag = On

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

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

Так, short_open_tag = On


в 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

вы должны отредактировать config для своего сайта, который можно найти в /etc/php-fpm.д/ВСП.conf И напишите в конце файла:

php_value[short_open_tag] =  On

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


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

для пользователей сервера Wamp есть более простой способ: Вы можете включить эту настройку просто (слева) нажмите один раз на значок WampServer, выберите PHP -> PHP settings -> short open tag. Подождите секунду, затем WampServer автоматически перезапустит ваш PHP, а также его веб-сервис.

первоначально от:http://osticket.com/forums/showthread.php?t=3149


; 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

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


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

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

найти short_open_tag с помощью ctrl+f utility

вы нашли ;short_open_tag

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

и short_open_tag = on

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


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

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

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

и добавить: php_value[short_open_tag] = On


sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php/7.2/apache2/php.ini

это работает на php7.2 на ubuntu 16 тот же ответ, что и выше, от Bradley Flood, хотя каталог, в котором хранится файл конфигурации, изменился.

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


 short_open_tag = On

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


установить asp_tags = On и short_open_tag = On в файлы \apache\Apache2.2.21\bin\php.ini и \bin\php\php5.3.8\php.ini а затем перезапустите сервер apache.