2015-09-22 4 views
26

Ich versuche, Webserver mit PHP 7 RC3 + Nginx auf Ubuntu 14.04 (für Testzwecke) einzurichten.PHP 7 RC3: So installieren Sie fehlende MySQL PDO

Ich installierte Ubuntu in Vagrant mit ubuntu/trusty64 und PHP 7 RC 3 von Ondřej Surý (https://launchpad.net/~ondrej/+archive/ubuntu/php-7.0).

ich nicht die Art und Weise MySQL PDO zu installieren finden (PHP sieht PDO Klasse aber nichts zu MySQL im Zusammenhang, wie PDO::MYSQL_ATTR_DIRECT_QUERY etc.)

es sieht aus wie php7.0-mysql keine lib ist (analog zu Standard php5-mysqlnd und php7.0-fpm usw. . von Ondřej)

Abschnitt PDO in phpinfo():

PDO support  enabled 
PDO drivers  no value 

Wie kann ich es bekommen?

+2

installieren sagen Sie Ubunt Du 12.04, aber dann benutzt du 'ubuntu/trusty64', was 14.04 ist. Angenommen, Sie verwenden tatsächlich Trusty (Ondřej hat keine Pakete für Precise produziert), dann seine ['php-modules'] (https://launchpad.net/~ondrej/+archive/ubuntu/php-7.0/+ sourcepub/5374980/+ listing-archive-extra) Paket wird 'php-mysql' bereitstellen. – eggyal

+0

Ja, du hast absolut recht! (Version ist behoben). Und dein Vorschlag mit Modulname funktioniert. Vielen Dank! Wenn Sie es als Antwort hinzufügen, werde ich es als korrekt markieren. – SmxCde

+0

Mein Fehler - ich suchte so 'apt-cache search php pdo' und das Modul 'php-mysql' wird in diesem Fall nicht angezeigt. – SmxCde

Antwort

3

Da eggyal nicht seinen Kommentar als Antwort zur Verfügung gestellt hat, nachdem er richtigen Rat in einem Kommentar gab - ich poste es hier: In meinem Fall musste ich Modul php-mysql installieren. Siehe Kommentare unter der Frage für Details.

1

Ich hatte, ziemlich genau das gleiche Problem. Ich konnte sehen, dass PDO aktiviert war, aber ich hatte keine verfügbaren Treiber (mit PHP 7-RC4). Es gelang mir, das Problem zu lösen, indem ich die php_pdo_mysql-Erweiterung zu den aktivierten hinzufügte.

Hoffe, das hilft!

1

Hatte das gleiche Problem, gelöst durch tatsächliche Aktivierung der Erweiterung in der php.ini mit dem richtigen Dateinamen. Es wurde als php_pdo_mysql.so aufgelistet, aber der Modulname in/lib/php/modules hieß nur pdo_mysql.so

Also entfernen Sie einfach die "php_" Präfix aus der Datei php.ini und starten Sie den httpd-Dienst und es neu Lief wie am Schnürchen.

Bitte beachten Sie, dass ich Arch verwende und daher die Pfadnamen und Dienste je nach Ihrer Distribution unterschiedlich sein können.

3

Überprüfen Sie zuerst, ob Ihre php.ini die Erweiterung "php_pdo_mysql" und "php_mysqli" aktiviert hat und der Pfad von "extension_dir" korrekt ist. Wenn Sie eine der obigen Konfigurationen benötigen, müssen Sie php-fpm neu starten, um die Änderungen zu übernehmen.

In meinem Fall (wo ich in der Firma das Windows-Betriebssystem verwende, ziehe ich es wirklich OSX oder Linux), i das Problem setzen diese Werte in der php.ini gelöst:

; ... 

extension_dir = "ext" 

; ... 

extension=php_mysqli.dll 
extension=php_pdo_mysql.dll 

; ... 

ich diese Hoffnung hilft.

+0

Dies hilft nur, wenn diese Dateien tatsächlich auf dem System vorhanden sind. – dagelf

59

Für thoses unter Linux mit apache2 Sie brauchen php-mysql

apt-get install php-mysql 

oder zu installieren, wenn Sie Ubuntu 16.04 oder höher nur laufen den folgenden Befehl ausführen wird enought werden, keine Notwendigkeit der php.ini zu bearbeiten Datei

apt-get install php7.0-mysql 

Falls Sie ubuntu läuft 15.10 oder unter:

Bearbeiten Sie Ihre php.ini Datei und Suche nach pdo_mysql Sie so etwas wie dieses

;extension=php_pdo_mysql.so 

ändern, um es dieser

extension=pdo_mysql.so 

Speichern gefunden könnte die Datei und Neustart Apache

service apache2 restart 

Überprüfen Sie, ob es in Ihrem phpinfo verfügbar ist()

+1

Nur eine allgemeine FYI, ich würde ** sehr ** empfehlen, [MySQLND] (http://php.net/manual/en/intro.mysqlnd.php) ('php-mysqlnd') anstelle der älteren' php -mysql' Paket – Machavity

+0

Nicht jeder hat den Luxus der Wahl, welche Bibliothek die Kunden-App bereits verwendet, und nicht jeder kann nur "apt-get" – dagelf

+0

Hinweis: "Service Neustart Apache2" sollte "Service Apache2 Neustart" lesen. Für Ubuntu 16.04 habe ich nur "sudo apt-get install php7.0-mysql" und "sudo service apache2 restart" verwendet. –

2

Wenn Sie auf Fenster, und Ihre PHP-Ordner ist nicht in Ihrem PATH, haben Sie das absolute Verzeichnis in der php.ini gesetzt

zum Beispiel:

extension_dir = "C:/php7/ext" 

und uncomment

extension=php_mysqli.dll 
extension=php_pdo_mysql.dll 

Starten Sie Apache2.4 und es sollte funktionieren.

Ich hoffe, es hilft.

2
  1. den Quellcode von PHP 7 herunterladen und extrahieren.
  2. öffnen Terminal
  3. schwimmen zum ext/mysqli Verzeichnis
  4. Verwendung Befehle:

    phpize

    configure

    machen

    make install (als root)

  5. aktivieren Sie die Erweiterung = mysqli.so in Ihrer php.ini-Datei
  6. getan!

Dieser arbeitete für mich

+0

Danke, das gleiche funktionierte für pdo_mysql. Nicht sicher, warum es nicht als Teil von default make kompiliert wird; make install o_O – dagelf

13

erste PHP-mysql

sudo apt-get install php7.0-mysql 

aktivieren Sie dann das Modul

sudo phpenmod pdo_mysql 

und starten Apache

sudo service apache2 restart