Domanda

Ho php aggiunto come modulo per Apache 2.2.11:

LoadModule php5_module "c:/php/php5apache2_2.dll"

ed anche ha aggiunto

AddType application/x-httpd-php .php

E nel php.ini, il mio dir estensione è impostato su: extension_dir = "C:\php\ext"

e , le directory sono corretti e esistono tutti i file.

Ma quando inizio apache, ottengo questi errori:

  

PHP Warning: PHP Startup: Impossibile caricare la libreria dinamica 'C: php \ ext \ php_mysql.dll \' -. Il modulo specificato non è stato trovato \ r \ n in Unknown on line 0
  PHP Warning: PHP Startup: Impossibile caricare la libreria dinamica 'C: php \ ext \ php_pdo_pgsql.dll \' -. Il modulo specificato non è stato trovato \ r \ n in Unknown on line 0
  PHP Warning: Startup PHP: Impossibile caricare la libreria dinamica 'C: php \ ext \ php_pgsql.dll \' -. Il modulo specificato non è stato trovato \ r \ n in Unknown on line 0
  [Sun 17 mag 03:46:01 2009] [Avviso] Apache / 2.2.11 (Win32) PHP / 5.2.9-2 stata progettata la - di riprendere le normali operazioni
  [Sun 17 mag 03:46:01 2009] [Avviso] Server di costruzione: 10 Dicembre 2008 00:10:06
  [Sun 17 mag 03:46:01 2009] [Avviso] Parent: Creato processo figlio 4652
  PHP Warning: PHP Startup: Impossibile caricare la libreria dinamica 'C: php \ ext \ php_mysql.dll \' -. Il modulo specificato non è stato trovato \ r \ n in Unknown on line 0
  PHP Warning: PHP Startup: Impossibile caricare la libreria dinamica 'C: php \ ext \ php_pdo_pgsql.dll \' -. Il modulo specificato non è stato trovato \ r \ n in Unknown on line 0
  PHP Warning: Startup PHP: Impossibile caricare la libreria dinamica 'C: php \ ext \ php_pgsql.dll \' -. Il modulo specificato non è stato trovato \ r \ n in Unknown on line 0
  [Sun 17 mag 03:46:01 2009] [Avviso] Bambini 4652:
processo bambino è in esecuzione   [Sun 17 mag 03:46:01 2009] [Avviso] Bambini 4652:. Acquisito il mutex inizio
  [Sun 17 mag 03:46:01 2009] [Avviso] Bambini 4652:. A partire 64 thread di lavoro
  [Sun 17 mag 03:46:01 2009] [Avviso] Bambini 4652: Avvio di filo per l'ascolto sulla porta 80.

Quindi probabilmente sto dimenticando qualcosa di semplice qui, qualcuno può dirmi che cosa sto dimenticando?

È stato utile?

Soluzione

Non solo è necessario DLL dell'estensione di PHP al fine di aggiungere il supporto per MySQL e PostgreSQL PHP. È inoltre necessario MySQL e PostgreSQL librerie native. DLL di PHP estensione sono probabilmente non trovando alcune DLL da cui dipendono, in modo che non può iniziare.

Assicurati di avere MySQL e PostgreSQL client installato, e le loro DLL in qualche luogo localizzabile.

vale a dire. Esempio:

  • php_mysql.dll dipende libmysql.dll

Quindi, assicurarsi che PHP è in grado di trovare libmysql.dll (credo che questo viene con la distribuzione binaria di Windows di PHP. Non sono sicuro però).

Altri suggerimenti

Per aggiungere il consiglio di Pablo Santa Cruz. Su Windows è possibile includere le librerie richieste del PATH ambiente. (Non necessariamente copiare nella cartella di Windows). Quando il caricamento delle librerie vedove guarda in C:\php directory pure.

Se si utilizza la distribuzione binaria Win32 standard da php.net per PHP5.2, allora il pacchetto deve contenere tutte le dipendenze nella radice dei pacchetti. Quindi, se è stato installato il PHP5.2 in <=>, aggiungere questo elenco per il <=> envar. Riavviare l'Apache e mi aspetto estensioni per caricare correttamente.

