Domanda

Ho un'applicazione web su un server Linux, che inizia con <?

Avevo bisogno di copiare questa applicazione per un ambiente Windows e tutto funziona bene, tranne che un'istruzione SQL viene eseguito il rendering in modo diverso. Non so se questo ha a che fare con lo script che inizia con <?php invece di <? perché non so da dove per abilitare il <? dalla PHP.ini quindi l'ho cambiato per <?php

Lo so che questi 2 affermazioni si suppone per indicare la stessa, ma ho bisogno di testare con <? al fine di garantire che l'applicazione è esattamente lo stesso. In questo modo posso eliminare un'altra possibilità.

Grazie

È stato utile?

Soluzione

Set

short_open_tag=On

php.ini

e riavviare il server Apache.

Altri suggerimenti

Questo può essere fatto consentendo short_open_tag in php.ini :

short_open_tag = on

Se non si ha accesso al php.ini si può provare a consentire loro attraverso il file .htaccess , ma è possibile la società di hosting disabilitato questo se siete su hosting condiviso:

php_value short_open_tag 1

Per le persone che pensano che short_open_tags sono cattiva pratica A partire da PHP 5.4 del shorttag <?= ... ?> sarà supportato in tutto il mondo , indipendentemente dalle impostazioni in modo non v'è alcuna ragione per non usarli se è possibile controllare le impostazioni di il server. ha anche detto in questo link: short_open_tag

Questo può essere fatto abilitando short_open_tag in php.ini:

1.To individuare file php.ini, sulla riga di commento eseguire

 php --ini

si otterrà qualche cosa come questa,

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

Vedere seconda riga dal file commento output.The sarà nel percorso indicato.

file php.ini 2.Open e trovare short_open_tag. Di default è nel cambiamento off a on.

3.Riavviare il server, eseguire questo commento

service httpd restart

Grazie

Per impostare i tag brevi per aprire da un vagabondo script di installazione su Ubuntu:

sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php5/apache2/php.ini

posso vedere tutte le risposte di cui sopra sono solo parzialmente corretta. In realtà tutte le 21 applicazioni PHP secolo avranno FastCGI Process Manager (php-FPM) in modo da una volta che avete aggiunto php-info () nello script test.php e controllato il percorso corretto per php.ini

Go to php.ini and set short_open_tag = On

IMPORTANTE: quindi è necessario riavviare il processo di php-fpm modo questo può funzionare

sudo service php-fpm restart

e infine riavviare il vostro nginx / http server

sudo service nginx restart

è necessario attivare lo short_open_tags.

short_open_tag = On

Per quanto semplice, come quello, seguire i seguenti passi:

  1. vai al file php.ini
  2. trova, 'short_open_tag' e impostarlo su ON,
  3. riavviare il server

così, short_open_tag = On

In CentOS 6 (testato su CentOS 7 troppo) non è possibile impostare short_open_tag in /etc/php.ini per php-fpm. Avrete errore:

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

È necessario modificare config per il vostro sito, che può trovare in /etc/php-fpm.d/www.conf E scrittura alla fine del file:

php_value[short_open_tag] =  On

Se si utilizza Ubuntu con Apache+php5, poi sulle versioni attuali ci sono 2 posti in cui è necessario cambiare per short_open_tag = On

  1. /etc/php5/apache2/php.ini - questo è per le pagine caricate attraverso il server web (Apache)
  2. /etc/php5/cli/php.ini - questa configurazione viene utilizzata quando si avvia i file PHP da linea di comando, come:. php yourscript.php - che va per la manualmente o cronjob file php eseguito direttamente sul server

se si modifica il file php.ini, ricordarsi di riavviare il servizio (apache2, ecc) per le modifiche al file php.ini per avere effetto

Per gli utenti di Wamp Server non c'è modo più semplice: Si può attivare tale impostazione semplicemente (a sinistra) clicca una volta sull'icona WampServer, scegliete PHP -> impostazioni PHP -> breve tag aperto. Attendere un secondo, poi WampServer si riavvia automaticamente il vostro PHP e anche il suo servizio web.

originario di: 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

se si utilizza XAMPP, si noterà il file php.ini è due volte menzionato short_open_tag. Attivare il secondo per short_open_tag = On. Il primo è commentato e si potrebbe essere tentati di commentare e modificare, ma che è finita-cavalcato da un secondo short_open_tag

Se si sta usando XAMPP in Windows, allora si prega di farlo seguendo

  1. Pannello di controllo Aprire XAMPP.
  2. Fare clic sul pulsante Config.
  3. Vai a PHP (php.ini) l'opzione.

Trova short_open_tag usando l'utility Ctrl + F

Si sarà trovato ;short_open_tag

rimuovere gentilmente il punto e virgola (;). dalla linea

e tenerlo come short_open_tag = on

Infine, riavviare il server Apache

Per abilitare short_open_tag per un determinato dominio con PHP-FPM, è necessario modificare:

  

/etc/php5/fpm/pool.d/xxxxxxxxxx.conf

dove xxxxx è il numero di socket del dominio.

E aggiungere: php_value [short_open_tag] = On

sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php/7.2/apache2/php.ini

che funziona su php7.2 su Ubuntu 16, stessa risposta di cui sopra da Bradley Flood, anche se la directory in cui è memorizzato il file di configurazione è stato modificato.

Inoltre è possibile modificare la versione nella stringa php per abbinare la versione attualmente installata.

 short_open_tag = On

in php.ini E riavviare il server Apache.

I'v cambiato lo short_open_tag OFF su ON miei AWS centos 7 istanza e php7 (PHP 7.0.33 (CLI) (costruita: 6 dicembre 2018 22:30:44) (NTS)), ma la sua non riflette la pagina info php e il codice. Così mi riferisco docs maggio e trovare una soluzione sul mio caso. Aggiungere una linea aggiuntiva dopo la short_open_tag come asp_tags = On , dopo che il riavvio di Apache Si lavora sul codice e vado l'uscita correttamente

file 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

Impostare il asp_tags = On e short_open_tag = On in entrambe le file \apache\Apache2.2.21\bin\php.ini e \bin\php\php5.3.8\php.ini e quindi riavviare il server Apache.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top