zoukankan      html  css  js  c++  java
  • centOs编译安装php7.2支持微擎php扩展

    发现yum安装许多坑

    于是只好编译安装

    第一步得到镜像地址

    在      https://www.php.net/downloads.php     有的地址比较慢,需要耐心等待

    cd /usr/local/src

    wget https://www.php.net/distributions/php-7.2.19.tar.gz

    tar xzvf php-7.2.19.tar.gz

    cd php-7.2.19

    接下来是编译安装

    配置命令
    ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --enable-mbstring --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pear --enable-sockets --with-freetype-dir=/usr --with-zlib --with-libxml-dir=/usr --with-xmlrpc --enable-zip --enable-fpm --enable-xml --enable-sockets --with-gd --with-zlib --with-iconv --enable-zip --with-freetype-dir=/usr/lib/ --enable-soap --enable-pcntl --enable-cli --with-curl

    拆开看更清晰:

    ./configure
    --prefix=/usr/local/php
    --with-config-file-path=/usr/local/php
    --enable-mbstring
    --enable-ftp --with-gd
    --with-jpeg-dir=/usr
    --with-png-dir=/usr
    --with-mysql=mysqlnd
    --with-mysqli=mysqlnd
    --with-pdo-mysql=mysqlnd
    --with-pear --enable-sockets
    --with-freetype-dir=/usr
    --with-zlib --with-libxml-dir=/usr
    --with-xmlrpc
    --enable-zip
    --enable-fpm
    --enable-xml
    --enable-sockets
    --with-gd
    --with-zlib
    --with-iconv
    --enable-zip
    --with-freetype-dir=/usr/lib/
    --enable-soap
    --enable-pcntl
    --enable-cli
    --with-curl

    这个先不管了

    解决方法:
    yum install libjpeg libpng freetype libjpeg-devel libpng-devel freetype-devel -y

    若是64位系统
    解决方法:
    yum install libjpeg.x86_64 libpng.x86_64 freetype.x86_64 libjpeg-devel.x86_64 libpng-devel.x86_64 freetype-devel.x86_64 -y

    编译php后发生warning:configure:WARNING:unrecognizedoptions:--with-mysql 只是php7版本不支持mysql模块

    ./configure --help 查看configure的正确语法,重新编译php支持mysql,改用--with-pdo-mysql

    php7版本编译语句是:

    ./configure --prefix=/usr/local/php 
    --with-config-file-path=/usr/local/php/etc 
    --enable-fpm 
    --with-fpm-user=www 
    --with-fpm-group=www 
    --enable-mysqlnd 
    --with-mysqli=mysqlnd 
    --with-pdo-mysql=mysqlnd 
    --enable-mysqlnd-compression-support 
    --with-iconv-dir 
    --with-freetype-dir 
    --with-jpeg-dir 
    --with-png-dir 
    --with-zlib 
    --with-libxml-dir
    --enable-xml 
    --disable-rpath 
    --enable-bcmath
    --enable-shmop 
    --enable-sysvsem 
    --enable-inline-optimization 
    --with-curl --enable-mbregex 
    --enable-mbstring 
    --enable-intl 
    --with-mcrypt 
    --with-libmbfl 
    --enable-ftp 
    --with-gd 
    --enable-gd-jis-conv 
    --with-openssl 
    --with-mhash 
    --enable-pcntl 
    --enable-sockets 
    --with-xmlrpc 
    --enable-zip 
    --enable-soap 
    --with-gettext 
    --disable-fileinfo 
    --enable-opcache 
    --with-pear 
    --enable-maintainer-zts 
    --with-ldap=shared 
    --without-gdbm


    configure: WARNING: unrecognized options: --with-mcrypt, --enable-gd-native-ttf

    php7.2不支持 --with-mcrypt, --enable-gd-native-ttf,把这两个选项删除掉。

    修改后./configure通过的语句

    其他错误解决: PHP编译安装时常见错误解决办法,php编译常见错误

    ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_ctor':
    /home/king/php-5.2.13/ext/iconv/iconv.c:2491: undefined reference to `libiconv_open'
    collect2: ld returned 1 exit status
    make: *** [sapi/cli/php] Error 1
    [root@test php-5.2.13]# vi Makefile

    在安裝 PHP 到系统中时要是发生「undefined reference to libiconv_open'」之类的错误信息,那表示在「./configure 」沒抓好一些环境变数值。错误发生点在建立「-o sapi/cli/php」是出错,没給到要 link 的 iconv 函式库参数。 解决方法:编辑Makefile 大约77 行左右的地方: EXTRA_LIBS = ..... -lcrypt 在最后加上 -liconv,例如: EXTRA_LIBS = ..... -lcrypt -liconv 然后重新再次 make 即可。

    或者用另一种办法

    make ZEND_EXTRA_LIBS='-liconv'

    ln -s /usr/local/lib/libiconv.so.2 /usr/lib64/

    作者用的第一种办法解决的,编译好Makefile后,记得先make clean一下,再make,不然会报错
     

    make && make install
    

     

    See <http://bugzilla.redhat.com/bugzilla> for instructions.
    make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1

    查询得知是应为vps内存太小没到1G引起的,在./configure时加--disable-fileinfo也不能解决

    内存不足,mysql 5.5以上版本编译需要1G以上内存,可以编译安装mysql5.5

  • 相关阅读:
    《编程珠玑》读后感之一
    《梦断代码》读后感之三
    java项目中下载文件文件名乱码
    struts中action与页面之间的传值方式
    使用JSON数据报错和方法
    java中实现将一个数字字符串转换成逗号分隔的数字串, 即从右边开始每三个数字用逗号分隔
    java中判断一个字符在字符串中出现的次数
    使用面向对象(OO)的思想,实现循环输入多个会员的信息,根据会员编号,查找会员积分
    MySQL添加用户、删除用户与授权
    vi编辑器的使用
  • 原文地址:https://www.cnblogs.com/guiyishanren/p/11098217.html
Copyright © 2011-2022 走看看