Orion42 Blog

~IT made easy~

Computer e tecnologia Web e Internet

[Risolto] Easyphp fatal error include_path=’.;C:\php5\pear’

Mi è capitato di aver appena reinstallato Easyphp e mi sono accorto che se provavo ad eseguire un include/require in un file php mi veniva restituito un warning ed un fatal error :

Warning: require_once(mysite/_include/before_close_head.tpl) [function.require-once]: failed to open stream: No such file or directory in I:\EasyPHP\www\mysite\index.php on line 51Fatal error: require_once() [function.require]: Failed opening required ‘mysite/_include/before_close_head.tpl’ (include_path=’.;C:\php5\pear’) in I:\EasyPHP\www\mysite\index.php on line 51

In breve Easyphp non riusciva a trovare il file da includere perché sbaglia la directory base, andando a cercare erroneamente in “C:\php5\pear”.  Ora spiegherò come risolvere il problema.

Dobbiamo aprire il file di configurazione di php. Possiamo farlo o  cliccando col destro sull’icona del programma nella TrayIcon (quelle icone vicino all’orologio in basso a dx nella barra di avvio) e clicckiamo su configurazione e poi su php oppure andando nella cartella dove abbiamo installato easyphp, aprendo la cartella conf_files e quindi php.ini.

A questo punto cerchiamo nel file (modifica>trova/cerca)  la stringa include_path (di solito non è la prima occorrenza), finché non troviamo una porzione di codice simile a questa:

;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: “/path1:/path2”
;include_path = “.:/php/includes”
;
; Windows: “\path1;\path2”
;include_path = “.;${path}\php\includes”

; PHP’s default setting for include_path is “.;/path/to/php/pear”
; http://php.net/include-path

Nella penultima riga compare proprio quello che stavamo cercando :

; PHP’s default setting for include_path is “.;/path/to/php/pear”

ovvero l’impostazione predefinita per la cartella dell’include è “.;/path/to/php/pear”

Per tornare a far funzionare il tutto basta aggiungere una riga di codice;  per comodità la inserisco  subito sopra:

; Windows: “\path1;\path2” ;include_path = “.;${path}\php\includes”

include_path = “.;${path}\php\includes;I:\EasyPHP\www\”

; PHP’s default setting for include_path is “.;/path/to/php/pear”
; http://php.net/include-path

La riga inserita è quella in rosso ed è molto simile alla riga subito sopra, la quale indica la corretta sintassi per il comando da inserire. Il punto e virgola che compare all’inizio di alcune righe sta ad indicare che tutta la riga sarà ignorata, infatti il ; indica un commento.

La riga che abbiamo inserito indica alcuni possibili indirizzi dove andare a cercare i files, ognuno dei quali separati da un punto e virgola.

Ho inserito alcuni indirizzi tipici di alcune versioni di easyphp ed infine, e più importante, la cartella dove ho attualmente installato easy php che nel mio caso è proprio I:\EasyPHP\www\

Quindi nel vostro caso basta inserire una riga del tipo:

include_path = “.;${path}\php\includes;${path}\php5\pear\;Unitàdisco:\Cartella di installazione di EasyPHP\www

oppure solo

include_path = “.;Unitàdisco:\Cartella di installazione di EasyPHP\www

dove Unitàdisco:\Cartella di installazione di EasyPHP\www va sostituito con il percorso della cartella www all’interno della cartella dove avete installato easyphp, ad esempio “c:\Easyphp 5.3.0\www” oppure “d:\Easyphp\www .

Un ultima cosa: fate attenzione ad inserire correttamente il backslash “\” per separare le cartelle e non lo slash normale “/”.

3 COMMENTS

  1. Ciao ho seguito la tua guida ma non riesco a risolvere. La mia configurazione è questa.

    ;;;;;;;;;;;;;;;;;;;;;;;;;
    ; Paths and Directories ;
    ;;;;;;;;;;;;;;;;;;;;;;;;;

    ; UNIX: “/path1:/path2”
    ;include_path = “.:/php/includes”
    ;
    ; Windows: “\path1;\path2”

    ;include_path = “.;${path}\php\includes;C:Programmi(x86)\EasyPHP-12.1\www\”

    ;include_path = “.;C:\Programmi(x86)\EasyPHP-12.1\www\“

    è errata? grazie mille

    i warning che mi restituisce sono:
    Notice: Undefined index: Fsq in C:\Program Files (x86)\EasyPHP-12.1\www\rose.php on line 76

    Warning: include(fantam/sq.htm): failed to open stream: No such file or directory in C:\Program Files (x86)\EasyPHP-12.1\www\rose.php on line 77

    Warning: include(): in C:\Program Files (x86)\EasyPHP-12.1\www\rose.php on line 77

    • Mi sembra strano che ti indichi l’errore in
      C:\Program Files (x86)\EasyPHP-12.1\www\rose.php
      e non in
      localhost/rose.php
      127.0.0.1/rose.php
      Posso darti del consigli di base:
      1 – Ti da questo errore con tutti i files da includere ?
      2 – Stai visualizzando il file dall’host locale ? Che sistema operativo usi? Usi localhost o 127.0.0.1 ?
      3 – Utilizzi un include relativo o assoluto ?
      4 – Ricontrolla che il file esista e che non abbia errori all’intero, a limite mettilo prima nella stessa cartella e prova un include relativo

  2. perdonami quella corretta era:

    ;;;;;;;;;;;;;;;;;;;;;;;;;
    ; Paths and Directories ;
    ;;;;;;;;;;;;;;;;;;;;;;;;;
    ; UNIX: “/path1:/path2”
    ;include_path = “.:/php/includes”
    ;; Windows: “\path1;\path2”
    include_path = “.;${path}\php\includes;C:\Programmi(x86)\EasyPHP-12.1\www\”
    include_path = “.;C:\Programmi(x86)\EasyPHP-12.1\www\“

    aggiungo che in php non esiste la cartella includes

Rispondi