Как обсуждается здесь: mysqli работает при запуске напрямую, но не через js-ajax
Возможно, мне нужно включить 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
Из ваших комментариев появляется, что ваш extension_dir
был установлен в /usr/lib64/php/modules
но эта папка не существовала в вашей системе.
В вашей системе модуль mysqli.so был фактически найден в /usr/lib/php5/20121212/mysqli.so
Чтобы устранить эту проблему, вы можете установить extension_dir
в /usr/lib/php5/20121212
чтобы линия extension=mysqli.so
находила общий объект.
Вам нужно перекомпилировать свой PHP и добавить код –enable-all до конца. (Я думаю, что команда правильная. Если не концепция) Ваши общие объекты не установлены.
Вам нужно открыть службу mysqli с сервера apache, а затем перезапустить сервер Apache
Следуйте этому руководству.
Пропустите первый шаг, посвященный apache web srver. Обратите внимание, что конфигурация для php cli (интерфейс командной строки) находится в другом файле из конфигурации для php, которую использует ваш веб-сервер. Если вам нужно настроить php для apache, путь по умолчанию – /etc/php5/apache2/php.ini
на UBUNTU 14.02.
Если вы продолжаете испытывать проблемы с ioncude, следуйте этой ссылке https://www.digitalocean.com/community/tutorials/how-to-install-ioncube-loader