Ho avuto un problema con una versione specifica di PHP su Windows. Il problema era libmysql. Ho trovato un bug pubblicato sul sito php.net da qualcuno che ha lo stesso problema.

Ho usato la versione precedente php e libmysql lavorato. Scopri le note sulla distribuzione di PHP che si sta utilizzando. Penso che dopo una versione specifica accennano una nuova politica in materia di libmysql.

Da quello che si parla di PHP non è in grado di trovare le estensioni. Assicurarsi di aver impostato il percorso sul php.ini che specifica dove si trovano le estensioni, che esistono le estensioni e che la cartella può essere letta (read-permessi).

Se tutto fallisce provare a spostare l'estensione a windows / system32, nel tentativo di trovare quello che potrebbe essere il vero problema.

Saluti,

Queste estensioni dipendono da librerie native, che sono previsti dalle distribuzioni binarie MySQL e PostgreSQL. Installarli e mettere le librerie nella cartella apache di bin per esempio. Quelli sono LIBMYSQL.DLL e LIBPQ.DLL rispettivamente.

faccio di solito che invece di inquinare Windows/System32 cartella con loro, perché sul mio sistema solo l'apache / php è il client di tali banche dati ed inoltre rende la mia configurazione di apache / php più portabile.

Nella mia esperienza, PHP su Windows è un grande dolore nel sedere. Io di solito farlo funzionare alla fine, ma c'è sempre un sacco di googling e tentativi ed errori coinvolti -. Almeno per me

Così ho finalmente ottenuto malato e stanco di esso e semplicemente installato Ubuntu Server in una macchina virtuale e aveva installato e funzionante in pochi minuti. Se questo è un'opzione per voi o no non posso dire, ma se è sarà sicuramente risparmiare un sacco di mal di testa nel lungo periodo. Per non parlare si può sempre spostare le macchine virtuali in giro, creare istantanee e fare tutte le altre cose di fantasia che le macchine virtuali sono buoni per.

Ho avuto lo stesso problema. Mi è stato sempre uno di quegli errori fastidiose finestre popup ogni volta che ho cercato di accedere al phpmyadmin. Ho digitato il nome utente e la password e poi avrebbe gettato l'errore.

Che ha risolto per me, è stato anche la copia del libmysql.dl nella directory bin apache. La cosa strana è apparantly le estensioni in cui inclusi correttamente, ma ancora avevo bisogno di fare questo.

Ho provato molte di queste soluzioni e uno o più di loro lavoravano ... riavvio è la chiave qui. Non ho riparto tra questi cambiamenti, ma dopo ho riavviato che stava lavorando:

  • aggiungere Postgres DLL per Apache lib dir
  • aggiungi percorso Postgres al PATH di sistema
  • aggiungere Postgres DLL per system32

Credo che solo il percorso avrebbe funzionato ma non c'è tempo per la pulizia qui così ci si va.

il problema qui è che Apache è stato caricato PHP, ma PHP non è stato in grado di caricare la sua estensione (MySQL, PostgreSQL, ...). Penso che si dovrebbe inserire i valori di percorso nel file php.ini in formato UNIX (non utilizzare caratteri di barra rovesciata come separatore di directory). così nel file php.ini cambiare questo:

extension_dir = "C: / php / ext"

Sono anche avuto lo stesso problema e risolto con l'aggiunta di "PostgreSQL" percorso bin in variabili di ambiente del sistema

PATH: C: \ Program Files \ PostgreSQL \ 8.4 \ bin Puoi effettuare check in phpinfo () anche.

Quando si installa PostgreSQL, impostando in percorso di sistema perso. Ho aggiunto manualmente quindi riavviare il sistema.

Ho avuto anche questo problema, e copiato i pertinenti (DLL) per systen 32 e ancora non ha funzionato per me. Sono in esecuzione Windows 7 a 64 bit. Per arrivare a questo lavoro per me che ho dovuto copiare anche il libmysql.dll alla directory ext. Il messaggio di errore ha lasciato il registro Apache e la pagina caricata con una risposta favorevole (connessione ad stabilita).

Ho avuto lo stesso problema e ho provato a copiare libmysql.dll alla cartella bin apache e risolto il problema (Sto installando PHP 5.2.5 x64). Molte grazie.

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