[英]How to enable PHP short tags?
我在 Linux 服务器上有一个以<?
我需要将此应用程序复制到 Windows 环境中,并且一切正常,只是 SQL 语句的呈现方式不同。 我不知道这是否与以<?php
而不是<?
因为我不知道从哪里启用<?
从PHP.ini
所以我把它改成<?php
我知道这两个语句应该是相同的,但我需要用<?
以确保应用程序完全相同。 这样我就可以排除另一种可能性。
谢谢
这可以通过在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
这可以通过在 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 行。该文件将位于上述路径中。
2.打开 php.ini 文件,找到short_open_tag
。 默认情况下,它处于off
将其更改为on
。
3.重启服务器,执行此注释
service httpd restart
谢谢
要在 Ubuntu 上设置从 Vagrant 安装脚本打开的短标签:
sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php5/apache2/php.ini
我可以看到以上所有答案仅部分正确。 实际上,所有 21 世纪 PHP 应用程序都将具有 FastCGI 进程管理器(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
重启服务器
你需要打开short_open_tags。
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 设置 -> 短打开标记。 稍等片刻,WampServer 将自动重启您的 PHP 及其 Web 服务。
如果您编辑了 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 覆盖
如果您在 Windows 中使用 xampp,请执行以下操作
使用 ctrl+f 实用程序查找 short_open_tag
你会发现;short_open_tag
请从行中删除分号(;) 。
并将其保持为short_open_tag = on
最后,重启你的 Apache 服务器
sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php/7.2/apache2/php.ini
这适用于 ubuntu 16 上的 php7.2,与 Bradley Flood 的上述答案相同,尽管存储配置文件的目录已更改。
您也可以更改 php 字符串中的版本以匹配您当前安装的版本。
您可以按照以下步骤操作:
1-> 转到/etc/php/7.3/apache2
或PHP version
php.ini
文件,然后
2-> 找到short_open_tag
并将其设置为On
并删除;
从开始。
short_open_tag = On
3-> 重启服务器
sudo service apache2 restart
对于 docker,将此步骤添加到 Dockerfile
ARG phpIniPath=/path/to/your/php.ini
RUN sed -i -e 's/^short_open_tag\s*=.*/short_open_tag = On/' $phpIniPath
要使用 php-fpm 为特定域启用 short_open_tag,您必须编辑:
/etc/php5/fpm/pool.d/xxxxxxxxxx.conf
其中 xxxxx 是域的套接字号。
并添加: php_value[short_open_tag] = On
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 信息页面和代码。 所以我参考了可能的文档并找到了我的案例的解决方案。 在 short_open_tag 之后添加额外的一行 as 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
在文件\\apache\\Apache2.2.21\\bin\\php.ini
和\\bin\\php\\php5.3.8\\php.ini
设置asp_tags = On
和short_open_tag = On
,然后重新启动apache 服务器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.