php編譯出錯
『壹』 編譯php提示出錯找不到libc-client.無法編譯PHP怎麼辦
I. 安裝devel庫
yum install pam-devel libc-client libc-client-devel -y
如果使用了yum安裝了libc-client,那麼在以後編譯參數--with-imap=/usr/local/php-imap中的路徑應該刪除,即--with-imap。
如果這樣還不能解決,那麼就需要手動編譯imap2007f了!
II. 手動編譯imap2007f
腳本取自 http://forum.directadmin.com/showthread.php?t=45434
在/usr/src目錄下運行以下腳本,將會在/usr/local/php-imap目錄下生成imap需要的庫
#!/bin/sh
#ScriptforPHP-IMAPinstallation.0.1b
#WrittenbyMartynasBendorius(smtalk)
CWD=`pwd`
OS=`uname`
#Isita64-bitOS?
B64=0
B64COUNT=`uname-m|grep-c64`
if["$B64COUNT"-eq1];then
B64=1
LD_LIBRARY_PATH=/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib
exportLD_LIBRARY_PATH
fi
if[!-e/usr/include/krb5.h]&&[-e/etc/redhat-release];then
echo"Installingkrb5-devel"
yum-yinstallkrb5-devel
fi
VERSION=2007f
PROTOCOL=ftp
URL="${PROTOCOL}://ftp.cac.washington.e/imap/imap-${VERSION}.tar.Z"
FILENAME=imap-${VERSION}
TARBALL=${FILENAME}.tar.Z
echo"Downloading${TARBALL}..."
wget-O${TARBALL}${URL}
tarxzf${TARBALL}
cd${FILENAME}
echo"Installing${FILENAME}..."
if[${OS}="FreeBSD"];then
if[${B64}-eq0];then
makebsf
else
makebsfEXTRACFLAGS=-fPIC
fi
else
perl-pi-e's#SSLDIR=/usr/local/ssl#SSLDIR=/etc/pki/tls#'src/osdep/unix/Makefile
perl-pi-e's#SSLINCLUDE=$(SSLDIR)/include#SSLINCLUDE=/usr/include/openssl#'src/osdep/unix/Makefile
perl-pi-e's#SSLLIB=$(SSLDIR)/lib#SSLLIB=/usr/lib/openssl#'src/osdep/unix/Makefile
if[${B64}-eq0];then
makeslx
else
makeslxEXTRACFLAGS=-fPIC
fi
fi
echo"Copyingfilesto/usr/local/php-imap"
mkdir-p/usr/local/php-imap/include
mkdir-p/usr/local/php-imap/lib
chmod-R077/usr/local/php-imap
cp-fc-client/*.h/usr/local/php-imap/include/
cp-fc-client/*.c/usr/local/php-imap/lib/
cp-fc-client/c-client.a/usr/local/php-imap/lib/libc-client.a
cd..
rm-rf${FILENAME}
if[-d/usr/lib/x86_64-linux-gnu]&&[!-d/usr/kerberos/lib];then
mkdir-p/usr/kerberos
ln-s/usr/lib/x86_64-linux-gnu/usr/kerberos/lib
fi
exit0;
III. 開始編譯
下面是編譯PHP的參數,如果出現問題,請參考編譯PHP5.6 和 PHP編譯錯誤的解決辦法。
./configure--prefix=/usr/local/php--with-pdo-pgsql--with-zlib-dir--with-freetype-dir--enable-mbstring--with-libxml-dir=/usr--enable-soap--enable-calendar--with-curl--with-mcrypt--with-zlib--with-gd--with-pgsql--disable-rpath--enable-inline-optimization--with-bz2--with-zlib--enable-sockets--enable-sysvsem--enable-sysvshm--enable-pcntl--enable-mbregex--enable-exif--enable-bcmath--with-mhash--enable-zip--with-pcre-regex--with-mysql--with-pdo-mysql--with-mysqli--with-jpeg-dir=/usr--with-png-dir=/usr--enable-gd-native-ttf--with-openssl--enable-ftp--with-imap=/usr/local/php-imap--with-imap-ssl--with-kerberos--with-gettext--with-xmlrpc--with-xsl--enable-opcache--enable-fpm--with-fpm-user=www--with-fpm-group=www--disable-fileinfo
IV. 其他問題
在本次編譯中,又遇到了幾個怪事
set--enable-opcache=no
configure:error:Don',set--enable-opcache=no
這個問題還是庫文件的鏈接問題
解決:
echo/usr/local/lib>/etc/ld.so.conf.d/local.conf
ldconfig-v
讓編譯的PHP支持memcache
『貳』 編譯PHP提示zip錯誤,請問怎麼解決
1、下錯東西了,壓縮文件大多數後綴都是 .rar 或者 .7z 的,下載的是.php。一看就會出問題,是在論壇下載東西吧,那就別用迅雷下,右鍵,目標另存為 下載,也就是說用瀏覽器下載,如果還是這個文件,那麼就是論壇需要注冊才能下載,或者就是...。 2、mime_content_type返回指定文件的MIME類型, 用法:echo mime_content_type('php.gif') ; 輸出:image/giftext/plain 但是php 5.3.0已經將該函數廢棄。如果仍想使用此函數,那麼可以對php進行配置啟用magic_mime擴展。
『叄』 編譯PHP提示出錯找不到libc-client.無法編譯PHP怎麼辦
編譯PHP提示出錯找不到libc-client.無法編譯PHP怎麼辦?
I. 安裝devel庫
yum install pam-devel libc-client libc-client-devel -y
如果使用了yum安裝了libc-client,那麼在以後編譯參數--with-imap=/usr/local/php-imap中的路徑應該刪除,即--with-imap。
如果這樣還不能解決,那麼就需要手動編譯imap2007f了!
II. 手動編譯imap2007f
在/usr/src目錄下運行以下腳本,將會在/usr/local/php-imap目錄下生成imap需要的庫
#!/bin/sh
# Script for PHP-IMAP installation. 0.1b
# Written by Martynas Bendorius (smtalk)
CWD=`pwd`
OS=`uname`
#Is it a 64-bit OS?
B64=0
B64COUNT=`uname -m | grep -c 64`
if [ "$B64COUNT" -eq 1 ]; then
B64=1
LD_LIBRARY_PATH=/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
fi
if [ ! -e /usr/include/krb5.h ] && [ -e /etc/redhat-release ]; then
echo "Installing krb5-devel"
yum -y install krb5-devel
fi
VERSION=2007f
PROTOCOL=ftp
URL="${PROTOCOL}://ftp.cac.washington.e/imap/imap-${VERSION}.tar.Z"
FILENAME=imap-${VERSION}
TARBALL=${FILENAME}.tar.Z
echo "Downloading ${TARBALL}..."
wget -O ${TARBALL} ${URL}
tar xzf ${TARBALL}
cd ${FILENAME}
echo "Installing ${FILENAME}..."
if [ ${OS} = "FreeBSD" ]; then
if [ ${B64} -eq 0 ]; then
make bsf
else
make bsf EXTRACFLAGS=-fPIC
fi
else
perl -pi -e 's#SSLDIR=/usr/local/ssl#SSLDIR=/etc/pki/tls#' src/osdep/unix/Makefile
perl -pi -e 's#SSLINCLUDE=\$\(SSLDIR\)/include#SSLINCLUDE=/usr/include/openssl#' src/osdep/unix/Makefile
perl -pi -e 's#SSLLIB=\$\(SSLDIR\)/lib#SSLLIB=/usr/lib/openssl#' src/osdep/unix/Makefile
if [ ${B64} -eq 0 ]; then
make slx
else
make slx EXTRACFLAGS=-fPIC
fi
fi
echo "Copying files to /usr/local/php-imap"
mkdir -p /usr/local/php-imap/include
mkdir -p /usr/local/php-imap/lib
chmod -R 077 /usr/local/php-imap
cp -f c-client/*.h /usr/local/php-imap/include/
cp -f c-client/*.c /usr/local/php-imap/lib/
cp -f c-client/c-client.a /usr/local/php-imap/lib/libc-client.a
cd ..
rm -rf ${FILENAME}
if [ -d /usr/lib/x86_64-linux-gnu ] && [ ! -d /usr/kerberos/lib ]; then
mkdir -p /usr/kerberos
ln -s /usr/lib/x86_64-linux-gnu /usr/kerberos/lib
fi
exit 0;
『肆』 編譯安裝php時出錯configure: error: build test failed.
你先確定一下你./configure時有沒有出錯提示?並不是說./configure完就說行了,因為它的參數因環境不同而異!如果執行完沒錯就應該sudo
make是沒什麼問題,就算是有也應該是依懶包看出錯提示,你的是GD庫,你編譯gd庫時參數如何?編譯安裝正常嗎?
情況好多,我用UBUNTU編譯時也是拆騰好久才編好,也好不經過這樣拆騰也不知道編譯時的要點
記得./configure
--help看一下幫助
所以我認為先重編一下你的GD庫,還有你編譯PHP時注意參數的正確如
--with-gd=/opt/gd
具體實際安裝路徑
『伍』 編譯PHP提示出錯找不到libc-client.無法編譯PHP怎麼辦
I. 安裝devel庫
yum install pam-devel libc-client libc-client-devel -y
如果使用了yum安裝了libc-client,那麼在以後編譯參數--with-imap=/usr/local/php-imap中的路徑應該刪除,即--with-imap。
如果這樣還不能解決,那麼就需要手動編譯imap2007f了!
II. 手動編譯imap2007f
腳本取自 http://forum.directadmin.com/showthread.php?t=45434
在/usr/src目錄下運行以下腳本,將會在/usr/local/php-imap目錄下生成imap需要的庫
#!/bin/sh
# Script for PHP-IMAP installation. 0.1b
# Written by Martynas Bendorius (smtalk)
CWD=`pwd`
OS=`uname`
#Is it a 64-bit OS?
B64=0
B64COUNT=`uname -m | grep -c 64`
if [ "$B64COUNT" -eq 1 ]; then
B64=1
LD_LIBRARY_PATH=/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
fi
if [ ! -e /usr/include/krb5.h ] && [ -e /etc/redhat-release ]; then
echo "Installing krb5-devel"
yum -y install krb5-devel
fi
VERSION=2007f
PROTOCOL=ftp
URL="${PROTOCOL}://ftp.cac.washington.e/imap/imap-${VERSION}.tar.Z"
FILENAME=imap-${VERSION}
TARBALL=${FILENAME}.tar.Z
echo "Downloading ${TARBALL}..."
wget -O ${TARBALL} ${URL}
tar xzf ${TARBALL}
cd ${FILENAME}
echo "Installing ${FILENAME}..."
if [ ${OS} = "FreeBSD" ]; then
if [ ${B64} -eq 0 ]; then
make bsf
else
make bsf EXTRACFLAGS=-fPIC
fi
else
perl -pi -e 's#SSLDIR=/usr/local/ssl#SSLDIR=/etc/pki/tls#' src/osdep/unix/Makefile
perl -pi -e 's#SSLINCLUDE=\$\(SSLDIR\)/include#SSLINCLUDE=/usr/include/openssl#' src/osdep/unix/Makefile
perl -pi -e 's#SSLLIB=\$\(SSLDIR\)/lib#SSLLIB=/usr/lib/openssl#' src/osdep/unix/Makefile
if [ ${B64} -eq 0 ]; then
make slx
else
make slx EXTRACFLAGS=-fPIC
fi
fi
echo "Copying files to /usr/local/php-imap"
mkdir -p /usr/local/php-imap/include
mkdir -p /usr/local/php-imap/lib
chmod -R 077 /usr/local/php-imap
cp -f c-client/*.h /usr/local/php-imap/include/
cp -f c-client/*.c /usr/local/php-imap/lib/
cp -f c-client/c-client.a /usr/local/php-imap/lib/libc-client.a
cd ..
rm -rf ${FILENAME}
if [ -d /usr/lib/x86_64-linux-gnu ] && [ ! -d /usr/kerberos/lib ]; then
mkdir -p /usr/kerberos
ln -s /usr/lib/x86_64-linux-gnu /usr/kerberos/lib
fi
exit 0;
III. 開始編譯
下面是編譯PHP的參數,如果出現問題,請參考編譯PHP5.6 和 PHP編譯錯誤的解決辦法。
./configure --prefix=/usr/local/php --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-pdo-mysql --with-mysqli --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --enable-ftp --with-imap=/usr/local/php-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm --with-fpm-user=www --with-fpm-group=www --disable-fileinfo
IV. 其他問題
在本次編譯中,老高又遇到了幾個怪事
set --enable-opcache=no
configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no
這個問題還是庫文件的鏈接問題
解決:
echo /usr/local/lib > /etc/ld.so.conf.d/local.conf
ldconfig -v
讓編譯的PHP支持memcache
『陸』 編譯PHP提示出錯找不到libc-client.無法編譯PHP怎麼辦
I. 安裝devel庫
yum install pam-devel libc-client libc-client-devel -y
如果使用了yum安裝了libc-client,那麼在以後編譯參數--with-imap=/usr/local/php-imap中的路徑應該刪除,即--with-imap。
如果這樣還不能解決,那麼就需要手動編譯imap2007f了!
II. 手動編譯imap2007f
在/usr/src目錄下運行以下腳本,將會在/usr/local/php-imap目錄下生成imap需要的庫
#!/bin/sh
# Script for PHP-IMAP installation. 0.1b
# Written by Martynas Bendorius (smtalk)
CWD=`pwd`
OS=`uname`
#Is it a 64-bit OS?
B64=0
B64COUNT=`uname -m | grep -c 64`
if [ "$B64COUNT" -eq 1 ]; then
B64=1
LD_LIBRARY_PATH=/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
fi
if [ ! -e /usr/include/krb5.h ] && [ -e /etc/redhat-release ]; then
echo "Installing krb5-devel"
yum -y install krb5-devel
fi
VERSION=2007f
PROTOCOL=ftp
URL="${PROTOCOL}://ftp.cac.washington.e/imap/imap-${VERSION}.tar.Z"
FILENAME=imap-${VERSION}
TARBALL=${FILENAME}.tar.Z
echo "Downloading ${TARBALL}..."
wget -O ${TARBALL} ${URL}
tar xzf ${TARBALL}
cd ${FILENAME}
echo "Installing ${FILENAME}..."
if [ ${OS} = "FreeBSD" ]; then
if [ ${B64} -eq 0 ]; then
make bsf
else
make bsf EXTRACFLAGS=-fPIC
fi
else
perl -pi -e 's#SSLDIR=/usr/local/ssl#SSLDIR=/etc/pki/tls#' src/osdep/unix/Makefile
perl -pi -e 's#SSLINCLUDE=\$\(SSLDIR\)/include#SSLINCLUDE=/usr/include/openssl#' src/osdep/unix/Makefile
perl -pi -e 's#SSLLIB=\$\(SSLDIR\)/lib#SSLLIB=/usr/lib/openssl#' src/osdep/unix/Makefile
if [ ${B64} -eq 0 ]; then
make slx
else
make slx EXTRACFLAGS=-fPIC
fi
fi
echo "Copying files to /usr/local/php-imap"
mkdir -p /usr/local/php-imap/include
mkdir -p /usr/local/php-imap/lib
chmod -R 077 /usr/local/php-imap
cp -f c-client/*.h /usr/local/php-imap/include/
cp -f c-client/*.c /usr/local/php-imap/lib/
cp -f c-client/c-client.a /usr/local/php-imap/lib/libc-client.a
cd ..
rm -rf ${FILENAME}
if [ -d /usr/lib/x86_64-linux-gnu ] && [ ! -d /usr/kerberos/lib ]; then
mkdir -p /usr/kerberos
ln -s /usr/lib/x86_64-linux-gnu /usr/kerberos/lib
fi
exit 0;
III. 開始編譯
下面是編譯PHP的參數,如果出現問題,請參考編譯PHP5.6 和 PHP編譯錯誤的解決辦法。
./configure --prefix=/usr/local/php --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-pdo-mysql --with-mysqli --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --enable-ftp --with-imap=/usr/local/php-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm --with-fpm-user=www --with-fpm-group=www --disable-fileinfo
這個問題還是庫文件的鏈接問題
解決:
1 echo /usr/local/lib > /etc/ld.so.conf.d/local.conf
2 ldconfig -v
echo /usr/local/lib > /etc/ld.so.conf.d/local.conf
ldconfig -v
讓編譯的PHP支持memcache
『柒』 php編譯curl出錯,緊急求助高手門
輸入phpinfo() 看curl擴展是否啟用,沒有啟用的話需要啟用才可以使用curl功能。
啟用方法:
WINDOWS:找到正在使用的PHP.INI文件 去掉;extension=php_curl.dll 前面的;
Linux : 重新編譯PHP ,–with-curl=/usr/local/curl 其中/usr/local/curl安裝的curl的目錄
『捌』 編譯安裝php時出錯configure: error: build test failed.
對於PHP在./configure的時候出現下面問題:
checking whether to enable LIBXML support... yes
checking libxml2 install dir... /usr/local/libxml2/
checking for xml2-config path... /usr/local/libxml2//bin/xml2-config
checking whether libxml build works... no
configure: error: build test failed. Please check the config.log for details.
#按照提示我們查看php安裝目錄下的config.log文件,搜索xml2-config
[root@lamp-lnmp php-5.6.40]# vim config.log
#發現下面內容:
configure:23104: checking for xml2-config path
configure:23118: result: /usr/local/libxml2//bin/xml2-config
configure:23262: checking whether libxml build works
configure:23289: cc -o conftest -g -O2 -fvisibility=hidden -pthread -D_REENTRANT -Wl,-rpath,/usr/local/libxml2/lib -L/usr/local/libxml2/lib conftest.c
-lrt -lm -ldl -lnsl -lxml2 -lz -lm -ldl >&5
configure:23289: $? = 0
configure:23289: ./conftest
./conftest: /lib64/libz.so.1: version `ZLIB_1.2.3.3' not found (required by /usr/local/libxml2/lib/libxml2.so.2)
configure:23289: $? = 1
configure: program exited with status 1
configure: failed program was:
#我們這里查看一下這個/lib64/libz.so.1的文件,發現鏈接到一個舊的libz文件中,這里將/lib64/libz.so.1軟連接到新文件/usr/local/lib/libz.so.1.2.11中進行下面設置。
[root@lamp-lnmp ~]# ln -sf /usr/local/lib/libz.so.1.2.11 /lib64/libz.so.1
[root@lamp-lnmp ~]# ls -l /lib64/libz.so.1
lrwxrwxrwx 1 root root 29 Feb 2 11:13 /lib64/libz.so.1 -> /usr/local/lib/libz.so.1.2.11