我在Linux服务器上有一个web应用程序,以<?
我需要将这个应用程序复制到windows环境中,一切工作正常,除了SQL语句呈现不同。我不知道这是否与以<?用PHP代替<?因为我不知道从哪里启用<?所以我把它改为<?php
我知道这两个语句应该是相同的,但我需要用<?以确保应用完全相同。这样我就可以排除另一种可能性。
谢谢
我在Linux服务器上有一个web应用程序,以<?
我需要将这个应用程序复制到windows环境中,一切工作正常,除了SQL语句呈现不同。我不知道这是否与以<?用PHP代替<?因为我不知道从哪里启用<?所以我把它改为<?php
我知道这两个语句应该是相同的,但我需要用<?以确保应用完全相同。这样我就可以排除另一种可能性。
谢谢
当前回答
在CentOS 6中(在CentOS 7上也进行了测试),您不能在/etc/php.ini中为php-fpm设置short_open_tag。 你会有错误:
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
其他回答
如果您编辑了php.ini文件,请记得重新启动服务(apache2等),以便对php.ini的编辑生效
; 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
要使用php-fpm为特定的域启用short_open_tag,您必须编辑:
/etc/php5/fpm/pool.d/xxxxx.conf
其中xxxxx为域的套接字号。
add: php_value[short_open_tag] = On
sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php/7.2/apache2/php.ini
这适用于ubuntu 16上的php7.2,与上面Bradley Flood的答案相同,尽管存储配置文件的目录已经改变了。
此外,您还可以更改php字符串中的版本以匹配当前安装的版本。
在Ubuntu上设置从Vagrant安装脚本打开短标签:
sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php5/apache2/php.ini