PHP, MySQL проблема - PullRequest
       6

PHP, MySQL проблема

0 голосов
/ 06 сентября 2011

мой сервер работает с Centos (CentOS выпуск 5.6 (финальный)).

У меня странная проблема с mysqli. соединение mysqli работает только со скриптом командной строки, а не со скриптом веб-страницы.

В моем php-скрипте есть test-php test.php:

$connection = mysqli_init();

mysqli_real_connect($connection,$host,$user,$pass,$database);
var_dump(mysqli_connect_errno(), mysqli_connect_error());

так что когда запускаете этот файл из командной строки, это нормально, но на веб-странице, возвращается код ошибки «2003», и сообщение об ошибке Не удается подключиться к серверу MySQL на xxxxxx

версия Linux - 2.6.18-238.19.1.el5xen # 1 SMP пт 15 июля 08:16:59 EDT 2011 x86_64 x86_64 x86_64 GNU / Linux

Ответы [ 2 ]

1 голос
/ 06 сентября 2011

Это всего лишь предположение о чувстве кишки;Честно говоря, вы не предоставляете достаточно информации для фактической работы.

Я предполагаю, что вы подключаетесь к "localhost" в качестве имени вашего хоста.В Linux это попытается использовать unix (основанный на файлах) сокет.Когда вы запускаете из командной строки, вы, вероятно, работаете от имени другого пользователя, а не от веб-сервера.

Я предполагаю, что пользователь вашего веб-сервера (www-data илиapache или что-то), вероятно, не имеет разрешения на доступ к файлу сокета.Попробуйте перейти с «localhost» на «127.0.0.1» (да, они обрабатываются по-разному) и посмотрите, сможете ли вы подключиться.

0 голосов
/ 06 сентября 2011

о, Centos использует Selinux, который не позволяет apache подключаться к удаленному хосту по умолчанию. причина, по которой он не работает на веб-странице.

изменил настройку selinux, теперь она работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...