2016-03-11 18 views
5

Stiamo provando a passare da PHP5 a PHP7.phpinfo dice che il percorso php.ini è C: Windows ma non c'è php.ini lì

Ora abbiamo Apache installato e PHP funziona.

Tuttavia, le modifiche apportate nel file php.ini non hanno alcun effetto.

Via phpinfo() ci siamo resi conto che lo Configuration File (php.ini) Path è C:\Windows.

Nel nostro httpd.conf abbiamo:

# PHP7 setup 
LoadFile "C:/test/php/php7ts.dll" 
LoadModule php7_module "C:/test/php/php7apache2_4.dll" 
AddHandler php7-script .php 
PHPINIDir "C:/test/php" 

che capisco che si suppone faccia Apache cerca il php.ini in c:\test\php (slash sono utilizzati nella http.conf come è richiesto)

Non

capendo perché Apache non cerca php.ini dove lo diciamo, inseriamo lo php.ini in c:\Windows dove non è ancora stato letto (i moduli che carichiamo nello php.ini non sono caricati in phpinfo).

Ogni volta che apportiamo modifiche a php.ini o httpd.conf, riavviamo Apache con il monitor Apache.

Come possiamo dire ad Apache di leggere il file php.ini in una directory specifica diversa da quella che abbiamo provato sopra?

Addendum:

enter image description here

Abbiamo cambiato tutto torna a PHP5 e ora ottenere lo stesso errore, come nello screenshot qui sopra per cui il percorso PHP è. Dice che ora è PHP 5.6.0, quindi ovviamente sta caricando la nuova versione di PHP ma qualcosa è cambiato in modo che il file php.ini non venga letto in nessuna delle due versioni. (???)

Un riavvio non aiuta neanche.

+1

Può essere questo sarà utile https://www.howtoforge.com/how-to-specify-a-custom-php.ini-for-a-website-apache2-with-mod_php –

+0

provare a utilizzare PHPRC ? puoi specificare il percorso della directory contenente php.ini, non il percorso diretto al php.ini. Quindi ** export PHPRC =/test/php **. Spero che questo ti aiuti? – izk

+0

Sembra un po 'come un problema di cache durante l'esecuzione dello script 'phpinfo()' ... Assicurati di ricaricare in profondità il tuo browser o di disabilitare la cache per quello. – arkascha

risposta

2

Si può provare aggiungere slash

PHPINIDir "C:/test/php/" 

Da manual

Nota: Ricordate che quando si aggiungono i valori di percorso nei file di configurazione di Apache su Windows, tutti i backslash come ad esempio c: \ directory \ file.ext deve essere convertito in barre inverse: c: /directory/file.ext. Una barra finale può anche essere necessaria per le directory .

+0

Interessante commento sulla barra finale ... Non l'ho mai usato e nemmeno l'esempio sulla stessa pagina non usa ... Ma con PHP e Windows non si sa mai. –

+0

Ho provato 'PHPIniDir" C:/test/php/"' e 'PHPINIDir" C:/test/php/"' ma senza successo. È come se ignorasse questa linea. Se tolgo un'altra linea, ad es. 'LoadFile" C: /test/php/php5ts.dll "' o 'LoadModule php5_module" C: /test/php/php5apache2_4.dll "' allora PHP smette di funzionare, quindi so che Apache sta analizzando queste righe, sta semplicemente ignorando la linea 'PHPINIDir' per qualche motivo sembra. –

+0

E non si fa menzione di PHP in nessun'altra parte nel file 'httpd.conf', ad es. nessun'altra impostazione che sovrascrive questi. –