2017-01-11 3 views
1

Мой проект symfony не нашел драйвер pdo_mysql. Я использую сервер debian. Такая же конфигурация работает на OSX в порядке, но не здесь. Когда я использую PHP -m команду он показывает драйвер, а также РНР -i | Grep Pdo_Mysql шоу:Symfony 3 dont find pdo_mysql driver

/etc/php/7.0/cli/conf.d/20-pdo_mysql.ini, 
API Extensions => mysqli,pdo_mysql 
pdo_mysql 
pdo_mysql.default_socket => /var/run/mysqld/mysqld.sock =>  /var/run/mysqld/mysqld.sock 

Это моя конфигурация Symfony и paramters:

parameters: 
database_host: 127.0.0.1 
database_port: 3306 
database_name: bisol_time 
database_user: root 
database_password: root 

Config:

doctrine: 
dbal: 
    driver: pdo_mysql 
    host:  "%database_host%" 
    port:  "%database_port%" 
    dbname: "%database_name%" 
    user:  "%database_user%" 
    password: "%database_password%" 
    charset: UTF8 

Так что я могу сделать. Я пробую все и прочитаю каждую тему по этой проблеме, но я не нахожу решение. Может кто-нибудь мне помочь?

+0

Я узнал, что это проблема только с php 7. Я устанавливаю php 5 и ту же конфигурацию, и она работает. Кто-нибудь знает, почему и как это сделать в php 7? – sanof

+0

Возможно, из-за разных конфигураций для CLI и веб-сервера? – lxg

ответ

1

Это не относится к Symfony, а относится к настройке системы.

Как вы можете видеть, когда вы запускаете PHP в CLI, он использует конфигурацию от /etc/php/7.0/cli/conf.d/20-pdo_mysql.ini (обратите внимание на cli на пути). В то время как при использовании Apache он использует, скорее всего, /etc/php/7.0/apache2/conf.d/20-pdo_mysql.ini или аналогичный.

Вы можете либо развить до /etc/php/7.0/, либо создать info.php с <?php phpinfo(); и посмотреть, где находятся файлы конфигурации.

Похоже, что в этой конфигурации PHP для apache драйвер не установлен.

+0

Да, я понял это, когда меняю версию php, что это не проблема symfony, а php-конфигурация. Я создал простой php-скрипт, используя PDO для подключения к базе данных, и он работал, но он не работал над проектом SF. Вот почему я подозреваю, что, возможно, сот с SF тоже? Alse я использовал php -i | grep ini, чтобы найти все файлы конфигурации и найти файл с pdo_mysql, это /etc/php7/cli/conf.d/20-pdo_mysql.ini, а внутри - только расширение = pdo_mysql.so и назначенный приоритет , – sanof

+0

было бы неплохо, если бы вы могли принять мой ответ. Благодарю. – Stepashka

1

Я считаю, что существует другой pdo для PHP 5. В моей системе (CentOS 6) у меня есть php70u-pdo.i686. Я проверил, используя yum list installed |grep pdo. Я не могу помочь вам установить на OSX, я подозреваю, что вам нужно использовать brew, но проверьте, можете ли вы установить pdo для PHP7 и включить его в файл php.ini.

Звучит как проблема.


EDIT # 2 На основе Комментарии

Вы можете попробовать:

apt-get install php7.0 php7.0-mysql 

Я думаю, что MySQL устанавливает PDO, а также. Попробуй. не уверен, что это сработает.

+0

Нет на OSX не проблема, я уже делал это. Проблема в том, что на сервере Debian (мой производственный сервер, OSX - мой персональный компьютер с машиной разработки) Я решаю проблему путем uninstaling php7 с сервера debian и установки php5. Он работает сейчас, но мне нравится знать, почему так в будущем, когда я буду использовать php 7, приложение будет работать нормально. И btw на osx я использовал варить да. tnx – sanof

+0

См. мое редактирование # 2. –