我在Linux服务器上有一个web应用程序,以<?
我需要将这个应用程序复制到windows环境中,一切工作正常,除了SQL语句呈现不同。我不知道这是否与以<?用PHP代替<?因为我不知道从哪里启用<?所以我把它改为<?php
我知道这两个语句应该是相同的,但我需要用<?以确保应用完全相同。这样我就可以排除另一种可能性。
谢谢
我在Linux服务器上有一个web应用程序,以<?
我需要将这个应用程序复制到windows环境中,一切工作正常,除了SQL语句呈现不同。我不知道这是否与以<?用PHP代替<?因为我不知道从哪里启用<?所以我把它改为<?php
我知道这两个语句应该是相同的,但我需要用<?以确保应用完全相同。这样我就可以排除另一种可能性。
谢谢
当前回答
如果你使用Ubuntu和Apache+php5,那么在当前版本中,有两个地方需要更改为short_open_tag = on
/etc/php5/apache2/php.ini -用于通过web服务器(Apache)加载的页面 /etc/php5/cli/php.ini—当您从命令行启动PHP文件时使用此配置,例如:PHP yourscript.php—用于手动或cronjob直接在服务器上执行PHP文件。
其他回答
如果您编辑了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
如果使用xampp,您将注意到php.ini文件两次提到了short_open_tag。启用第二个short_open_tag = On。第一个被注释掉了,您可能想取消注释并编辑它,但它被第二个short_open_tag覆盖了
这可以通过在php.ini中启用short_open_tag来实现:
1.要定位php.ini文件,在注释行执行
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.打开php.ini文件,找到short_open_tag。默认情况下它是关闭的,把它改为打开。
3.重新启动服务器,执行这条注释
service httpd restart
谢谢
我看到上面所有的答案都是部分正确的。 实际上,所有21世纪的PHP应用程序都有FastCGI进程管理器(PHP -fpm),所以一旦你在test.php脚本中添加了PHP -info(),并检查了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