将laravel项目部署到redhat服务器上时报错
PDOException in Connector.php line 55: could not find driver
之前redhat上已经部署了其他项目,可以正常访问mysql数据库,为啥laravel就特别了?
上laravel官网一查,该项目需要支持PDO PHP Extension,好吧,需要检查下服务器环境了
[weblogic@v0A-123-177-206 laravel]$ php -m [PHP Modules] Core ctype curl date dom ereg fileinfo filter hash iconv json libxml mbstring mysql mysqlnd openssl pcre PDO pdo_sqlite Phar posix Reflection session SimpleXML SPL sqlite3 standard tokenizer xml xmlreader xmlwriter [Zend Modules] [weblogic@v0A-123-177-206 laravel]$
有安装PDO啊,难道还少了什么吗?继续google
原来还少了一个pdo_mysql的扩展,详情介绍:http://stackoverflow.com/questions/2852748/pdoexception-could-not-find-driver
那就乖乖安装pdo_mysql。
之前有介绍过phpsize的方法追加安装扩展,无需重新编译整个PHP,请查看之前的文章:http://www.luckybird.me/php-install-curl.html
1,进入PHP源码的扩展目录,找到扩展pdo_mysql
[weblogic@v0A-123-177-206 pdo_mysql]$ pwd /home/weblogic/php-5.6.8/ext/pdo_mysql
2,执行phpsize,根据自己phpsize目录来执行
# /usr/local/php/bin/phpize
3,然后config,mysql_config的目录可以通过wheresi mysql_config 来找到
# ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/bin/mysql_config
4,编译扩展
# make # make install
5,编译完后会提示生产扩展pdo_mysql.so,把它复制到php的扩展引入的目录中,目录可以在phpinfo()页面找到
cp modules/pdo_mysql.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226
6,编辑php.ini,添加扩展
extension=pdo_mysql.so
7,重启服务,包括php-fpm和nginx
[root@v0A-123-177-206 PDO_MYSQL-1.0.2]# service php-fpm restart Restarting php-fpm daemon: php-fpm. [root@v0A-123-177-206 PDO_MYSQL-1.0.2]# service nginx restart Stopping nginx: [ OK ] Starting nginx: [ OK ] [root@v0A-123-177-206 PDO_MYSQL-1.0.2]# php -m
8,打开phpinfo()

安装成功,laravel部署的问题也解决了。
遇到错误:
1,
configure: error: PDO_MYSQL configure failed, MySQL 4.1 needed
解决方法:
export LDFLAGS=-L/usr/lib64/mysql
2,
no mysql_config
解决方法:
yum install mysql-devel
3,
Cannot find autoconf.
解决方法
yum install autoconf yum install m4
Leave a Reply