Home

"I'm brave but I'm chicken shit"

WordPress e PHP5

Utilizzando WordPress su hosting con PHP versione 5, ho incontrato problemi di funzionamento per alcuni plugin. Sono interessati soprattutto quelli consistenti in più file diversi. Il problema si manifesta con il mancato funzionamento del plugin e/o della sua pagina di configurazione.
A quanto ho capito, è dovuto alla diversa gestione dei path fra PHP4 e PHP5: quando i files esterni vengono chiamati, è necessario utilizzare il path esplicito.
Ad esempio

< ? php
include 'include/conf.php'
?>;

andrà sostituito con:


< ? php
include '/var/www/vhosts/andreabeggi.net/include/conf.php'
?>;

In alternativa si può usare:


< ? php
echo dirname(__FILE__);
?>

che restituisce il path assoluto.
A causa della mia incompetenza non riesco a modificare tutti i plugin che vorrei, perché alcuni hanno una struttura abbastanza complessa di funzioni nestate le une dentro le altre.
Soluzioni alternative? C’è qualche PHP übergeek là fuori?


Pubblicato

in

da

Tag:

Commenti

16 risposte a “WordPress e PHP5”

  1. Avatar ludo

    Uber non lo so, geek è probabile… spara 🙂

  2. Avatar Francesco

    allora era per questo che non funzionava il mio? 😀

  3. Avatar Dave

    Uhm… strana come cosa…

    provato a cambiare con ini_set le include_path aggiungendoci la root del sito ?

    http://it.php.net/manual/en/ini.core.php#ini.include-path

    Ciao
    Dave

  4. Avatar Daxeel

    Un poco OT: qualcuno usa WordPress 2.1.x con PHP 5.2.x senza problemi?
    A me wordpress 2.0.5 non andava con PHP 5.2.x . Vorrei sapere se hanno risolto visto che aggiornare PHP e poi ritornare alla vecchia versione è stato un po’ lungo…

  5. Avatar Davide Salerno

    Io non capisco perchè ho wp-cron che non mi esegue il backup automatico. Pensi che potrebbe essere un problema legato a WP e PHP5? Tutto il resto funge alla perfezione perchè mi sembra che dalla 2.0.7 in poi i problemi con PHP5 e anche Fast-CGI sono stati risolti.

    Ora se non erro con la 2.0.9 dovrebbero essere anche finiti i casini che c’erano con PHP 5.2 ma non ne sono sicuro.

  6. Avatar Dzamir

    Io in locale ho installato php5 e wp 2.1 e sembra girare tutto bene! Magari potresti dire quali sono i plugin che ti danno problemi, in modo che posso provare se succede anche a me.

  7. Avatar Rik

    non uso wordpress e non sono un esperto conoscitore di php, ma con php5 non ho mai usato una cosa del genere:
    include ‘/var/www/vhosts/andreabeggi.net/include/conf.php’
    ma solo
    include “folder/file.php”;

  8. Avatar GaretJax

    Io lo uso regolarmente su php5 sia in locale che sul server di prod e non da assolutamente problemi.

    La gestione dei path solo assoluti in php5 comunque non è assolutamente vera, probabilmente c’è un altro problema.
    Forse c’è un altro file nell’include_path che risponde a quell’indirizzo e carica quello al posto del file del plugin.

  9. Avatar davidonzo

    In effetti sarebbe il caso di sapere queli plugin non vanno…

    Senza poter testare è difficile, e fra l’altro mi sembra strano che sia stato fatto un cambiamento tale nel core del php…
    Senza poterlo testare (prendilo con le molle), potresti fare una cosa del genere.

    Dichiari una nuova funzione:

    function included($file){
    include(dirname(__FILE__).”/”.$file);
    }

    E nei file di plugin che non funzionano fai un replace generale di “include” con “included”.

    Forse è una stronxata, ma non potendo testare non saprei cosa altro fare…

  10. Avatar Rik

    stavo provando uno script e mi è venuta in mente una cosa.

    se ti trovi in /prova/file1.php e includi un file php che si trova in una directory tipo
    include (“directory/file2.php”);

    e in file2.php includi un’altra cosa tipo:

    include (“../altraDirectory/file3.php”);

    il percorso è sempre relativo a file1.php, quindi il php va nella directory “/prova/altraDirectory/file3.php” e non in “/prova/directory/../altraDirectory/file3.php” come magari ci si potrebbe aspettare.
    magari non c’entra niente, ma forse è una idea.

  11. Avatar Andrea

    Il problema è che con la versione precedente di PHP non ho mai avuto problemi, con la 5 molti plugin non vanno. E non sempre ci sono semplici include da modificare. Quello che vorrei sapere è se sono l’unico ad avere questi problemi con PHP5, oppure la cosa è generalizzata. E vorrei sapere anche se (mi invento) lo posso risolvere con un qualche dichiarazione in un posto solo, senza dovoer spulciare tutto il codice, dato che non sempre sono in grado.

  12. Avatar fullo

    il problema potrebbe derivare da PHP configurato come CGI (che quindi interpreta come path di esecuzione quello impostato da apache).

    se php è configurato come si deve puoi provare modificare il file .htaccess inserendo la seguente direttiva:
    php_value include_path “.:/path/di/default/:/nuovo/path”

    copiando in /path/di/default gli attuali include path di php, li vedi dal phpinfo() e in /nuovo/path il path dei file che vuoi far caricare in automatico.

    mi raccomando di lasciare il primo “.:”

  13. Avatar cyberflaz

    Magari basta fargli, a monte, un chdir su dirname(__FILE__)!

  14. Avatar Giorgio Zanetti

    Utilizzo anch’io WebPerTe per l’hosting del mio blog e ho lo stesso problema con alcuni plugin (anche con Php-Stat dopo il passaggio a PHP5, ma non so se dipende da questo…).

    A gennaio ho aperto un ticket e l’assistenza mi ha risposto così: “è un problema con il PHP 5 […]. Viene richiesto un path assoluto anziché quello relativo”. Per cui è necessario andare a modificare a mano il codice quando serve.

    Dato che conosco poco o nulla di PHP, ho chiesto a persone più esperte di me se questa era una limitazione della versione 5. La risposta è sempre stata la stessa: no.

    Credo perciò dipenda da qualche configurazione eccessivamente restrittiva di WPT, che però trovo davvero molto fastidiosa (già mi obbligano a fare i conti con il safe_mode attivo e i problemi che si creano talvolta con proprietà e permessi dei file).

    Spero che i responsabili di WPT (tengo a sottolineare che sono comunque molto soddisfatto della loro affidabilità, serietà ed efficienza nell’assistenza) si rendano conto dei disagi e ci vengano incontro semplificandoci la vita.

  15. Avatar Io
    Io

    Occhio a come usate l’inclusione dei file locali con PHP 😉

  16. Avatar alhaurin

    Un’occhiata alle infinite possibilità da questa ‘factory’ di widgets RSS che ha appena presentato ‘beon ‘:
    http://factory.beon4u.com/factory.aspx
    Saluti;-)