因为我是将所有的源码安装的软将装在 /software/ 这个目录中的所以先创建这个目录
mkdir software
1.yum安装所需依赖
yum -y install epel-release
yum -y install gcc gcc-c++ libxml2-devel openssl-devel pcre-devel zlib-devel libcurl-devel enchant-devel gd-devel libwebp-devel libpng-devel libXpm-devel freetype-devel gettext-devel libsodium-devel libtidy-devel libxslt-devel libsodium-devel valgrind-devel bzip2-devel libicu-devel libevent-devel libmcrypt-devel sqlite-devel oniguruma-devel
2.安装其他依赖
安装jpeg 下载地址 http://www.ijg.org/files/
下载后解压并进入目录./configure --prefix=/software/jpeg && make && make install
安装cmake(yum 安装的 cmake 版本太低了(安装libzip需要用这个工具))下载地址 https://cmake.org/download/
下载后解压并进入目录./configure --prefix=/software/cmake && make && make ln -s /software/cmake/bin/cmake /usr/bin/
安装libzip(yum 安装的 libzip 版本太低了) 下载地址 https://libzip.org/download/
下载后解压并进入目录mkdir build && cd build cmake ../ -DCMAKE_INSTALL_PREFIX=/software/libzip && make && make install
安装libiconv模块(yum 中没有找到) 下载地址 https://ftp.gnu.org/gnu/libiconv/
解压并进入目录./configure --prefix=/software/libiconv && make && make install
3.编译配置(注意:--with-jpeg-dir
--with-iconv-dir
--with-iconv
--with-libzip
的配置值 是你安装的目录)
./configure --prefix=/software/php7.4.10 --enable-fpm --with-jpeg-dir=/software/jpeg --enable-libxml --with-libxml-dir --with-openssl --with-pcre-regex --with-pcre-jit --with-pcre-valgrind --with-zlib --enable-bcmath --with-bz2 --enable-calendar --enable-ctype --with-curl --enable-dba --enable-dom --with-libxml-dir --with-enchant --enable-exif --enable-fileinfo --enable-filter --with-pcre-dir --enable-ftp --with-openssl-dir --with-gd --with-webp-dir --with-png-dir --with-zlib-dir --with-xpm-dir --with-freetype-dir --enable-gd-jis-conv --with-gettext --enable-hash --enable-intl --enable-json --enable-mbstring --enable-mbregex --enable-mbregex-backtrack --enable-pdo --enable-phar --enable-posix --enable-session --enable-shmop --enable-simplexml --enable-soap --enable-sockets --with-sodium --enable-sysvmsg --enable-sysvsem --enable-sysvshm --with-tidy --enable-tokenizer --enable-wddx --enable-xml --enable-xmlreader --enable-xmlwriter --with-xsl --enable-zend-test --enable-zip --with-libzip=/software/libzip --enable-mysqlnd --with-iconv=/software/libiconv --with-iconv-dir=/software/libiconv
make
make install
其它说明
以前在编译php7.2的时候,遇到过找不到 libzip.h 头文件的情况(只有那一次遇到过,之后再也没遇到过)
其实就是没有到--with-libzip
配置的目录中去找,什么原因我也不知道。之后再也没遇到过这个情况
当时的解决方法:
首先:配置动态链接库。vi 编辑 /etc/ld.so.conf , 添加下面两行
/software/libzip/lib64 /software/libiconv/lib 添加完成后执行命令 ldconfig
然后:做几个软连接
ln -s /usr/local/libzip/lib64/libzip.so /lib64/libzip.so ln -s /usr/local/libzip/include/zip.h /usr/include/zip.h ln -s /usr/local/libzip/include/zipconf.h /usr/include/zipconf.h