零、前言

本文可以说是这篇文章的V2版本:Linux下安装PHP扩展

  • 为什么又写了这篇?

  • 1、之前的排版不太好

  • 2、大家要知道:安装不同的扩展可能会用到不同的依赖

  • 3、遇到问题不要急,找到问题点,百度 报错关键字 找解决方案

  • 查看是否有该扩展:php -m,如果有 pdo_sqlsrv 就不需要安装

一、find 查找安装需要用到的php文件

  • find / -name phpize:/usr/bin/phpize
  • find / -name php-config:/usr/bin/php-config
  • find / -name php.ini:/etc/php.ini

二、下载对应版本的扩展

  • pdo_sqlsrv扩展下载页面:http://pecl.php.net/package/pdo_sqlsrv
  • 选择 4.3.0 版本下载:http://pecl.php.net/get/pdo_sqlsrv-4.3.0.tgz
  • 链接规则:http://pecl.php.net/get/ + 压缩包的名字

三、安装

1、指定压缩包存放目录

  • cd /opt/pecl

2、下载压缩包

  • wget http://pecl.php.net/get/pdo_sqlsrv-4.3.0.tgz
  • 遇到: wget下载文件 失败
You can use another DNS server such as 8.8.8.8.
Put [nameserver 8.8.8.8] to the first line of [/etc/resolv.conf.]
  • 登入root(VPS)。进入 /etc/resolv.conf。修改内容为下
nameserver 8.8.8.8 #google域名服务器
nameserver 8.8.4.4 #google域名服务器
  • 我是直接在 /etc/resolv.conf 文件的第一行加上了nameserver 8.8.8.8

3、对压缩包进行解压

  • tar zxvf pdo_sqlsrv-4.3.0.tgz

4、解压成功后进入到 pdo_sqlsrv-4.3.0 目录

  • cd pdo_sqlsrv-4.3.0

5、在 pdo_sqlsrv-4.3.0 目录中执行命令

  • 执行phpize生成编译文件:/usr/bin/phpize

6、configure 产生对应平台的Makefile

1)、执行命令

  • 执行命令:./configure --with-php-config=/usr/bin/php-config

2)、可能的问题并解决

yum install glibc-headers
yum install gcc-c++
  • Ubuntu系统执行
apt-get install build-essential
apt-get install g++

3)、再次执行命令

  • 执行命令:./configure --with-php-config=/usr/bin/php-config
  • 如果还有 no,就再去百度解决方案,执行命令,直至全是 yes

7、make 根据Makefile的内容 编译出符合平台的可执行文件

  • make
  • 如果编译成功系统提示我们不要忘记安装,如下
Build complete.
Don't forget to run 'make test'.

8、安装编译成功的软件

  • make install
  • 如果安装成功了,系统会告诉我们安装的位置
Installing shared extensions:     /usr/lib64/php/modules/
  • 可以 cd /usr/lib64/php/modules/ls 查看已安装的扩展名

9、如果安装成功了就在php.ini中加上扩展,

  • 在php配置文件中加上安装成功的扩展 pdo_sqlsrv.so;加上这一句 extension=pdo_sqlsrv.so

10、重启php服务

  • service php-fpm restart
  • 如果提示权限不足, 请用:sudo service php-fpm restart

11、php -m 查看扩展是否安装成功

  • 执行命令:php -m

四、其他

1、PHP执行sql报错:Can’t open lib 'ODBC Driver 13

  • SQLSTATE[01000]: [unixODBC][Driver Manager]Can’t open lib 'ODBC Driver 13 fo
  • 可能的问题:把 pdo_sqlsrv4.3.0 升级到 pdo_sqlsrv5.2.0试一下

2、./configure是干什么的?make install又是干什么的?

Logo

更多推荐