Comment activer les balises courtes PHP?
J'ai une application web sur un serveur Linux qui commence par <?
J'avais besoin de copier cette application dans un environnement windows et tout fonctionne bien sauf qu'une instruction SQL est rendue différemment. Je ne sais pas si cela a à voir avec le script commençant par <?php
au lieu de <?
, car je ne sais pas d'où activer le <?
de la PHP.ini
, donc je l'ai changé pour <?php
Je sais que ces 2 déclarations sont censées signifier la même chose mais j'ai besoin pour le tester avec <?
afin de s'assurer que l'application est exactement le même. De cette façon, je peux éliminer une autre possibilité.
Merci
18 réponses
Cela peut être fait par l'activation short_open_tag dans php.ini :
short_open_tag = on
Si vous n'avez pas accès au php.ini vous pouvez essayer de les activer à travers le .htaccess Fichier mais il est possible que la société d'hébergement désactivé si vous êtes sur l'hébergement partagé:
php_value short_open_tag 1
Pour les personnes qui pensent que short_open_tags sont de mauvaises pratiques à partir de php 5.4, le <?= ... ?>
shorttag sera supporté partout , quels que soient les paramètres, il n'y a donc aucune raison de ne pas 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 en php.ini:
1.To localisez php.fichier ini,sur la ligne de commentaire exécuter
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 la 2ème ligne de la sortie du commentaire.Le fichier sera dans le chemin spécifié.
2.Ouvrez php.fichier ini et trouver short_open_tag
. Par défaut, il est dans off
modifier pour 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 sur 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 sont partiellement correctes seulement. En réalité, toutes les applications PHP du 21ème siècle auront FastCGI Process Manager (php-fpm) donc une fois que vous avez ajouté php-info () dans votre test.script php et vérifié le chemin correct pour php.ini
Go to php.ini and set short_open_tag = On
IMPORTANT: alors vous devez redémarrer votre processus php-fpm pour que cela puisse fonctionner!
sudo service php-fpm restart
Et enfin redémarrez votre serveur Nginx / http
sudo service nginx restart
Aussi simple que cela, suivez les étapes suivantes:
- aller à php.fichier ini
- trouvez, 'short_open_tag' et définissez-le sur on,
- Redémarrez le serveur
Donc, short_open_tag = Le
Dans CentOS 6 (testé aussi 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 se trouve dans /etc / php-fpm.d / www.conf Et écrire à la fin du fichier:
php_value[short_open_tag] = On
Si vous modifiez votre php.fichier ini, n'oubliez pas de redémarrer votre service (apache2, etc) pour les modifications de php.ini à prendre effet
Si vous utilisez Ubuntu
avec Apache+php5
, puis sur les versions actuelles il y a 2 endroits où vous avez besoin de changer de short_open_tag = On
-
/etc/php5/apache2/php.ini
- Ceci est pour 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, comme:php yourscript.php
- cela vaut pour les fichiers PHP exécutés manuellement ou cronjob directement sur le serveur.
Pour les utilisateurs du serveur Wamp, il existe un moyen plus simple: Vous pouvez activer ce paramètre simplement (à gauche) cliquez une fois sur L'icône WampServer, choisissez PHP - > paramètres PHP - > balise ouverte courte. Attendez une seconde, puis WampServer redémarrera automatiquement votre PHP et aussi son service web.
Originaire de: http://osticket.com/forums/showthread.php?t=3149
; 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
Si vous utilisez xampp, vous remarquerez le php.le fichier ini a mentionné deux fois short_open_tag . Activez le second sur short_open_tag = On . Le premier est commenté et vous pourriez être tenté de le décommenter et de le modifier, mais il est surchargé par un second short_open_tag
Si vous utilisez xampp sous windows, veuillez suivre
- Ouvrez le panneau de configuration XAMPP.
- Cliquez sur le bouton CONFIG.
- Aller à PHP (php.ini) option.
Trouvez short_open_tag en utilisant l'utilitaire ctrl + f
Vous trouverez ;short_open_tag
Veuillez supprimer le point-virgule (;) de la ligne.
Et gardez-le comme short_open_tag = on
Enfin, redémarrez votre serveur Apache
Pour activer short_open_tag pour un domaine particulier avec php-fpm, vous devez modifier :
/etc/php5/fpm/pool.d / xxxxxxxxxx.conf
Où xxxxx est le numéro de socket du domaine.
Et d'ajouter : php_value[short_open_tag] = Le
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 changer la version dans la chaîne php pour correspondre à votre version actuellement installée.
short_open_tag = On
Dans php.ini
Et redémarrez votre serveur Apache.
Définir la asp_tags = On
et short_open_tag = On
dans les deux fichiers \apache\Apache2.2.21\bin\php.ini
et \bin\php\php5.3.8\php.ini
, puis redémarrez le serveur apache.