# ------------------------------------------
cd $STORAGE && rm -rf $STORAGE/libxslt-1.1.28 && return 0
else
echo "[Caution] Path: ( /opt/libxslt-1.1.28 ) Already Exists."
# ------------------------------------------
return 0
fi
}
Function: 编译安装(Compile Install) byacc-20230219
function Compile_Install_byacc_20230219() {
if [[ ! -d "/opt/byacc-20230219" ]]; then
local VERIFY
local STEP\_UNZIPPED=0
local STEP\_CONFIGURED=0
local STEP\_INSTALLED=0
# ------------------------------------------
read -p "[Confirm] Compile and Install ( byacc-20230219 )? (y/n)>" VERIFY
if [[ "$VERIFY" != "y" ]]; then exit 1; fi
# ------------------------------------------
tar -zxvf $STORAGE/byacc-20230219.tar.gz && STEP\_UNZIPPED=1
# ------------------------------------------
cd $STORAGE/byacc-20230219 && ./configure --prefix=/opt/byacc-20230219 && STEP\_CONFIGURED=1
# ------------------------------------------
make && make install && STEP\_INSTALLED=1
# ------------------------------------------
if [[ $STEP\_INSTALLED == 1 ]]; then
# Default None .h (Include) File.
# ......................................
# Default None .so / .a / .la (Library) File.
# ......................................
ln -sf /opt/byacc-20230219/bin/yacc /usr/local/bin/
fi
# ------------------------------------------
cd $STORAGE && rm -rf $STORAGE/byacc-20230219 && return 0
else
echo "[Caution] Path: ( /opt/byacc-20230219 ) Already Exists."
# ------------------------------------------
return 0
fi
}
Function: 编译安装(Compile Install) krb5-1.20.1
function Compile_Install_krb5_1_20_1() {
if [[ ! -d "/opt/krb5-1.20.1" ]]; then
local VERIFY
local STEP\_UNZIPPED=0
local STEP\_CONFIGURED=0
local STEP\_INSTALLED=0
# ------------------------------------------
read -p "[Confirm] Compile and Install ( krb5-1.20.1 )? (y/n)>" VERIFY
if [[ "$VERIFY" != "y" ]]; then exit 1; fi
# ------------------------------------------
tar -zxvf $STORAGE/krb5-1.20.1.tar.gz && STEP\_UNZIPPED=1
# ------------------------------------------
cd $STORAGE/krb5-1.20.1/src && ./configure --prefix=/opt/krb5-1.20.1 && STEP\_CONFIGURED=1
# ------------------------------------------
make && make install && STEP\_INSTALLED=1
# ------------------------------------------
if [[ $STEP\_INSTALLED == 1 ]]; then
# Skip # if [[ ! -d "/usr/local/sbin" ]]; then mkdir /usr/local/sbin; fi
# ......................................
if [[ ! -d "/opt/lib" ]]; then mkdir /opt/lib; fi
if [[ ! -d "/opt/lib/pkgconfig" ]]; then mkdir /opt/lib/pkgconfig; fi
# ......................................
# Skip # ln -sf /opt/krb5-1.20.1/bin/\* /usr/local/bin/
# ......................................
# Skip # ln -sf /opt/krb5-1.20.1/sbin/\* /usr/local/sbin/
# ......................................
# Skip # rsync -av /opt/krb5-1.20.1/include/ /usr/local/include/
# ......................................
# Skip # rsync -av /opt/krb5-1.20.1/lib/ /usr/local/lib/
# ......................................
cp -f /opt/krb5-1.20.1/lib/pkgconfig/*.pc /opt/lib/pkgconfig/
fi
# ------------------------------------------
cd $STORAGE && rm -rf $STORAGE/krb5-1.20.1 && return 0
else
echo "[Caution] Path: ( /opt/krb5-1.20.1 ) Already Exists."
# ------------------------------------------
return 0
fi
}
Function: 编译安装(Compile Install) openssl-1.1.1g
function Compile_Install_openssl_1_1_1g() {
if [[ ! -d "/opt/openssl-1.1.1g" ]]; then
local VERIFY
local STEP\_UNZIPPED=0
local STEP\_CONFIGURED=0
local STEP\_INSTALLED=0
# ------------------------------------------
read -p "[Confirm] Compile and Install ( openssl-1.1.1g )? (y/n)>" VERIFY
if [[ "$VERIFY" != "y" ]]; then exit 1; fi
# ------------------------------------------
tar -zxvf $STORAGE/openssl-1.1.1g.tar.gz && STEP\_UNZIPPED=1
# ------------------------------------------
cd $STORAGE/openssl-1.1.1g && ./config --prefix=/opt/openssl-1.1.1g \
--openssldir=/opt/openssl-1.1.1g/ssl \
--shared \
zlib && \
STEP\_CONFIGURED=1
# ------------------------------------------
make && make install && STEP\_INSTALLED=1
# ------------------------------------------
if [[ $STEP\_INSTALLED == 1 ]]; then
if [[ ! -d "/opt/lib" ]]; then mkdir /opt/lib; fi
if [[ ! -d "/opt/lib/pkgconfig" ]]; then mkdir /opt/lib/pkgconfig; fi
# ......................................
# 注意: 避免与系统原有的 "openssl" 发生冲突, 未将 "openssl-1.1.1g" 的二进制 bin 文件发送到 PATH 路径。
# Caution: To avoid conflicts with the original "openssl" in the system, the binary file of "openssl-1.1.1g" was not sent to the PATH path.
# ......................................
# Skip # ln -sf /opt/openssl-1.1.1g/bin/\* /usr/local/bin/
# ......................................
# Skip # rsync -av /opt/openssl-1.1.1g/include/ /usr/local/include/
# ......................................
# Skip # rsync -av /opt/openssl-1.1.1g/lib/ /usr/local/lib/
# ......................................
cp -f /opt/openssl-1.1.1g/lib/pkgconfig/libcrypto.pc /opt/lib/pkgconfig/
cp -f /opt/openssl-1.1.1g/lib/pkgconfig/libssl.pc /opt/lib/pkgconfig/
cp -f /opt/openssl-1.1.1g/lib/pkgconfig/openssl.pc /opt/lib/pkgconfig/
fi
# ------------------------------------------
cd $STORAGE && rm -rf $STORAGE/openssl-1.1.1g && return 0
else
echo "[Caution] Path: ( /opt/openssl-1.1.1g ) Already Exists."
# ------------------------------------------
return 0
fi
}
Function: 编译安装(Compile Install) SQLite-3.41.2
function Compile_Install_SQLite_3_41_2() {
if [[ ! -d "/opt/SQLite-3.41.2" ]]; then
local VERIFY
local STEP\_UNZIPPED=0
local STEP\_CONFIGURED=0
local STEP\_INSTALLED=0
# ------------------------------------------
read -p "[Confirm] Compile and Install ( sqlite-autoconf-3410200 )? (y/n)>" VERIFY
if [[ "$VERIFY" != "y" ]]; then exit 1; fi
# ------------------------------------------
tar -zxvf $STORAGE/sqlite-autoconf-3410200.tar.gz && STEP\_UNZIPPED=1
# ------------------------------------------
cd $STORAGE/sqlite-autoconf-3410200 && ./configure --prefix=/opt/SQLite-3.41.2 && STEP\_CONFIGURED=1
# ------------------------------------------
make && make install && STEP\_INSTALLED=1
# ------------------------------------------
if [[ $STEP\_INSTALLED == 1 ]]; then
if [[ ! -d "/opt/lib" ]]; then mkdir /opt/lib; fi
if [[ ! -d "/opt/lib/pkgconfig" ]]; then mkdir /opt/lib/pkgconfig; fi
# ......................................
ln -sf /opt/SQLite-3.41.2/bin/sqlite3 /usr/local/bin/
# ......................................
# Skip # rsync -av /opt/SQLite-3.41.2/include/ /usr/local/include/
# ......................................
# Skip # rsync -av /opt/SQLite-3.41.2/lib/ /usr/local/lib/
# ......................................
cp -f /opt/SQLite-3.41.2/lib/pkgconfig/sqlite3.pc /opt/lib/pkgconfig/
fi
# ------------------------------------------
cd $STORAGE && rm -rf $STORAGE/sqlite-autoconf-3410200 && return 0
else
echo "[Caution] Path: ( /opt/SQLite-3.41.2 ) Already Exists."
# ------------------------------------------
return 0
fi
}
Function: 编译安装(Compile Install) cURL-7.71.1
function Compile_Install_cURL_7_71_1() {
if [[ ! -d "/opt/curl-7.71.1" ]]; then
local VERIFY
local STEP\_UNZIPPED=0
local STEP\_CONFIGURED=0
local STEP\_INSTALLED=0
# ------------------------------------------
read -p "[Confirm] Compile and Install ( curl-7.71.1 )? (y/n)>" VERIFY
if [[ "$VERIFY" != "y" ]]; then exit 1; fi
# ------------------------------------------
tar -zxvf $STORAGE/curl-7.71.1.tar.gz && STEP\_UNZIPPED=1
# ------------------------------------------
cd $STORAGE/curl-7.71.1 && ./configure --prefix=/opt/curl-7.71.1 && STEP\_CONFIGURED=1
# ------------------------------------------
make && make install && STEP\_INSTALLED=1
# ------------------------------------------
if [[ $STEP\_INSTALLED == 1 ]]; then
if [[ ! -d "/opt/lib" ]]; then mkdir /opt/lib; fi
if [[ ! -d "/opt/lib/pkgconfig" ]]; then mkdir /opt/lib/pkgconfig; fi
# ......................................
ln -sf /opt/curl-7.71.1/bin/curl /usr/local/bin/
ln -sf /opt/curl-7.71.1/bin/curl-config /usr/local/bin/
# ......................................
# Skip # rsync -av /opt/curl-7.71.1/include/ /usr/local/include/
# ......................................
# Skip # rsync -av /opt/curl-7.71.1/lib/ /usr/local/lib/
# ......................................
cp -f /opt/curl-7.71.1/lib/pkgconfig/libcurl.pc /opt/lib/pkgconfig/
fi
# ------------------------------------------
cd $STORAGE && rm -rf $STORAGE/curl-7.71.1 && return 0
else
echo "[Caution] Path: ( /opt/curl-7.71.1 ) Already Exists."
# ------------------------------------------
return 0
fi
}
Function: 编译安装(Compile Install) onig-6.9.5-rev1
function Compile_Install_onig_6_9_5_rev1() {
if [[ ! -d "/opt/onig-6.9.5-rev1" ]]; then
local VERIFY
local STEP\_UNZIPPED=0
local STEP\_CONFIGURED=0
local STEP\_INSTALLED=0
# ------------------------------------------
read -p "[Confirm] Compile and Install ( onig-6.9.5-rev1 )? (y/n)>" VERIFY
if [[ "$VERIFY" != "y" ]]; then exit 1; fi
# ------------------------------------------
tar -zxvf $STORAGE/onig-6.9.5-rev1.tar.gz && STEP\_UNZIPPED=1
# ------------------------------------------
cd $STORAGE/onig-6.9.5 && ./configure --prefix=/opt/onig-6.9.5-rev1 && STEP\_CONFIGURED=1
# ------------------------------------------
make && make install && STEP\_INSTALLED=1
# ------------------------------------------
if [[ $STEP\_INSTALLED == 1 ]]; then
if [[ ! -d "/opt/lib" ]]; then mkdir /opt/lib; fi
if [[ ! -d "/opt/lib/pkgconfig" ]]; then mkdir /opt/lib/pkgconfig; fi
# ......................................
ln -sf /opt/onig-6.9.5-rev1/bin/onig-config /usr/local/bin/
# ......................................
# Skip # rsync -av /opt/onig-6.9.5-rev1/include/ /usr/local/include/
# ......................................
# Skip # rsync -av /opt/onig-6.9.5-rev1/lib/ /usr/local/lib/
# ......................................
cp -f /opt/onig-6.9.5-rev1/lib/pkgconfig/oniguruma.pc /opt/lib/pkgconfig/
fi
# ------------------------------------------
cd $STORAGE && rm -rf $STORAGE/onig-6.9.5-rev1 && return 0
else
echo "[Caution] Path: ( /opt/onig-6.9.5-rev1 ) Already Exists."
# ------------------------------------------
return 0
fi
}
########################################### PHP - 7.4.28
Function: 编译安装(Compile Install) PHP-7.4.28
function Compile_Install_PHP_7_4_28() {
# 配置 Apache2 + PHP7 (Optional):
# 1. 安装 Apache (httpd)。
# 2. 查看 apxs 二进制 Bin 文件所在路径, 用于编译 PHP 时生成 /etc/httpd/modules/libphp7.so, 若没有这个依赖, Apache 无法解析 PHP 代码。
# 3. 执行 PHP 的配置命令, 不要遗漏 apxs 路径的配置, 如: --with-apxs2=/usr/local/bin/apxs。
if [[ ! -d "/opt/php-7.4.28" ]]; then
local VERIFY
local STEP\_UNZIPPED=0
local STEP\_CONFIGURED=0
local STEP\_INSTALLED=0
# ------------------------------------------
read -p "[Confirm] Compile and Install ( php-7.4.28 )? (y/n)>" VERIFY
if [[ "$VERIFY" != "y" ]]; then exit 1; fi
# ------------------------------------------
tar -zxvf $STORAGE/php-7.4.28.tar.gz && STEP\_UNZIPPED=1
# ------------------------------------------
cd $STORAGE/php-7.4.28 && ./configure --prefix=/opt/php-7.4.28 \
--with-config-file-path=/opt/php-7.4.28/etc \
--with-fpm-user=php \
--with-fpm-group=php \
--with-apxs2=/usr/local/bin/apxs \
--with-curl \
--with-freetype-dir \
--with-gd \
--with-gettext \
--with-iconv-dir \
--with-kerberos \
--with-libdir=lib64 \
--with-libxml-dir \
--with-mysqli \
--with-openssl \
--with-pcre-regex \
--with-pdo-mysql \
--with-pdo-sqlite \
--with-pear \
--with-png-dir \
--with-jpeg-dir \
--with-xmlrpc \
--with-xsl \
--with-zlib \
--with-bz2 \
--with-mhash \
--enable-fpm \
--enable-bcmath \
--enable-libxml \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-opcache \
--enable-pcntl \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-xml \
--enable-zip \
--enable-fpm \
PKG\_CONFIG\_PATH="/opt/lib/pkgconfig" && \
STEP\_CONFIGURED=1
# ------------------------------------------
# \* Problem: undefined reference to `xmlFreeParserCtxt'
# collect2: error: ld returned 1 exit status
# - Solve: 在 php-7.4.28/Makefile 中的 EXTRA\_LIBS 变量添加: -lxml2
# ..........................................
# \* Problem: undefined reference to `EVP\_PKEY\_free'
# collect2: error: ld returned 1 exit status
# - Solve: 在 php-7.4.28/Makefile 中的 EXTRA\_LIBS 变量添加: -L/opt/openssl-1.1.1g/lib -lssl
# ..........................................
# \* Problem: ...libcrypto.so.1.1: error adding symbols: DSO missing from command line
# collect2: error: ld returned 1 exit status
# - Solve: 在 php-7.4.28/Makefile 中的 EXTRA\_LIBS 变量添加: -L/opt/openssl-1.1.1g/lib -lcrypto
# ..........................................
# \* Problem: undefined reference to `xsltSaveResultToString'
# collect2: error: ld returned 1 exit status
# - Solve: 在 php-7.4.28/Makefile 中的 EXTRA\_LIBS 变量添加: -L/opt/libxslt-1.1.28/lib -lxslt
# ..........................................
# \* Problem: undefined reference to `sqlite3\_reset'
# collect2: error: ld returned 1 exit status
# - Solve: 在 php-7.4.28/Makefile 中的 EXTRA\_LIBS 变量添加: -L/opt/SQLite-3.41.2/lib -lsqlite3
# ..........................................
# \* Problem: undefined reference to `curl\_share\_strerror'
# collect2: error: ld returned 1 exit status
# - Solve: 在 php-7.4.28/Makefile 中的 EXTRA\_LIBS 变量添加: -L/opt/curl-7.71.1/lib -lcurl
# ..........................................
# \* Problem: undefined reference to `OnigEncodingASCII'
# collect2: error: ld returned 1 exit status
# - Solve: 在 php-7.4.28/Makefile 中的 EXTRA\_LIBS 变量添加: -L/opt/onig-6.9.5-rev1/lib -lonig
# ..........................................
# \* Problem: undefined reference to `\_\_dn\_expand' | Handle : EXTRA\_LIBS = -lresolv | From Glibc-2.17
# collect2: error: ld returned 1 exit status
# - Solve: 在 php-7.4.28/Makefile 中的 EXTRA\_LIBS 变量添加: -lresolv (来自 Glibc 2.17)
# ..........................................
make && make install && STEP\_INSTALLED=1
# ------------------------------------------
if [[ $STEP\_INSTALLED == 1 ]]; then
# Default None .pc (Pkg-Config) File.
# ......................................
# Skip # if [[ ! -d "/usr/local/sbin" ]]; then mkdir /usr/local/sbin; fi
# ......................................
ln -sf /opt/php-7.4.28/bin/* /usr/local/bin/
# ......................................
ln -sf /opt/php-7.4.28/sbin/* /usr/local/sbin/
# ......................................
# Skip # rsync -av /opt/php-7.4.28/include/ /usr/local/include/
# ......................................
# Skip # rsync -av /opt/php-7.4.28/lib/ /usr/local/lib/
fi
# ------------------------------------------
# Copy / Deploy Configure File.
# ..........................................
cp -v $STORAGE/php-7.4.28/php.ini-production /opt/php-7.4.28/etc/php.ini
# ..........................................
cp -v /opt/php-7.4.28/etc/php-fpm.conf.default /opt/php-7.4.28/etc/php-fpm.conf
# ..........................................
cp -v /opt/php-7.4.28/etc/php-fpm.d/www.conf.default /opt/php-7.4.28/etc/php-fpm.d/www.conf
# ..........................................
sed -i "s#^;pid = run/php-fpm.pid#pid = /var/run/php-fpm.pid#" /opt/php-7.4.28/etc/php-fpm.conf
# ..........................................
sed -i "s#^;error\_log = log/php-fpm.log#error\_log = /var/log/php-fpm.log#" /opt/php-7.4.28/etc/php-fpm.conf
# ------------------------------------------
# Copy / Deploy) init.d Boot File (Optional).
# ..........................................
cp -v $STORAGE/php-7.4.28/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
# ..........................................
chmod +x /etc/init.d/php-fpm
# ------------------------------------------
# Copy / Deploy Systemctl Boot File (Optional).
# ..........................................
# Skip # cp -v $STORAGE/php-7.4.28/sapi/fpm/php-fpm.service /lib/systemd/system/php-fpm.service
# ------------------------------------------
cd $STORAGE && rm -rf $STORAGE/php-7.4.28 && return 0
else
echo "[Caution] Path: ( /opt/php-7.4.28 ) Already Exists."
# ------------------------------------------
return 0
fi
}
function main() {
# ----------------- Dependency -----------------
Compile_Install_zlib_1_2_13
Make_Install_bzip2_1_0_6
Compile_Install_libxml2_2_9_1
Compile_Install_libxslt_1_1_28
Compile_Install_byacc_20230219
Compile_Install_krb5_1_20_1
Compile_Install_openssl_1_1_1g
Compile_Install_SQLite_3_41_2
Compile_Install_cURL_7_71_1
最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
资料预览
给大家整理的视频资料:
给大家整理的电子书资料:
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
加入社区》https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0
Compile_Install_byacc_20230219
Compile_Install_krb5_1_20_1
Compile_Install_openssl_1_1_1g
Compile_Install_SQLite_3_41_2
Compile_Install_cURL_7_71_1
最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
资料预览
给大家整理的视频资料:
[外链图片转存中…(img-2IRYEdKA-1725716357863)]
给大家整理的电子书资料:
[外链图片转存中…(img-2QKZe5AH-1725716357864)]
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
加入社区》https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0