Невозможно подключиться к mysql при использовании FastCGI для PHP под Apache в Windows Vista - PullRequest
0 голосов
/ 26 февраля 2010

Я настроил PHP для использования Apache mod_fcgid. PHP работает, но после изменений в конфигурации я не могу подключиться к MySQL через php. Как это исправить? Любые идеи, которые могут намекнуть, очень желательны!

Для проверки подключения mysql я использую следующий php код:

error_reporting(E_ALL);

$link = mysql_connect('127.0.0.1', 'root', 'password_here');
if (!$link) {
    die('Could not connect. Error message: <' . mysql_error() . '>');
}
echo 'Connected successfully';

Сообщение об ошибке, возвращаемое mysql_error(), пусто.

Я использую следующую конфигурацию в Apache:

LoadModule fcgid_module modules/mod_fcgid.so
<IfModule fcgid_module>  
AddHandler fcgid-script .fcgi .php  
DefaultInitEnv PHPRC "C:/Program Files/php5"
DefaultInitEnv PHP_FCGI_MAX_REQUESTS      1000  
MaxRequestsPerProcess       1000  
MaxProcessCount 15
IPCCommTimeout 120
IdleTimeout 120
FCGIWrapper "C:/PROGRA~1/php5/php-cgi.exe" .php  
AddType application/x-httpd-php .php  

DefaultInitEnv PATH "C:/PROGRA~1/MYSQL/MYSQLS~1.0/LIB/OPT;C:/PROGRA~1/APACHE~1/APACHE2.2/BIN;C:/WINDOWS/system32;C:/WINDOWS"
</IfModule>  

PHP 5.3.1, Apache / 2.2.14 (Win32), MySQL 5.0.67-community-nt, Windows Vista Home Premium Service Pack 1. Я загрузил двоичные файлы mod_fcgid из http://www.apachelounge.com/download/mods/mod_fcgid-2.2b-w32.zip

EDIT:

Я использовал phpinfo() для сравнения конфигурации. «Loaded Configuration File» одинаково как с mod_fcgid, так и без него. Раздел mysql одинаков для обоих конфигов. Из того, что я обнаружил, раздел Environment, когда включен mod_fcgid, содержит только переменную, связанную с FastCGI (только 4 элемента), а без mod_fcgid - гораздо больше ...

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

Если кто-то успешно установил FastCGI для php, с Apache и mysql в Windows, было бы очень полезно узнать о вашем опыте.

EDIT:

Я получаю следующее предупреждение:

Предупреждение: mysql_connect () [function.mysql-connect]: в E: \ ... \ testphp \ mysql.php в строке 7

EDIT

Журнал ошибок mysql не содержит ошибок на mysql_connect().

Ответы [ 3 ]

1 голос
/ 27 февраля 2010

Вы уверены, что Warning: mysql_connect() [function.mysql-connect]: in E:\ ... \testphp\mysql.php on line 7
- полная ошибка? Потому что это необычно, там должно быть сказано, что там не так.
Также, пожалуйста, проверьте файл журнала вашего сервера mysql на наличие аномалий и опубликуйте их здесь. mysql документация журнала ошибок.

0 голосов
/ 06 февраля 2017

Получил ту же проблему и решил ее так:

  1. Отредактируйте файл php.ini в версии cgi (vi /etc/php5/cgi/php.ini)
  2. Добавьте следующую строку: extension = mysql.so
  3. Перезапустите Apache (перезапуск службы apache2 И /etc/init.d/apache3 перезапустите)

Cheers, Сильвен

0 голосов
/ 26 февраля 2010

Вы пытались запустить php_info (), чтобы увидеть, присутствует ли модуль mysql и настроен ли он для вашего CGI? Конфигурация ini может отличаться между CGI и другим методом запуска.

Jacob

...