У меня есть сервер в цифровом океане и я пытаюсь запустить собственное приложение php. На моей машине разработки: Mac OSX 10.7.5 PHP: 5.3.6 с mysql, mysqli, mysqlnd, pdo mysql
Но на сервере: Ubuntu 12.04 PHP: 5.3.10
с mysql, mysqli и pdo mysql
Мне нужно, чтобы mysqlnd запускал мое приложение. Если я попробую
apt-get install php5-mysqlnd
он дает ошибку:
The following packages will be REMOVED: php5-mysql The following NEW packages will be installed: php5-mysqlnd
Если я его установлю, мой код приложения разбивается, поскольку он использует множество команд mysqli.
Я искал и следил за многими вопросами stackoverflow на ту же тему, но все напрасно. Хотя, я не пробовал настройку конфигурации
./configure --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \
Я не знаю, как это сделать, и я не мог найти и учебники или статьи об этом.
Как у моей машины разработки есть и сервер, и сервер.
Пожалуйста, направляйте.
Вероятно, вам нужно включить расширение mysqlnd
. Недавно я столкнулся с этой проблемой (все ссылки mysqli
были повреждены после установки php5-mysqlnd
) и исправили ее, добавив следующую строку в php5-mysqlnd
моего php.ini:
extension=mysqlnd.so
Вы можете найти местоположение вашего php.ini в выводе phpinfo () .
Также обратите внимание, что для этих изменений вам потребуется перезагрузить веб-сервер.
Я считаю, что «текущий» способ сделать это – включить этот PHP-модуль после его установки, как и в случае с модулем Apache: sudo php5enmod mysqlnd
А затем перезапустите Apache для загрузки этого модуля: sudo service apache2 restart
Это создаст символическую ссылку на /etc/php5/apache2/conf.d/
из /etc/php5/mods-available/
которую Apache будет получать и загружать с приоритетами, такими как услуги во время запуска. По моему опыту на Ubuntu 14 LTS он создает символическую ссылку, называемую 10-mysqlnd.ini, из mysqlnd.ini .
Вот ссылка на более подробное объяснение по этому вопросу.