作者 主題: nginx: mysql error  (閱讀 2896 次)

0 會員 與 1 訪客 正在閱讀本文。

aeolus0829

  • 憂鬱的高中生
  • ***
  • 文章數: 112
    • 檢視個人資料
nginx: mysql error
« 於: 2012-05-30 10:27 »
自架 joomla,使用 debain 6 squeezy + nginx + mysql + php + php_fcgi(scripts)

但是 mysql 的部份一直搞不定

後來把 nginx 換成 apache ,就輕鬆裝完了

現在回頭想把 apache 換成 nginx,但是 joomla 會出現這個訊息:
Database connection error (1): The MySQL adapter 'mysql' is not available.
phpmyadmin 出現的則是這個訊息:
phpMyAdmin -
無法讀取 mysql 模組,
請檢查 PHP 設定

但是 phpinfo() 看不出有什麼異常
(正在寫文章的現在出現異常了)
擷取 http://192.168.0.2/info.php 時網站遇到錯誤, 網站可能為了維護而關閉或設定不正確。

在 phpinfo() 還正常的狀況下,我有試過多加一行
echo mysql_connect ('localhost', '<yourwebuser>', '<yourwebuserpassword>');
只要加這一行,info.php 一定會錯誤
(還算合理吧.. nginx 都說找不到 mysql 模組了)


我想會不會是nginx 所讀取的 php.ini 和 apache 所讀取的 php.ini 不是同一個所造成的?
(updated: 試過讓 nginx 使用 apache 的 php.ini,重開 nginx 後結果仍然相同)
nginx 好像是用 /etc/php5/cgi/php.ini
apache 是用 /etc/apache2/php.ini

我試過用關鍵字找:
nginx mysql problem
The MySQL adapter 'mysql' is not available
沒有找到可用的訊息

可否請大家幫忙看有什麼解法

updated:
好像是 fastcgi 的問題
忘記在哪看到的,原來fastcgi 是用 socket 的方式做
 fastcgi_pass unix:/tmp/php.socket;

改成這樣就沒有問題...
 fastcgi_pass 127.0.0.1:9000;

 話雖如此,但不知道為什麼會這樣... = =a
應該不是權限問題
srwxrwxrwx 1 www-data www-data 0 May 30 09:49 /tmp/php.socket
« 上次編輯: 2012-05-30 10:52 由 aeolus0829 »

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
Re: nginx: mysql error
« 回覆 #1 於: 2012-05-30 12:00 »
自架 joomla,使用 debain 6 squeezy + nginx + mysql + php + php_fcgi(scripts)

但是 mysql 的部份一直搞不定

後來把 nginx 換成 apache ,就輕鬆裝完了

現在回頭想把 apache 換成 nginx,但是 joomla 會出現這個訊息:
Database connection error (1): The MySQL adapter 'mysql' is not available.
phpmyadmin 出現的則是這個訊息:
phpMyAdmin -
無法讀取 mysql 模組,
請檢查 PHP 設定

但是 phpinfo() 看不出有什麼異常
(正在寫文章的現在出現異常了)
擷取 http://192.168.0.2/info.php 時網站遇到錯誤, 網站可能為了維護而關閉或設定不正確。

在 phpinfo() 還正常的狀況下,我有試過多加一行
echo mysql_connect ('localhost', '<yourwebuser>', '<yourwebuserpassword>');
只要加這一行,info.php 一定會錯誤
(還算合理吧.. nginx 都說找不到 mysql 模組了)


我想會不會是nginx 所讀取的 php.ini 和 apache 所讀取的 php.ini 不是同一個所造成的?
(updated: 試過讓 nginx 使用 apache 的 php.ini,重開 nginx 後結果仍然相同)
nginx 好像是用 /etc/php5/cgi/php.ini
apache 是用 /etc/apache2/php.ini

我試過用關鍵字找:
nginx mysql problem
The MySQL adapter 'mysql' is not available
沒有找到可用的訊息

可否請大家幫忙看有什麼解法

updated:
好像是 fastcgi 的問題
忘記在哪看到的,原來fastcgi 是用 socket 的方式做
 fastcgi_pass unix:/tmp/php.socket;

改成這樣就沒有問題...
 fastcgi_pass 127.0.0.1:9000;

 話雖如此,但不知道為什麼會這樣... = =a
應該不是權限問題
srwxrwxrwx 1 www-data www-data 0 May 30 09:49 /tmp/php.socket

1. mysql 是否有啟動。
2. 使用 apache 時是否能正常開 phpMyAdmin。
3. 使用 nginx 時 phpinfo() 是否有出現 mysql 模組的資訊
4.......

aeolus0829

  • 憂鬱的高中生
  • ***
  • 文章數: 112
    • 檢視個人資料
Re: nginx: mysql error
« 回覆 #2 於: 2012-05-30 13:19 »
1. mysql 是否有啟動。
2. 使用 apache 時是否能正常開 phpMyAdmin。
3. 使用 nginx 時 phpinfo() 是否有出現 mysql 模組的資訊
4.......
1. 正常啟動,也重啟過
2. 可以,是正常的
3. 有看到 /etc/php5/conf.d/mysqli.ini, /etc/php5/conf.d/mysql.ini 這樣算嗎?

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
Re: nginx: mysql error
« 回覆 #3 於: 2012-05-30 13:28 »
1. mysql 是否有啟動。
2. 使用 apache 時是否能正常開 phpMyAdmin。
3. 使用 nginx 時 phpinfo() 是否有出現 mysql 模組的資訊
4.......
1. 正常啟動,也重啟過
2. 可以,是正常的
3. 有看到 /etc/php5/conf.d/mysqli.ini, /etc/php5/conf.d/mysql.ini 這樣算嗎?

mysqlx.ini這兩個只是設定檔
要在瀏覽 phpinfo() 的頁面找一下
看看有沒有 mysql 模組的資訊
類似下面這張圖的資訊

http://static.howtoforge.com/images/nginx_php5_mysql5_ubuntu8.10/3.png

aeolus0829

  • 憂鬱的高中生
  • ***
  • 文章數: 112
    • 檢視個人資料
Re: nginx: mysql error
« 回覆 #4 於: 2012-05-30 13:32 »
那個連結沒辦法點,顯示 403 forbidden

另外~我的問題其實已經解決了 (如第一篇最後所述)

我不懂的是為什麼 fcgi 用 socket 的方式做會造成 mysql 模組連不上 (也許是我 fcgi 根本就連不上 php ?)