2012-09-19 47 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。但我认为已经确定您的库已加载。 –