PHP short_open_tag não habilita (CentOS 6)

3

Estou configurando um servidor Apache2, PHP 5.3.3 em execução no CentOS 6. Meu aplicativo da web usa as tags curtas <? e <?= . Não consigo obter as tags curtas ativadas. Quando executo phpinfo() , vejo short_open_tag = off , mas em /etc/php.ini eu tenho isso: short_open_tag = on (e sim, reiniciei o servidor).

Eu também tentei usar <?php ini_set('short_open_tag','1'); ?> no início de uma página e ainda não analisa código em tags curtas.

A única coisa em que consigo pensar é que há outro arquivo php.ini em algum lugar que está sendo usado em vez de, ou sobrepondo aquele em /etc/php.ini .

Algum conselho?

    
por brack 03.09.2012 / 20:56

5 respostas

2

Eu tenho um sistema CentOS 6.3 razoavelmente padrão com PHP 5.3.3 para entregar e ele funciona como esperado. Alterar o valor de short_open_tags em /etc/php.ini e reiniciar o serviço httpd simplesmente funciona.

O PHP também lê os arquivos em /etc/php.d , então verifique se ele não está sendo substituído em um deles.

Se você quiser verificar outros arquivos php.ini então

find / -name php.ini 

Um pouco mais de informação, o valor de short_open_tag também pode ser definido em um arquivo .htaccess

php_value short_open_tag On
    
por 03.09.2012 / 21:52
2

Provavelmente, você tem eAccelerator ou algo semelhante ativado. As páginas pré-compiladas não são processadas, portanto basta limpar o cache do eAccelerator ou desinstalar o eAccelerator (feio), reiniciar o Apache, reinstalar o eAccelerator, reiniciar o Apache.

    
por 22.10.2012 / 22:10
1

Certifique-se também de que

  • nenhum arquivo .htaccess no caminho para o seu script contém short_open_tag diretiva que pode estar em conflito (no meu caso, esse arquivo no diretório de nível superior era a fonte do problema)
por 29.08.2013 / 08:39
0

Eu posso ver todas as respostas acima estão parcialmente corretas apenas. Na realidade, todos os aplicativos PHP do século XXI terão o FastCGI Process Manager (php-fpm), assim que você tiver adicionado php-info () ao seu script test.php e verificado o caminho correto para o php.ini

Go to php.ini and set short_open_tag = On

IMPORTANTE: então você deve reiniciar seu processo php-fpm para que isso funcione!

sudo service php-fpm restart

e, finalmente, reinicie seu servidor nginx / http

sudo service nginx restart
    
por 03.07.2014 / 13:01
0

em centos6 /etc/php.ini deve ser o local, certifique-se de que ele não esteja definido várias vezes no arquivo.

Por padrão, há a descrição da tag em uma seção "Referência rápida":

; short_open_tag
;   Default Value: On
;   Development Value: Off
;   Production Value: Off

não adicione a tag como é definido posteriormente em uma seção "Opções de idioma" (que substituiria sua configuração):

; This directive determines whether or not PHP will recognize code between
; <? and ?> tags as PHP source which should be processed as such. It's been
; recommended for several years that you not use the short tag "short cut" and
; instead to use the full <?php and ?> tag combination. With the wide spread use
; of XML and use of these tags by other languages, the server can become easily
; confused and end up parsing the wrong code in the wrong context. But because
; this short cut has been a feature for such a long time, it's currently still
; supported for backwards compatibility, but we recommend you don't use them.
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://www.php.net/manual/en/ini.core.php#ini.short-open-tag
short_open_tag = Off
    
por 23.06.2015 / 16:38