Как включить короткие теги PHP?
у меня есть веб-приложение на сервере Linux, который начинается с <?
мне нужно было скопировать это приложение в среду windows, и все работает нормально, за исключением того, что оператор SQL отображается по-другому. Я не знаю, связано ли это со скриптом, начинающимся с <?php
вместо <?
потому что я не знаю, откуда включить <?
с PHP.ini
поэтому я изменил его, чтобы <?php
Я знаю, что эти 2 высказывания должно означать то же самое, но мне нужно проверить его с <?
для того, чтобы убедиться, что приложение точно такое же. Таким образом, я могу исключить еще одну возможность.
спасибо
18 ответов
Это можно сделать, включив 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
Как просто, как это, выполните следующие действия:
- перейти к php.ini-файл
- найти 'short_open_tag' и установить его на,
- перезагрузить сервер
Так, 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
-
/etc/php5/apache2/php.ini
- это для страниц, загруженных через веб-сервер (Apache) -
/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, пожалуйста, выполните следующие действия
- Откройте Панель управления XAMPP.
- нажмите на кнопку CONFIG.
- перейти к 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 в соответствии с установленной версией.
установить asp_tags = On
и short_open_tag = On
в файлы \apache\Apache2.2.21\bin\php.ini
и \bin\php\php5.3.8\php.ini
а затем перезапустите сервер apache.