2012-09-19 45 views
2

我試圖從Apache mod_php遷移到PHP-FPM。php-fpm無法連接到mysql

我試圖連接到MySQL數據庫,但似乎我缺少一些功能:

Line 43 - mysql_connect(hostname, username, pwd); 

我得到了經典的致命錯誤:現在

Fatal error: Call to undefined function mysql_connect() in 
/var/www/vhosts/dev.test.local/htdocs/index.php on line 43 

,在我phpinfo沒有經典的mysql框。

我在Centos 5.6上使用Php 5.3運行Apache2(但我認爲PHP版本並不重要)。

如何爲PHP-FPM安裝必要的庫?

我需要重新編譯PHP嗎?

+0

請從CLI運行一個'php -m'並複製這裏的輸出。 –

+0

PHP警告:模塊 '的MySQL' 已經裝載在未知在線0 [PHP模塊] BZ2 日曆 核心 CTYPE 捲曲 日期 EREG EXIF 的FileInfo 濾波器 FTP gettext的 GMP 散列 的iconv JSON LDAP 的libxml MBSTRING mcrypt的 mhash MySQL的 mysqli的 OpenSSL的 了pcntl PCRE PDO PDO_MYSQL PDO_SQLITE 的Phar 的readline 反思 會議 shmop 的SimpleXML 插座 SPL 標準 標記者 XML 拉鍊 zlib的 [Zend的模塊] – alesdario

回答

0

看一看這一點,如果你還沒有:

http://www.howtoforge.com/installing-nginx-with-php5-and-php-fpm-and-mysql-support-on-centos-6.0-p2

您是否安裝了相應的MySQL模塊?

yum install php-fpm php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy

+0

是我做的。所以,我試圖重新安裝MySql模塊,但YUM無事可做。 – alesdario

1

你只需要在php-fpm config中啓用mysql。你已經啓用它爲Apache。請參閱/ etc/php5/fpm目錄

更新,我不熟悉CentOS文件佈局,但如果它有點標準,可能還有一個conf.d目錄,然後您需要設置一些軟鏈接,重點是你可以使用PHP(cgi,cli,apache(mod_php)或php-fpm)的每種方法都有一個獨立的ini文件(和/或.conf,取決於linux的風格),我確信mysql libs在那裏,因爲你在apache中使用它們。所以它只能是你沒有啓用MySQL內部的PHP擴展。

之後不要忘記重新啓動php-fpm。

+0

好的。我已經嘗試啓用mysql.so擴展,但在失敗後重新加載。啓動php-fpm:[21-Sep-2012 12:25:16]通知:PHP消息:PHP警告:模塊'mysql'已經加載未知在線0' – alesdario

+0

和phpinfo()不會改變。 – alesdario

+0

好吧,那很好。這意味着模塊在那裏,PHP-fpm可以看到它。顯然它已經在某處爲你啓動了,你可以把最後的改變拿出來。您的Apache是​​否配置爲CGI模式?我會使用nginx(與上游服務器)以及php-fpm。我不認爲我曾經在Apache中這樣做過,但是您可能需要告訴它它不應該使用mod_php處理php代碼,而是將其交給php_fpm。但我認爲已經確定您的庫已加載。 –