zoukankan      html  css  js  c++  java
  • 源码编译安装php7

    现在新启的项目都是采用php7了,无奈很多Linux发行版中还是php5

    第三方php7源在自己本机上用用到无所谓,放到正式环境上还是有点不放心

    其实编译安装也就几分钟,麻烦的是各种依赖

    先删除老版本的 php 和 php-fpm

    sudo dnf remove php php-fpm

    首先从官方下载最新的php ( http://php.net/downloads.php )

    php-7.2.6.tar.xz

    步骤

    tar -xvf php-7.2.6.tar.xz

    cd php-7.2.6

    ./configure --prefix=/usr/local/php7/ --enable-mbstring --with-curl --with-gd --enable-mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --enable-fpm --with-openssl --enable-opcache --enable-zip --with-zlib --with-freetype-dir=/usr/include/freetype2/freetype 

    重点提示,虽然添加了 --with-gd ,安装完成后通过 phpinfo发现,gd只支持png,gif等  不支持 jpeg,原因不详,所以要添加 --with-jpeg-dir=/usr/local/jpeg/ 。

    添加这句话之前要先安装libjpeg,官方下载最新版本 (http://www.ijg.org/files/jpegsrc.v9c.tar.gz),

    还是老三样 ./configure --prefix=/usr/local/jpeg --enable-shared  && make && sudo make install

    所以最后./configure因该这样

    ./configure --prefix=/usr/local/php7/ --enable-mbstring --with-curl --with-gd --enable-mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --enable-fpm --with-openssl --enable-opcache --enable-zip --with-zlib --with-freetype-dir=/usr/include/freetype2/freetype --with-jpeg-dir=/usr/local/jpeg/

    可以通过 ./configure --help 查看所有可用的模块,根据自己的需要添加

    (这里插一句,为什么有的是-enable-** 有的是 --width-**,简单理解就是 enable的属于php自带的扩展,但是默认不开启的,--enable开头的表示这个扩展不依赖第三方的库,典型的如 --enable-opcache , --with开头的表示这个扩展依赖第三方的库,像--with-curl就依赖第三方的libcurl库,系统需要 安装这个库的开发包(头文件,共享库so文件,静态库a文件)才能通过configure配置)

    configure 这一步报了错,告诉我 找不到 png.h

    解决:sudo dnf install libpng libpng-devel  一般情况下缺少某个头文件,多半是没有安装 **-devel 开发包,这里可以不安装 libpng 但是需要 libpng-devel

    重新configure,告诉我 cURL 没有找到或者版本低于7.15

    通过 rpm -qa | grep curl   发现我安装了 curl,并且是7.43,所以问题其实就上面说道的,缺少 curl-devel

    解决:sudo dnf install curl-devel 

    由于我本地机用了一段时间了,环境还是很给力,就没有在报依赖问题了

    然后 make && sudo make install

    几分钟就安装成功了

    所有程序包括配置文件都安装到了我指定的目录下面

    /usr/local/php7/ 

    然后替换掉低版本的php

    sudo cp /usr/bin/php /usr/bin/php5

    sudo ln -s  /usr/local/php7/bin/php /usr/bin/php

    sudo ln -s  /usr/local/php7/sbin/php-fpm  /usr/bin/php-fpm

    安装后默认的配置文件在 /usr/local/php7/etc/ 下面  ,配置文件加了.example后缀,去掉就可以了

    (插一句,有些时候很诡异,安装好后没有配置文件,不要害怕,在下载的php源代码里面可以拷贝一个 .example配置文件过来)

  • 相关阅读:
    <td>标签clospan和rowspan 可横跨列数和行数
    网线水晶头接法
    安装在墙上的网线接口坏了的处理方法
    php array 数组及数组索引
    php strpos返回字符串首次出现的位置
    escape()、encodeURI()、encodeURIComponent()区别详解
    smarty assign 赋值
    二叉搜索树(搜索二叉树)转换成一个双向链表
    new malloc和delete free 的区别
    两个栈实现一个队列
  • 原文地址:https://www.cnblogs.com/codeAB/p/9191096.html
Copyright © 2011-2022 走看看