• 遇到的错误


    安装GD库的时候

    ibz.a: could not read symbols: Bad value
    collect2: ld returned 1 exit status
    make[2]: *** [libgd.la] Error 1
    make[2]: Leaving directory `/lamp/gd-2.0.35'

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

    解决办法 : 重新安装 zlib-1.2.3.tar.gz

    tar -zxvf zlib-1.2.3.tar.gz
    cd zlib-1.2.3
    ./configure

    vi Makefile
    找到 CFLAGS=-O3 -DUSE_MMAP
    在后面加入-fPIC,即变成CFLAGS=-O3 -DUSE_MMAP -fPIC
    接下面步骤

    make
    make install

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

    make: *** [sapi/cli/php] Error 1

    /lamp/php-5.2.6/ext/mysqli/mysqli_repl.c:43: undefined reference to `mysql_disable_reads_from_master'
    collect2: ld returned 1 exit status
    make: *** [sapi/cli/php] Error 1

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

    解决方案: vi Makefile  :set nu 查看行号

    在「./configure 」沒抓好一些环境变数值。错误发生点在建立「-o sapi/cli/php」是出错,没給到要link 的iconv 函式库参数。 解决方法:编辑Makefile 我的php5.2.5在81行的地方:

    EXTRA_LIBS = -lcrypt -lcrypt -lrt -lmysqlclient_r -lgd -lfreetype -lpng -lz -ljpeg -lz -lresolv -lm -ldl -lnsl -lxml2 -lz -lm -lxml2

    -lz -lm -lmysqlclient_r -lz -lcrypt -lnsl -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -l

    crypt

    在其后加上-liconv,不要有空格。如下

    86 EXTRA_LIBS = -lcrypt -lcrypt -lrt -lmysqlclient -lmcrypt -lltdl -lgd -lfreetype -lpng -lz -ljpeg -lresolv -lm -
            ldl -lnsl -lxml2 -lz -lm -lxml2 -lz -lm -lmysqlclient -lz -lcrypt -lnsl -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcry
            pt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -liconv

    参考网站:http://www.2cto.com/kf/201108/99067.html

     -lm -lxml2 -lz -lm -lcrypt  -o sapi/cli/php
    ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_slave_query':
    /lamp/php-5.2.6/ext/mysqli/mysqli_repl.c:207: undefined reference to `mysql_slave_query'
    ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_rpl_query_type':
    /lamp/php-5.2.6/ext/mysqli/mysqli_repl.c:168: undefined reference to `mysql_rpl_query_type'
    ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_rpl_probe':
    /lamp/php-5.2.6/ext/mysqli/mysqli_repl.c:147: undefined reference to `mysql_rpl_probe'
    ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_rpl_parse_enabled':
    /lamp/php-5.2.6/ext/mysqli/mysqli_repl.c:130: undefined reference to `mysql_rpl_parse_enabled'
    ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_master_query':
    /lamp/php-5.2.6/ext/mysqli/mysqli_repl.c:111: undefined reference to `mysql_master_query'
    ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_enable_rpl_parse':
    /lamp/php-5.2.6/ext/mysqli/mysqli_repl.c:93: undefined reference to `mysql_enable_rpl_parse'
    ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_enable_reads_from_master':
    /lamp/php-5.2.6/ext/mysqli/mysqli_repl.c:76: undefined reference to `mysql_enable_reads_from_master'
    ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_disable_rpl_parse':
    /lamp/php-5.2.6/ext/mysqli/mysqli_repl.c:59: undefined reference to `mysql_disable_rpl_parse'
    ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_disable_reads_from_master':
    /lamp/php-5.2.6/ext/mysqli/mysqli_repl.c:43: undefined reference to `mysql_disable_reads_from_master'
    collect2: ld returned 1 exit status
    make: *** [sapi/cli/php] Error 1

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

       with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies

    正确安装Zend Optimizer v3.3.3,解决方案:(网上搜集了很多方案,都不管用)

    简单的说,就是解压的那个.so文件要复杂到php目录下,然后添加那一句。如下

    cd 下载目录

    tar zxvf ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz

    cd ZendOptimizer-3.3.3-linux-glibc23-x86_64

    注意版本对应,我的php版本是5.2.6

    cp data/5_2_x_comp/ZendOptimizer.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/

    修改php.ini

    vi /usr/local/php-5.2.14/etc/php.ini

    按住shift+g到最后并添加:

    [Zend]

    zend_extension=”/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ZendOptimizer.so”

    就可以了

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

    -bash: php: command not found

    解决方案:ln -s /usr/local/php/bin/php /usr/bin

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

    2015年2月22日

     PHP添加CURL扩展库 

    次编译只是单独编译php的扩展库,然后将编译好的php扩展库加到现在运行的php中,不对现在运行的php重新编译,所以对现在运行的php没有任何影响。

    做法一:

    1. 找到当前运行的php版本的源代码目录,如php-5.2.6。进入curl扩展库目录。
    $ cd /lamp/php-5.2.6/ext/curl

    2. 调用phpize程序生成编译配置文件。
    $/usr/local/php/bin/phpize

    3. 编译扩展库,分别执行下面的configuremake命令。
    $./configure -with-php-config=/usr/local/php/bin/php-config

    这一步执行通过后,再执行make命令,如果configure执行不通过,则查找错误原因
    $make
    #make
    成功执行后,生成的扩展库文件在当前目录的 modules 子目录下,
      /home/php-5.2.3/ext/curl/modules/curl.so

    4. 配置php.ini文件
    #将编译好的扩展库文件复制到PHP的扩展目录下,可通过查看phpinfo信息。。
    $cp /home/src/php-5.2.3/ext/curl /modules/curl.so /usr/local/php/ext
    #
    php.ini文件中找到设置扩展目录的位置,然后将扩展路径设置到apache2 modules目录下,并添加扩展库位置。【vi  /usr/local/php/lib/php.ini 复制过来的,大约在823行左右】
     extension_dir = “/usr/local/php/ext/”
     extension=curl.so
    ##
    如果还要添加别的扩展库的话,则只需先将php扩展库编译好,然后copyapache2 modules目录下,再在这个位置,添加一行将编译后的扩展库文件名加上即可。

    5. 重启apache,查看phpinfo信息,即可看到刚才添加进去的curl扩展库。

    参考文章:http://blog.chinaunix.net/uid-26167002-id-3045558.html

    [正好usr/local/php/etc/php.ini文件里面vi之后有这么一段

    extension_dir = "/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/"
    extension="memcache.so";
    extension="pdo.so";
    extension="pdo_mysql.so";
    extension="curl.so";]

     cp curl.so /usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/ 到这个目录下

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

    按照如上方法,编译按照openssl

    Cannot find config.m4.
    Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module

    linux系统怎么样在不重新编译php增加open ssl扩展:

    #下面是php的安装目录  
    /usr/local/php/bin/

    #切换到php安装目录的 etx/openssl目录
    cd /php-5.3.8p/ext/openssl

    #查看openssl目录下有个config0.m4,把config0.m4改名为config.m4。
    cp config0.m4 config.m4

    #依次执行:
    /usr/local/php5/bin/phpize

    ./configure -with-php-config=/usr/local/php/bin/php-config
    make && make install

    #然后找到php.ini所在位置 打开 extension_dir(如果没有则自行添加), 同时添加 extension = "openssl.so"

    #重启服务器 即可

    #openssl 查看方法:
    /usr/local/php5/bin/php -i |grep openssl

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

    添加zlib,同理

     1126  cd /lamp/php-5.2.6/ext

     cd zlib
     1127  mv config0.m4  config.m4
     1128  /usr/local/php/bin/phpize 
      1130  ./configure --with-php-config=/usr/local/php/bin/php-config

    【creating libtool
    appending configuration tag "CXX" to libtool
    configure: creating ./config.status
    config.status: creating config.h

    这样就是成功的标志


     1131  make
     1132  make install

    【[root@iZ25sgya7raZ xmlrpc]# make install
    Installing shared extensions:     /usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/

    就是.so文件生成在这个目录下面


     1133  ls modules/
     1134  cd /usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/
     1135  ls
     1136  vi /usr/local/php/etc/php.ini 

    【添加上

    extension_dir = "/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/"
    extension="memcache.so";
    extension="pdo.so";
    extension="pdo_mysql.so";
    extension="curl.so";

    extension="zlib.so";


     1138   /usr/local/apache2/bin/apachectl stop
     1139   /usr/local/apache2/bin/apachectl start

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

    添加xmlrpc同理

    疑问:编译php的时候,是不是加一个选项就不要这么加.so文件了

    cd /lamp/php-5.2.6

    ./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql/ --with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg6/ --with-png-dir=/usr/local/libpng/ --with-freetype-dir=/usr/local/freetype/ --with-gd=/usr/local/gd2/ --with-mcrypt=/usr/local/libmcrypt/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets

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

    -----

    递归可读可写

    [root@iZ25sgya7raZ apache2]# chmod 777 htdocs/
    [root@iZ25sgya7raZ apache2]# chmod -R 777 htdocs/

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

    2015年2月25日

    默认的php编译openssl错误,5.2.6版本的php好像有问题

    遇到同样的错误问题解决

    http://www.linuxidc.com/Linux/2014-04/100486.htm

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

    2015年2月26日 直接解压编译php,没有apache和mysql

    ./configure --prefix=/usr/local/php5  

    configure: error: xml2-config not found. Please check your libxml2 installation.

    重新安装libxml2和libxml2-devel包

    yum install libxml2

    yum install libxml2-devel -y

    安装好了php,继续编译php变成.so文件那个

    Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.

     yum install m4

    yum install autoconf

     cd /opt/php5.2.17/etc/openssl

    ./configure --with-openssl --with-php-config=/usr/local/php5/bin/php-config

  • 相关阅读:
    如何设计API返回码(错误码)?
    处理git项目内部结构一个变多个子包后提交失败问题
    mysql触发器例子
    使用kafka客戶端例子(开启kerberos验证)
    Shell脚本应用(for、while循环语句和case分支语句)
    Linux防火墙基础与编写防火墙规则
    Squid代理服务器
    rsync远程同步的基本配置与使用
    Shell脚本应用(if语句的结构)
    Shell的基础介绍和案例
  • 原文地址:https://www.cnblogs.com/bluewelkin/p/4296297.html
Copyright © 2020-2023  润新知