J'ai une application Web sur un serveur Linux qui commence par <?
Je devais copier cette application dans un environnement Windows et tout fonctionne correctement, à l'exception du fait qu'une instruction SQL est rendue différemment. Je ne sais pas si cela concerne le script commençant par <?php
au lieu de <?
, car je ne sais pas d'où activer le <?
à partir de PHP.ini
donc je l'ai changé en <?php
Je sais que ces 2 instructions sont supposées vouloir dire la même chose, mais je dois le tester avec <?
afin de s’assurer que l’application est exactement la même. De cette façon, je peux éliminer une autre possibilité.
Merci
Cela peut être fait en activant short_open_tag dans php.ini :
short_open_tag = on
Si vous n'avez pas accès au fichier php.ini, vous pouvez essayer de l'activer via le fichier . Htaccess mais il est possible que la société d'hébergement l'ait désactivé si vous êtes sur l'hébergement mutualisé:
php_value short_open_tag 1
Pour les personnes qui pensent que short_open_tags sont une mauvaise pratique à partir de PHP 5.4, le <?= ... ?>
shorttag sera supporté partout , quels que soient les paramètres raison de ne pas les utiliser si vous pouvez contrôler les paramètres sur le serveur. Aussi dit dans ce lien: short_open_tag
Cela peut être fait en activant short_open_tag dans php.ini:
1.Pour localiser le fichier php.ini, exécuter la ligne de commentaire
php --ini
vous obtiendrez quelque chose comme ça,
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
Voir 2e ligne de la sortie du commentaire. Le fichier sera dans le chemin mentionné.
2.Ouvrez le fichier php.ini et trouvez short_open_tag
. Par défaut, il est dans off
changez-le en on
.
3. Redémarrez le serveur, exécutez ce commentaire
service httpd restart
Merci
Pour définir des balises courtes à ouvrir à partir d'un script d'installation Vagrant sous Ubuntu:
sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php5/Apache2/php.ini
Je peux voir que toutes les réponses ci-dessus ne sont que partiellement correctes. En réalité, toutes les applications 21st Century PHP auront FastCGI Process Manager (php-fpm). Une fois que vous avez ajouté php-info () dans votre script test.php et vérifié le chemin correct pour php.ini
Go to php.ini and set short_open_tag = On
IMPORTANT: vous devez ensuite redémarrer votre processus php-fpm pour que cela fonctionne!
Sudo service php-fpm restart
puis enfin redémarrez votre serveur nginx/http
Sudo service nginx restart
Aussi simple que cela, suivez les étapes suivantes:
oui, short_open_tag = On
vous devez activer short_open_tags.
short_open_tag = On
Dans CentOS 6 (testé également sur Centos 7), vous ne pouvez pas définir short_open_tag dans /etc/php.ini pour php-fpm. Vous aurez une erreur:
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
Vous devez modifier la configuration de votre site, qui peut être trouvée dans /etc/php-fpm.d/www.conf et écrire à la fin du fichier:
php_value[short_open_tag] = On
Si vous utilisez Ubuntu
avec _Apache+php5
_, dans les versions actuelles, vous devez remplacer 2 par _short_open_tag = On
_
/etc/php5/Apache2/php.ini
_ - ceci concerne les pages chargées via votre serveur Web (Apache)/etc/php5/cli/php.ini
_ - cette configuration est utilisée lorsque vous lancez vos fichiers php à partir de la ligne de commande, par exemple: _php yourscript.php
_ - pour les fichiers php exécutés manuellement ou par cronjob directement sur le serveur.si vous éditez votre fichier php.ini, pensez à redémarrer votre service (Apache2, etc.) pour que les modifications apportées à php.ini prennent effet
; 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
Pour les utilisateurs de Wamp Server, il existe un moyen plus simple: vous pouvez activer ce paramètre en cliquant simplement (gauche) sur l’icône WampServer, choisissez PHP -> PHP paramètres -> une balise ouverte courte. Attendez une seconde, puis WampServer redémarrera automatiquement votre PHP ainsi que son service Web.
originellement de: http://osticket.com/forums/showthread.php?t=3149
Si vous utilisez xampp dans Windows, veuillez suivre les instructions suivantes
Recherchez short_open_tag à l'aide de l'utilitaire ctrl + f
Vous trouverez ;short_open_tag
veuillez retirer le point-virgule (;) de la ligne.
et le garder comme short_open_tag = on
Enfin, redémarrez votre serveur Apache
si vous utilisez xampp, vous remarquerez que le fichier php.ini a mentionné à deux reprises short_open_tag. Activez le second pour short_open_tag = On. Le premier est mis en commentaire et vous pourriez être tenté de supprimer le commentaire et de le modifier, mais il est écrasé par un second short_open_tag.
sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php/7.2/Apache2/php.ini
Cela fonctionne sur php7.2 sur ubuntu 16, même réponse que ci-dessus par Bradley Flood, bien que le répertoire dans lequel le fichier de configuration est stocké ait changé.
Vous pouvez également modifier la version de la chaîne php pour qu'elle corresponde à la version actuellement installée.
I'v a changé le short_open_tag à On sur mon instance aws centos 7 et php7 (PHP 7.0.33 (cli) (version: déc 6 2018 22:30:44) (NTS)), mais cela ne reflète pas la page d'informations php et le code. Je me réfère donc peut-être à la documentation et trouve une solution à mon cas. Ajouter une ligne supplémentaire après short_open_tag comme asp_tags = On après le redémarrage d'Apache Cela fonctionne sur le code et je passe correctement la sortie
fichier 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
Pour activer short_open_tag pour un domaine particulier avec php-fpm, vous devez éditer:
/etc/php5/fpm/pool.d/xxxxxxxxxxx.conf
Où xxxxx est le numéro de socket du domaine.
Et ajoutez: php_value [short_open_tag] = On