2011-01-03 4 views
6

Ci sono alcuni tutorial che spiegano come sovrascrivere la configurazione di PHP quando è in esecuzione in modalità CGI. Ma sono ancora confuso perché molti di loro presumono che il server stia girando su Linux. Mentre ho bisogno di fare quello anche su Windows.Come eseguire l'override della configurazione di PHP durante l'esecuzione in modalità CGI

Il mio hosting utilizza effettivamente Linux, ma il mio computer di sviluppo locale utilizza Windows XP con Xampp 1.7.3. Quindi devo prima farlo sul mio computer locale, poi voglio cambiare la configurazione sul server di hosting.

Il PHP nel mio server di hosting è già eseguito come CGI mentre nel mio computer locale ancora eseguito come modulo Apache.

A questo punto, i processi che ho capito sono:

  1. Change PHP per lavorare in modalità CGI. Ho fatto questo commentando questi due linea in "httpd-xampp.conf":

    # LoadFile "C:/xampp/php/php5ts.dll"
    # LoadModule php5_module modules/php5apache2_2.dll

  2. mio PHP è ora in esecuzione come CGI. Ho controllato questo con phpinfo(). Mi dice che l'API del server è ora CGI/FastCGI. Ora voglio sovrascrivere la configurazione di php.

  3. Creare la directory "cgi-bin" in DocumentRoot. My DocumentRoot è in "D: \ www \" (sto usando apache con l'host virtuale). Quindi ora è "D: \ www \ cgi-bin".

  4. modificare il valore predefinito "cgi-bin" Impostazioni della directory di "C:/xampp/cgi-bin /" a "D: \ www \ cgi-bin":

    ScriptAlias /cgi-bin/ "D:/www/cgi-bin/"

    <Directory "D:\www\cgi-bin"> 
        Options MultiViews Indexes SymLinksIfOwnerMatch Includes ExecCGI 
        AllowOverride All 
        Allow from All 
    </Directory> 
    
  5. Copia il file "php.ini" in "D: \ www \ cgi-bin" e modifica l'impostazione upload_max_filesize da 128M a 10M.

  6. Creare file 'php.cgi' in "D: \ www \ cgi-bin" e mettere questi codice all'interno del file:

    #!/bin/sh
    /usr/local/cpanel/cgi-sys/php5 -c /home/user/public_html/cgi-bin/

Questo è tutto. Sono bloccato a questo punto. Tutti i tutorial mi dicono di creare il file "php.cgi" e inserire il codice shell all'interno del file.

Come eseguire il 6 ° passaggio su Windows? So che il prossimo passo è creare un gestore nel file .htaccess per caricare quel file "php.cgi".

E inoltre, poiché dovrò anche cambiare la configurazione di PHP sul mio server di hosting (Linux), è il sesto passo sopra a destra? Alcuni tutorial dicono di inserire queste righe anziché sopra:

#!/bin/sh 
export PHPRC=/site/ini/1 
exec /cgi-bin/php5.cgi 

Mi dispiace se la mia domanda non è chiara.Sono un nuovo membro e questa è la mia prima domanda in questo sito.

Grazie.

+0

Hai visto questo? http://www.php.net/manual/en/install.windows.php#60737 – crnlx

+0

Domanda ben scritta. Comunque nel punto (2) è molto probabile che tu stia configurando il modulo apache PHP, non un interprete CGI. Quindi ulteriori passaggi di configurazione CGI sembrano ridondanti. Basta controllare nuovamente phpinfo() per vedere dove si aspetta che risieda il php.ini, e usarlo. Le tue impostazioni non vengono prese, a meno che tu non riavvii Apache (perché usa mod_php). Inoltre, mi permetta di disapprovare rapidamente l'utilizzo di Windows .. – mario

+0

Mi dispiace non capisco. Intendete al punto (1) ho già cambiato PHP per lavorare in CGI, quindi al punto (2) torno al modulo apache? –

risposta

1

Se sul server è già in esecuzione PHP come cgi e non è necessario eseguire più configurazioni PHP, i passaggi 5 e 6 non sono necessari. Basta cambiare il php.ini predefinito

+0

Sì, so che potremmo modificare direttamente il file php.ini predefinito. Ma non possiamo farlo sul server di hosting. –

+0

Non c'è un modo infallibile per influenzare la configurazione php su un server di hosting (presumo che si stia parlando di un host di terze parti.) Alcuni host lo impediscono completamente. Altri ti permettono di avere il tuo file php.ini in una certa posizione. Altre consentono modifiche tramite il file .htaccess, ad es. php_value upload_max_filesize 10M –

+0

Sì Svemir. Sto usando un host di terze parti. In realtà ho scritto alcune configurazioni di php in .htaccess. Ma non funziona perché il mio server di hosting imposta PHP per funzionare in modalità CGI. –

Problemi correlati