First, the package may not be available in the enabled repositories of your Linux distribution. In addition, the
repositories that offer to download and install Nginx automatically often contain outdated versions. More importantly, you need to configure a variety of significant compile-time options.
# 进入工作目录,Linux下典型的编译安装工作目录如/usr/local/src cd /usr/local/src # 从官方网站下载源代码压缩包,此处假设某软件app,版本为1.2.3 # 官方网站的下载链接路径是http://app.domain.tld/download # 源码包文件名是app-1.2.3.tar.gz,这意味着可通过tar命令加gz格式对应的参数z解压 wget http://app.domain.tld/download/app-1.2.3.tar.gz # 解压源码包并进入解压后的目录,如果想下载后直接解压进入安装目录,可使用后文实例中的管道符 tar xzvf app-1.2.3.tar.gz && cd app-1.2.3 # 预编译大多使用configure命令,相关参数(如定制安装目录)一般紧随其后 # ./configure --prefix=/path/to/install/dir ./configure # 编译及安装 make && make install
接下去正式开始编译和安装LEMP架构的依赖包。
安装cmake
1 2 3 4 5
cd /usr/local/src curl https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz | tar xz cd cmake-3.5.2 && mkdir bld && cd $_ ../bootstrap make && make install
安装bison
1 2 3 4 5
cd /usr/local/src curl http://ftp.gnu.org/gnu/bison/bison-3.0.5.tar.gz | tar xz cd bison-3.0.5 ./configure make && make install
安装re2c
1 2 3 4 5
cd /usr/local/src curl https://iweb.dl.sourceforge.net/project/re2c/1.0.1/re2c-1.0.1.tar.gz | tar xz cd re2c-1.0.1 ./configure make && make install
安装zlib
1 2 3 4 5
cd /usr/local/src curl https://zlib.net/zlib-1.2.11.tar.gz | tar xj cd zlib-1.2.11 ./configure make && make install
安装pcre
1 2 3 4 5 6 7 8
cd /usr/local/src curl https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.bz2 | tar xj cd pcre-8.42 ./configure \ --enable-utf --enable-unicode-properties \ --enable-jit \ --enable-pcregrep-libz --enable-pcregrep-libbz2 make && make install
安装OpenSSL
1 2 3 4 5 6 7 8 9 10 11
cd /usr/local/src # 写作博客时OpenSSL最新版本分别是1.02(LTS版)和1.10 # 官方在九月份发布了版本号为1.1.1的LTS版并建议用户更新,因而文中实例亦采用该版本 wget -qO - https://www.openssl.org/source/openssl-1.1.1.tar.gz | tar xz cd openssl-1.1.1 # OpenSSL的预编译命令是config或Configure,与通用的命令不同 ./config \ --prefix=/usr/local/openssl --openssldir=/usr/local/openssl \ no-ssl2 no-ssl3 no-comp no-weak-ssl-ciphers \ -Wl,-rpath=/usr/local/openssl/lib make && make install_sw
安装cURL
1 2 3 4 5 6
cd /usr/local/src wget -qO - https://curl.haxx.se/download/curl-7.61.1.tar.gz | tar xz cd curl-7.61.1 LDFLAGS="-Wl,-rpath=/usr/local/openssl/lib" \ ./configure --with-zlib=/usr/local --with-ssl=/usr/local/openssl make && make install
安装icu(PHP编译过程中intl参数的依赖项)
1 2 3 4 5 6 7
cd /usr/local/src wget -qO - http://download.icu-project.org/files/icu4c/58.2/icu4c-58_2-src.tgz | tar xz mkdir icu/trunk-dev && cd $_ # 根据icu官方说明,其推荐的预编译命令是runConfigureICU # icu的预编译程序在源码目录下的/source/子目录下 ../source/runConfigureICU Linux/gcc make && make install
安装libxml
1 2 3 4 5
cd /usr/local/src curl ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz | tar xz cd libxml2-2.9.8 ./configure --with-zlib=/usr/local --without-python make && make install
安装libzip
1 2 3 4 5 6 7 8
cd /usr/local/src wget -qO - https://libzip.org/download/libzip-1.5.1.tar.gz | tar xz cd libzip-1.5.1 && mkdir bld && cd $_ cmake .. \ -DOPENSSL_ROOT_DIR=/usr/local/openssl \ -DOPENSSL_LIBRARIES=/usr/local/openssl/lib \ -DOPENSSL_INCLUDE_DIR=/usr/local/openssl/include make && make install
安装jpeg
1 2 3 4 5
cd /usr/local/src wget -qO - http://www.ijg.org/files/jpegsrc.v9c.tar.gz | tar xz cd jpeg-9c ./configure make && make install
安装libpng
libpng和jpeg都是PHP编译中GD模块的必要依赖项,libpng还依赖于zlib
1 2 3 4 5
cd /usr/local/src wget -qO - https://download.sourceforge.net/libpng/libpng-1.6.35.tar.gz | tar xz cd libpng-1.6.35 ./configure --enable-hardware-optimizations=on make && make install
cd /usr/local/src wget -qO - https://github.com/webmproject/libwebp/archive/v1.0.0.tar.gz | tar xz cd libwebp-1.0.0 && ./autogen.sh ./configure --enable-silent-rules make && make install
安装freetype
1 2 3 4 5 6
cd /usr/local/src wget -qO - https://download.savannah.gnu.org/releases/freetype/freetype-2.9.1.tar.gz | tar xz cd freetype-2.9.1 # freetype专门为替代PKGCONFIG提供了--enable-freetype-config参数 ./configure --enable-freetype-config --with-zlib=auto --with-bzip2=auto --with-png=auto make && make install