zoukankan      html  css  js  c++  java
  • php5.3.27源码安装之遇到的报错

     

     PHP大家都知道是一门动态的网页编程语言。LNMP也是大家熟知的一种架构。这里面Linux   nginx   mysql  我们都已经安装好了,现在就剩下php没有安装了。

    我们要来源码编译安装php5.3.27

    环境背景:Linux  CentOS release 6.10 (Final)

    nginx  nginx-1.6.2/ 源码安装。安装目录 /application/nginx -> /application/nginx-1.6.2/

    mysql  二进制包安装,安装目录 mysql -> /application/mysql-5.5.32/

    首先编译安装一下libiconv-1.14

    tar xf libiconv-1.14.tar.gz
    ls
    mv libiconv-1.14 /application/
    ln -s /application/libiconv-1.14/ /application/libiconv
    cd /application/libiconv
     ./configure --prefix=/usr/local/libiconv

    make && make install

    最后开始编译安装php

    安装php之前我们需要安装它所需要的依赖包。

    yum install zlib-devel libxml2-devel libjpeg-devel libiconv-devel

    freetype-devel libpng-devel gd-devel curl-devel libxslt-devel
    libcurl-devdel libmcrypt-devel mhash mcrypt

    yum install libxslt-devel libmcrypt-devel

    yum install libtool-ltdl.x86_64 libtool-ltdl-devel.x86_64

    为了踏平后面遇到的坑,先做个软链接

    ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/

    touch  /software/php-5.3.27/ext/phar/phar.phar

    然后添加一个路径 echo "/application/mysql/lib" >>/etc/ld.so.conf.d/mysql.conf

    ldconfig

    我们下载好的php5.3.27放在/software里

    然后就是解压,

    ./configure   

    这里的参数 有这些

    ./configure --prefix=/application/php5.3.27 
    --with-mysql=/application/mysql 
    --with-iconv-dir=/usr/local/libiconv 
    --with-freetype-dir 
    --with-jpeg-dir 
    --with-png-dir 
    --with-zlib 
    --with-libxml-dir=/usr 
    --enable-xml 
    --disable-rpath 
    --enable-safe-mode 
    --enable-bcmath 
    --enable-shmop 
    --enable-sysvsem 
    --enable-inline-optimization 
    --with-curl 
    --with-curlwrappers 
    --enable-mbregex 
    --enable-fpm 
    --enable-mbstring 
    --with-mcrypt 
    --with-gd 
    --enable-gd-native-ttf 
    --with-openssl 
    --with-mhash 
    --enable-pcntl 
    --enable-sockets 
    --with-xmlrpc 
    --enable-zip 
    --enable-soap 
    --enable-short-tags 
    --enable-zend-multibyte 
    --enable-static 
    --with-xsl 
    --with-fpm-user=nginx 
    --with-fpm-group=nginx 
    --enable-ftp

    make

    makeinstall

    最后最个软链接

    ln -s /application/php5.3.27/ /application/php

    ls -l /application/

    cp /software/php-5.3.27/php.ini-production /application/php/lib/php.ini

    之所以要拷贝production这个配置文件,是因为这个是生产环境的配置文件,还有另一个配置文件是开发环境,开发环境的就是要能多看一些参数,但是这对于生产环境并不安全。

    cp php-fpm.conf.default php-fpm.conf

     -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    后面总结一些网上的报错。

    安装PHP过程中,make步骤报错:(集中网络上各种解决方法)

    (1)
    -liconv -o sapi/fpm/php-fpm

    /usr/bin/ld: cannot find -liconv

    collect2: ld returned 1 exit status

    make: *** [sapi/fpm/php-fpm] Error 1

    [root@localhost php-5.4.5]#


    初步定位是iconv的问题
    解决方法 把libiconv卸载掉
    进入libiconv源码目录执行
    #make uninstall
    #make clean

    # ./configure –prefix=/usr/local/libiconv
    # make
    # make install

    在进入php源码目录

    ./configure php时加上参数--with-iconv=/usr/local/libiconv

    (2)
    /usr/bin/ld: cannot find -lltdl
    collect2: ld returned 1 exit status
    make: *** [sapi/cgi/php-cgi] Error 1
    解决办法:安装包 yum install libtool-ltdl.x86_64 libtool-ltdl-devel.x86_64

    (3)
    collect2: ld returned 1 exit status
    make: *** [sapi/cgi/php-cgi] Error 1

    解决办法:

    请安装lib所需的安装包

    yum install ntp vim-enhanced gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel ncurses-devel zlib-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel libXpm-devel gettext-devel pam-devel kernel

    执行安装完以后即可解决问题

    make

    make install

    (4)
    装php环境出现

    ext/iconv/iconv.o: In function `php_iconv_stream_filter_ctor’:
    /usr/local/soft/php-5.2.14/ext/iconv/iconv.c:2491: undefined reference to `libiconv_open’
    collect2: ld returned 1 exit status
    make: *** [sapi/cgi/php-cgi] Error 1

    我的编译是这样:

    ./configure –prefix=/usr/local/php –with-gd=/usr/local/gd –with-jpeg-dir=/usr/local/jpeg –with-png-dir=/usr/local/png –with-freetype-dir=/usr/local/freetype –with-mysql=/usr/local/mysql –enable-fastcgi –enable-fpm

    解决办法:

    增加 – - disable-cli

    (5)
    编译php时
    ext/xmlreader/php_xmlreader.o: In function `zim_xmlreader_XML':
    /usr/local/src/php-5.2.8/ext/xmlreader/php_xmlreader.c:1109: undefined reference to `xmlTextReaderSetup'
    collect2: ld returned 1 exit status
    make: *** [sapi/cgi/php-cgi] Error 1
    解决办法:折腾了半天,最后先make clean 一下,然后把所有libxml2相关的包都装上重新编译就ok了。

    (6)
    运行可能报错 :我遇到xsl和mcrypt两个库报错,重新安装一下xsl的dev包就可以:
    CentOS : yum install libxslt-devel libmcrypt-devel
    Debian : apt-get install libxslt1-dev libmcrypt-dev
    如果你有其他的库不满足,搜索一下该库,安装一下即可,这一步应该没有太多问题。
    编译:
    make
    我在Debian下make正常,但在CentOS下却提示make错误,
    make: *** [sapi/fpm/php-fpm] Error 1 错误中出现 libiconv,应该是iconv包问题,
    使用下面的命令替换即可:
    make ZEND_EXTRA_LIBS='-liconv'
    完成后:
    make test
    make install

  • 相关阅读:
    HLS、RTSP、RTMP
    浏览器自定义协议
    CMD窗口设置代理
    Win10性能提升设置
    MongoDB
    PMP考位抢夺攻略(二)
    PMP考位抢夺攻略!
    AES php java 互转
    分解uber依赖注入库dig-源码分析
    分解uber依赖注入库dig-使用篇
  • 原文地址:https://www.cnblogs.com/davidz/p/14637489.html
Copyright © 2011-2022 走看看