2015-07-21 4 views
7

Как обсуждается здесь: mysqli works when run directly but not when via js-ajaxВключить MySQLi в моем в-вебсервер копии PHP

Я, возможно, потребуется включить MySQLi в моем веб-сервер PHP копии. Он уже включен в командной строке.

Как выяснить, включен ли mysqli в конкретной php-копии, , и если это не так, как его установить?

На моем веб-сервере работает Ubuntu 14.04.2 LTS.

я сейчас попробовал, имеющие следующие расширения в моем файле php.ini:

extension=mysqli.so 
extension=pdo_mysql.so 
extension=php_mysqli.so 

Я попытался запустить их все по отдельности, перезапустить MySQL и Apache, побежал sudo php5enmod mysqli и потом снова запустить страницу, но та же ошибка продолжает появляться в /var/log/apache/error.log:

PHP Fatal error: Class 'mysqli' not found in /var/www/html/.. 

И ничего не добавляется в таблицу SQL, если я не запустить insert.php со стороны сервера.

Когда у меня есть все три расширения в файле php.ini я получаю следующие ошибки хорошо:

Failed loading /usr/lib64/php/modules/ioncube_loader_lin.so: /usr/lib64/php/modules/ioncube_loader_lin.so: cannot open shared object file: No such file or directory 
Failed loading /usr/lib64/php/modules/ixed.lin: /usr/lib64/php/modules/ixed.lin: cannot open shared object file: No such file or directory 
Failed loading /usr/lib64/php/modules/ZendOptimizer.so: /usr/lib64/php/modules/ZendOptimizer.so: cannot open shared object file: No such file or directory 
Failed loading /usr/lib64/php/modules/opcache.so: /usr/lib64/php/modules/opcache.so: cannot open shared object file: No such file or directory 
+0

Что такое * веб-сервер php copy *? – donald123

+0

Я предполагаю, что это копия php-языка, которая реализуется при вызове php с сервера. –

+0

:) check php.ini ... С phpinfo() вы можете увидеть, какой файл php.ini используется для cli и * webserver php copy * – donald123

ответ

3

Из ваших комментариев он появляется ваш extension_dir был установлен в /usr/lib64/php/modules, но эта папка не существует в вашей системе.

На вашей системе модуль mysqli.so был фактически найден в /usr/lib/php5/20121212/mysqli.so

Чтобы решить эту проблему, вы можете установить extension_dir в /usr/lib/php5/20121212 так что extension=mysqli.so линия способна найти общий объект.

0

Вам нужно перекомпилировать PHP и добавить код --enable-все до конца. (Я думаю, что команда правильная. Если не концепция) Ваши общие объекты не установлены.

+0

и как мне перекомпилировать php? –

+0

Как вы его скомпилировали в первую очередь? В основном удалены и перекомпилируются. – kayleighsdaddy

+0

Я никогда не компилировал его в первую очередь, он был там только после установки. –

0

Вам нужна открытая служба Mysqli от сервера Apache, а затем перезапустить Apache сервер

+0

Как мне открыть службу mysqli с сервера apache? –