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

<p>у меня есть веб-приложение на сервере linux, которое начинается с <code><?</code></p><p>мне нужно было скопировать это приложение в среду windows, и все работает нормально, за исключением того, что оператор sql отображается по-другому. я не знаю, имеет ли это отношение к сценарию, начинающемуся с <code><?php</code> вместо <code><?</code>, потому что я не знаю, откуда включить <code><?</code> из <code>php.ini</code>, поэтому я изменил его на <code><?php</code></p><p>я знаю, что эти 2 утверждения должны означать одно и то же, но мне нужно проверить его с помощью <code><?</code>, чтобы убедиться, что приложение точно такое же. таким образом, я могу исключить еще одну возможность.</p><p>спасибо</p>

<p>задавать</p><pre><code>short\_open\_tag=on </code></pre><p>в <a href="http://php.net/manual/en/ini.core.php">php.ini</a> </p><p>и перезапустите свой сервер apache.</p>

<p>это можно сделать, включив <a href="http://www.php.net/manual/en/ini.core.php#ini.short-open-tag">short\_open\_tag</a> в <strong> php.ini </strong>:</p><pre><code>short\_open\_tag = on </code></pre><p>если у вас нет доступа к php.ini, вы можете попытаться включить их через файл <strong>. htaccess </strong>, но возможно, хостинговая компания отключила это, если вы находитесь на виртуальном хостинге:</p><pre><code>php\_value short\_open\_tag 1 </code></pre><p>для людей, которые думают, что short\_open\_tags - это плохая практика <strong>, начиная с php 5.4, ярлык <code><?= ... ?></code> будет поддерживаться везде </strong>, независимо от настроек, поэтому нет причин не использовать их, если вы можете контролировать настройки на сервере. также сказано в этой ссылке: <a href="http://www.php.net/manual/en/ini.core.php#ini.short-open-tag">short\_open\_tag</a> </p>

<p>это можно сделать, включив short\_open\_tag в php.ini:</p><p>1. чтобы найти файл php.ini, в строке комментария выполните</p><pre><code> php --ini </code></pre><p>вы получите что-то подобное,</p><pre><code>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 </code></pre><p>смотрите вторую строку из вывода комментария. файл будет по указанному пути.</p><p>2. откройте файл php.ini и найдите <code>short\_open\_tag</code>. по умолчанию это в <code>off</code> изменить его на <code>on</code>.</p><p>3. перезагрузите сервер, выполните этот комментарий</p><pre><code>service httpd restart </code></pre><p>спасибо</p>

<p>чтобы настроить короткие теги для открытия из сценария установки vagrant в ubuntu:</p><pre><code>sed -i "s/short\_open\_tag = .*/short\_open\_tag = on/" /etc/php5/apache2/php.ini </code></pre>

<p>я вижу, что все ответы выше являются только частично правильными. в действительности все приложения 21-го века php будут иметь диспетчер процессов fastcgi (php-fpm), поэтому после добавления php-info () в сценарий test.php и проверки правильного пути для php.ini</p><pre><code>go to php.ini and set short\_open\_tag = on </code></pre><p>важно: тогда вы должны перезапустить процесс php-fpm, чтобы это работало!</p><pre><code>sudo service php-fpm restart </code></pre><p>и, наконец, перезапустите сервер nginx/http</p><pre><code>sudo service nginx restart </code></pre>

<p>так же просто, как это, выполните следующие действия:</p><ol> <li>перейти к файлу php.ini</li> <li>найдите "short\_open\_tag" и включите его,</li> <li>перезагрузите сервер</li> </ol><p>итак, short\_open\_tag = on</p>

<p>вам нужно включить short\_open\_tags.</p><pre><code>short\_open\_tag = on </code></pre>

<p>в centos 6 (также протестирован на centos 7) вы не можете установить short\_open\_tag в /etc/php.ini для php-fpm. вы будете иметь ошибку:</p><pre><code>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 </code></pre><p>вы должны отредактировать конфигурацию для вашего сайта, которую можно найти в /etc/php-fpm.d/www.conf и написать в конце файла:</p><pre><code>php\_value[short\_open\_tag] = on </code></pre>

<p>если вы используете <code>ubuntu</code> с <code>apache+php5</code>, то в текущих версиях есть 2 места, где вам нужно перейти на <code>short\_open\_tag = on</code></p><ol> <li><code>/etc/php5/apache2/php.ini</code> - это для страниц, загружаемых через ваш веб-сервер (apache)</li> <li><code>/etc/php5/cli/php.ini</code> - эта конфигурация используется, когда вы запускаете ваши php-файлы из командной строки, например: <code>php yourscript.php</code> - это относится к выполняемым вручную или cronjob php-файлам непосредственно на сервере.</li> </ol>

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

<pre><code>; 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 </code></pre>

<p>для пользователей wamp server есть более простой способ: вы можете включить эту настройку, просто (слева) один раз щелкнув по значку wampserver, выбрав php -> php settings -> short open tag. подождите секунду, затем wampserver автоматически перезапустит ваш php, а также его веб-сервис.</p><p>родом из: <a href="http://osticket.com/forums/showthread.php?t=3149">http://osticket.com/forums/showthread.php?t=3149</a> </p>

<p>если вы используете xampp в windows, пожалуйста, сделайте следующее</p><ol> <li>откройте панель управления xampp.</li> <li>нажмите на кнопку config.</li> <li>перейдите к параметру php (php.ini).</li> </ol><p>найти short\_open\_tag с помощью утилиты ctrl + f</p><p>вы найдете <code>;short\_open\_tag</code></p><p>удалите точку с запятой <strong>(;)</strong> из строки.</p><p>и сохраните его как <code>short\_open\_tag = on</code></p><p>наконец, перезагрузите сервер apache</p>

<p>при использовании xampp вы заметите, что файл php.ini дважды упомянул short\_open\_tag. включите второй для short\_open\_tag = on. первый закомментирован, и у вас может возникнуть желание раскомментировать и отредактировать его, но он перезаписывается вторым short\_open\_tag</p>

<pre><code>sed -i "s/short\_open\_tag = .*/short\_open\_tag = on/" /etc/php/7.2/apache2/php.ini </code></pre><p>это работает на php7.2 в ubuntu 16, тот же ответ, что и выше, брэдли флуд, хотя каталог, в котором хранится файл конфигурации, изменился.</p><p>также вы можете изменить версию в строке php, чтобы она соответствовала вашей установленной версии.</p>

<p>я изменил значение short\_open\_tag на "вкл" на моем экземпляре aws centos 7 и php7 (php 7.0.33 (cli) (построено: 6 декабря 2018 22:30:44) (nts)), но оно не отражает информационную страницу php и код. поэтому я ссылаюсь на документы и нахожу решение по моему делу. добавьте дополнительную строку после short\_open\_tag как <strong>asp\_tags = on</strong> после перезапуска apache. он работает с кодом, и я правильно вывожу вывод.</p><p>файл php.ini</p><blockquote> <pre><code>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 </code></pre></blockquote>

<p>чтобы включить short\_open\_tag для определенного домена с php-fpm, вы должны отредактировать:</p><blockquote> <p>/etc/php5/fpm/pool.d/xxxxxxxxxx.conf</p> </blockquote><p>где xxxxx - номер сокета домена.</p><p>и добавьте: php\_value [short\_open\_tag] = вкл</p>