centos中安装pdo扩展参考
过程中出现了很多问题:
1,查找本机php安装位置whereis php
正在运行的phpwhich php
我的位置是:/usr/bin/php
2,执行/usr/bin/phpize的时候出现如下错误:Can't find PHP headers in /usr/include/php
The php-devel package is required for use of this command.
解决办法:yum install php-devel
3,之后又出现Error: php54w-common conflicts with php-common-5.3.3-46.el6_6.x86_64
两个包冲突,解决办法,卸载php54w-commonsudo yum remove php-common
4,继续到php的安装包的pdo_mysql目录下运行/usr/bin/phpize
编译通过,没有报错
5,继续./configure --with-php-config=/usr/bin/php-config --with-pdo-mysql=/usr/bin/mysql/
报错:configure: error: no acceptable C compiler found in $PATH
解决:sudo yum install gcc
6,然后继续./configure./configure --with-php-config=/usr/bin/php-config --with-pdo-mysql=/usr/bin/mysql_config
其中查找phpconfig和mysql_config可用:whereis php-config
whereis mysql_config
7,编译后make && make install
8,继续报错:[error: ‘PHP_FE_END’ undeclared here (not in a function)]
解决办法:sed -i 's|PHP_FE_END|{NULL,NULL,NULL}|' ./ext/**/*.c
sed -i 's|ZEND_MOD_END|{NULL,NULL,NULL}|' ./ext/**/*.c
我是在mysql_pdo包目录下 所以后面直接*.c,于是:sed -i 's|PHP_FE_END|{NULL,NULL,NULL}|' *.c
sed -i 's|ZEND_MOD_END|{NULL,NULL,NULL}|' *.c
9,继续make && make install,(root用户运行)
10,无报错,进入:[root@localhost pdo_mysql]# cd /usr/lib64/php/modules/
[root@localhost modules]# ls -l
total 2428
-rwxr-xr-x. 1 root root 66096 Jul 10 01:43 curl.so
-rwxr-xr-x. 1 root root 1843120 Jul 10 01:43 fileinfo.so
-rwxr-xr-x. 1 root root 36200 Jul 10 01:43 json.so
-rwxr-xr-x. 1 root root 184357 Oct 31 12:32 pdo_mysql.so
-rwxr-xr-x. 1 root root 261392 Jul 10 01:43 phar.so
-rwxr-xr-x. 1 root root 83088 Jul 10 01:43 zip.so
11,php -i | grep 之后继续报错。。。(抓狂ing)PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/pdo_mysql.so’ – /usr/lib64/php/modules/pdo_mysql.so: undefined symbol: php_pdo_int64_to_str in Unknown on line 0
查到从:
得知:之前的配置人员安装了php的pdo_mysql模块,在/etc/php.ini中配置加载参数(常规思路都是需要手动配置加载的):
[pdo_mysql]
extension=/usr/lib64/php/modules/pdo_mysql.so
其实在php安装模块的时候会自动将配置文件写入到 /etc/php.d/ 下。
所以不需要配置加载,并且php加载模块好像有顺序,所以屏蔽 /etc/php.ini 中加载的 pdo_mysql 配置参数即可。
于是“;”掉extension=/xxxxxx/xxxxx
于是上面的错误消失,可是还是不出现laravel5页面,继续。
12,运行php artisan env
报错:PHP Parse error: syntax error, unexpected T_CLASS, expecting T_STRING or T_VARIABLE or '$' in /var/www/html/laravel-master/artisan on line 31