Answers:
/etc/php5/apache2/php.ini
php --ini
定位加载配置文件(加载的配置文件:/etc/php5/cli/php.ini)
这可以通过在php.ini中启用short_open_tag来完成:
short_open_tag = on
如果您无权访问php.ini,则可以尝试通过.htaccess文件启用它们,但是如果您在共享主机上,则托管公司可能会禁用它:
php_value short_open_tag 1
对于那些认为short_open_tags 从php 5.4开始<?= ... ?>
是不好的做法的人,无论设置如何,shorttag都将受到支持,因此,如果您可以控制服务器上的设置,则没有理由不使用它们。在此链接中还说:short_open_tag
<? echo $var ?>
短标签,而是<?= $var ?>
短标签。Afaik XML不应该受到影响。
<?=
模板的最佳原因是模板,我认为这是一个相当有效的模板。其他模板语言(例如mustache)也使用简短的简短标签{{var}}
。PHP通常被用作模板语言,并且<?php echo $var ?>
比<?=$var?>
内联HTML 丑陋得多。
这可以通过在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
。默认情况下,off
将其更改为on
。
3.重新启动服务器,执行此注释
service httpd restart
谢谢
我可以看到以上所有答案仅部分正确。实际上,所有21世纪PHP应用程序都将具有FastCGI Process Manager(php-fpm),因此,一旦将php-info()添加到test.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
并将其设置为on
short_open_tag = On
重新启动服务器
在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
如果Ubuntu
与配合使用Apache+php5
,则在当前版本上,有2个地方需要更改为short_open_tag = On
/etc/php5/apache2/php.ini
-这是通过Web服务器(Apache)加载的页面的/etc/php5/cli/php.ini
-从命令行启动php文件时使用此配置,例如:php yourscript.php
-直接在服务器上手动执行或cronjob执行的php文件。对于Wamp Server用户,有一种更简单的方法:您可以简单地(左)在WampServer图标上单击一次启用该设置,然后选择PHP-> PHP settings-> short open tag。等待一秒钟,然后WampServer将自动重新启动PHP及其Web服务。
如果使用xampp,您会注意到php.ini文件两次提到了short_open_tag。启用第二个到short_open_tag = On。第一个被注释掉了,您可能会想取消注释和编辑它,但是第二个short_open_tag覆盖了它
如果您在Windows中使用xampp,请执行以下操作
使用ctrl + f实用工具查找short_open_tag
你会发现 ;short_open_tag
请删除分号(;)从行中。
并保持为 short_open_tag = on
最后,重新启动Apache服务器
short_open_tag = On
在php.ini
并重新启动您的Apache服务器。
我在aws centos 7实例和php7(PHP 7.0.33(cli)(built:Dec 6 2018 22:30:44)(NTS))上将short_open_tag从Off更改为On,但未反映php信息页面和代码。因此,我可以参考may docs并找到针对我的案例的解决方案。在short_open_tag之后在asp_tags = On之后添加额外的一行=重新启动Apache之后,它可以在代码上工作,并且我可以正确地输出
php.ini文件
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