首先说明 yum和apt都是依赖管理工具,使用这两种方法安装的软件无需处理依赖关系,而编译安装的软件需要首先安装它的依赖库,否则装不上,这篇文章只针对linux系统.
- 首先进入php.net选择你需要安装的php版本安装包 download下载
- 解压你下载的包 ,基本命令是 tar -zxvf
- 安装必要的依赖库
(1)ubuntu系列 apt-get install gcc autocnf libxml2-dev
(2)centos系列 yum install gcc gcc-c++ autocnf libxml2 libxml2-devel - 进入解压的文件夹执行./configure --prefix=(指定路径)通过--help查看帮助可以携带更多参数
基于个人需要我的编译参数 根据需要增减 这个项目够用 './configure' '--prefix=/www/server/php/72' '--with-config-file-path=/www/server/php/72/etc' '-- enable-fpm' '--with-fpm-user=www' '--with-fpm-group=www' '--enable-mysqlnd' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-iconv-dir' '--with-freetype-dir=/usr/local/freetype' '--with-jpeg-dir' '--with-png-dir' '--with-zlib' '--with-libxml-dir=/usr' '--enable-xml' '--disable-rpath' '--enable-bcmath' '--enable-shmop' '--enable-sysvsem' '--enable-inline-optimization' '--with-curl=/usr/local/curl' '--enable-mbregex' '--enable-mbstring' '--enable-intl' '--enable-ftp' '--with-gd' '--enable-gd-native-ttf' '--with-openssl' '--with-mhash' '--enable-pcntl' '--enable-sockets' '--with-xmlrpc' '--enable-zip' '--enable-soap' '--with-gettext' '--disable-fileinfo' '--enable-opcache'
- (注意) php已经不再支持mysql了 可以选择pdo和mysqli 这里--enable-mysqlnd支持了数据库 如果不加这个连不上数据库,后面的openssl curl之类的都是需要的 根据需要添加
- make && make install(构建和安装 建议分步进行好找错误)
- 如果编译失败百度一下问题所在,重新编译,如果成功了在编译包中找到php.ini-production复制一份到你的配置目录,如果配置了--with-config-file-path就是后面的目录 如果没配置 先用一下 bin/php -i | grep php.ini 或者直接输出一下phpinfo查看配置目录在哪
- php.ini中的display_errors = On让错误信息打印到页面上
- 做一份fpm 如果你用apache就忽略此步骤
cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
修改fpm配置文件(这里是配置路径 根据自己的修改一下)
cd /www/server/php/72/etc
cp php-fpm.conf.default php-fpm.conf //改个名
vim php-fpm.conf
去掉 pid=run/php-fpm.pid 前面的分号
cd php-fpm.d
cp www.conf.default www.conf //改个名
//注意 在www.conf中 有一个fpm监听的端口号 listen后面的 如果你有多个php 可以修改
/etc/init.d/php-fpm start/stop/restart 启动/停止/重启
10. 如果你的php编译安装没有考虑到mysql,选择重新编译pdo扩展
进入php/ext/pdo_mysql
./configure --with-php-config=/datas/soft/php72/bin/php-config --with-pdo-mysql=/usr/
make clean
make && make install
这里的--with-pdo-mysql路径如果是yum apt安装的 这里直接写/usr/ 如果是编译安装的写你安装路径即可
11. 此时编译安装已经完成了 如果需要的话可以配置环境变量
(1)在/etc/proflie下面添加 export PATH=$PATH:/usr/local/php/bin(你安装的目录)
(2)source /etc/profile 刷新
(3)php -v验证一下
不过我一般使用 alias 就是起别名的方式 这样我可以把多个php区分开
(1)进入~/.bashrc
(2) 加一行 alias php7='/www/server/bin/php'
(3)source /~/.bashrc 刷新
(4)php -v验证一下
12. 你以为这里就结束了其实并没有, 如果你需要编译完成的php需要安装某个扩展怎么办,
(1) 第一种方法进入ext下面寻找对应扩展, ./configure --with-php-config=你想添加扩展的php安装路径 然后 make && make install
(2) 第二种 安装动态扩展 上网下载你要安装的包, 解压后你发现没有configure文件,使用phpize生成,然后操作同上
(3) 安装完之后在php.ini中添加一下, tips:有时候安装完不用添加也能生效,这里本人就不懂为什么了
(4) 如果你的编译有任何问题都不会通过,不过他在make的时候就会告诉你,一般都是缺少依赖导致的,安装上即可