From b4ec5925a8f1b69fb038516a3945fc1dd1fe8f7e Mon Sep 17 00:00:00 2001 From: Christoph Date: Wed, 6 Feb 2019 14:49:06 +0100 Subject: [PATCH] mod_php_install.sh: add support of alternativ install pear extensions if pear.php.net is down. --- mod_php_install.sh | 371 +++++++++++++++++++++++++++++++++------------ 1 file changed, 276 insertions(+), 95 deletions(-) diff --git a/mod_php_install.sh b/mod_php_install.sh index 71bd314..6311784 100755 --- a/mod_php_install.sh +++ b/mod_php_install.sh @@ -3010,147 +3010,328 @@ echo -e "\t--- Install PHP PEAR extensions" echo -e "\t---" echo "" -echononl "\tInstall Mail via pear.." -${PREFIX_PHP}/bin/pear install Mail > /dev/null 2>&1 -if [ "$?" = "0" ]; then - echo_ok -else - echo_failed -fi +> ${_logdir}/pear_install.log -echononl "\tInstall Mail_Mime via pear.." -${PREFIX_PHP}/bin/pear install Mail_Mime > /dev/null 2>&1 -if [ "$?" = "0" ]; then - echo_ok -else - echo_failed -fi - -echononl "\tInstall Mail_mimeDecode via pear.." -${PREFIX_PHP}/bin/pear install Mail_mimeDecode > /dev/null 2>&1 -if [ "$?" = "0" ]; then - echo_ok -else - echo_failed -fi - -echononl "\tInstall Net_Socket via pear.." +PEAR_EXT="Net_Socket" +echo "" >> ${_logdir}/pear_install.log +echo "# - Install ${PEAR_EXT} via pear.." >> ${_logdir}/pear_install.log +echo "# -" >> ${_logdir}/pear_install.log +echo "${PREFIX_PHP}/bin/pear install \"$PEAR_EXT\"" >> ${_logdir}/pear_install.log +echononl "\tInstall ${PEAR_EXT} via pear.." if [[ "$PHP_MAIN_VERSION" = "5.4" ]]; then - ${PREFIX_PHP}/bin/pear install Net_Socket-1.0.14 > /dev/null 2>&1 + echo "${PREFIX_PHP}/bin/pear install \"$PEAR_EXT-1.0.14\"" >> ${_logdir}/pear_install.log + ${PREFIX_PHP}/bin/pear install "$PEAR_EXT-1.0.14" >> ${_logdir}/pear_install.log 2>&1 else - ${PREFIX_PHP}/bin/pear install Net_Socket > /dev/null 2>&1 + echo "${PREFIX_PHP}/bin/pear install \"$PEAR_EXT\"" >> ${_logdir}/pear_install.log + ${PREFIX_PHP}/bin/pear install "$PEAR_EXT" >> ${_logdir}/pear_install.log 2>&1 fi if [ "$?" = "0" ]; then echo_ok else echo_failed + + echo "" >> ${_logdir}/pear_install.log + echo "# - Try to download and install '${PEAR_EXT}' manually.." >> ${_logdir}/pear_install.log + echo "# -" >> ${_logdir}/pear_install.log + echononl "\t Try to download and install '${PEAR_EXT}' manually.." + + DIST=master + + echo "rm -rf /tmp/${PEAR_EXT}-${DIST}.zip /tmp/${PEAR_EXT}-${DIST}" >> ${_logdir}/pear_install.log + rm -rf /tmp/${PEAR_EXT}-${DIST}.zip /tmp/${PEAR_EXT}-${DIST} + + echononl "\t Try to download and install '${PEAR_EXT}' manually.." + + _failed=false + echo "wget -O /tmp/${PEAR_EXT}-${DIST}.zip https://github.com/pear/${PEAR_EXT}/archive/${DIST}.zip" >> ${_logdir}/pear_install.log + wget -O /tmp/${PEAR_EXT}-${DIST}.zip https://github.com/pear/${PEAR_EXT}/archive/${DIST}.zip >> ${_logdir}/pear_install.log 2>&1 + + if [[ $? -gt 0 ]] ; then + _err_msg="Download from '${PEAR_EXT}-${DIST}.zip' https://github.com/pear' failed!" + DIST=trunk + echo "wget -O /tmp/${PEAR_EXT}-${DIST}.zip https://github.com/pear/${PEAR_EXT}/archive/${DIST}.zip" >> ${_logdir}/pear_install.log + wget -O /tmp/${PEAR_EXT}-${DIST}.zip https://github.com/pear/${PEAR_EXT}/archive/${DIST}.zip >> ${_logdir}/pear_install.log 2>&1 + if [[ $? -gt 0 ]] ; then + _failed=true + echo_failed + error "$_err_msg \n\t Download from '${PEAR_EXT}-${DIST}.zip' https://github.com/pear' failed! \n\t See logfile '${_logdir}/pear_install.log'" + fi + fi + + if ! $_failed ; then + echo "unzip -o -d /tmp /tmp/${PEAR_EXT}-${DIST}.zip" >> ${_logdir}/pear_install.log + unzip -o -d /tmp /tmp/${PEAR_EXT}-${DIST}.zip >> ${_logdir}/pear_install.log 2>&1 + if [[ $? -gt 0 ]] ; then + echo_failed + error "Unpacking downloaded pear extension '${PEAR_EXT}' failed! \n\t See logfile '${_logdir}/pear_install.log'" + else + pear install /tmp/${PEAR_EXT}-${DIST}/package.xml >> ${_logdir}/pear_install.log 2>&1 + if [[ $? -gt 0 ]] ; then + echo_failed + error "'pear install /tmp/${PEAR_EXT}-master/package.xml' failed! \n\t See logfile '${_logdir}/pear_install.log'" + else + echo_ok + fi + fi + fi fi -echononl "\tInstall Net_SMTP via pear.." +PEAR_EXT="Net_SMTP" +echo "" >> ${_logdir}/pear_install.log +echo "# - Install ${PEAR_EXT} via pear.." >> ${_logdir}/pear_install.log +echo "# -" >> ${_logdir}/pear_install.log +echo "${PREFIX_PHP}/bin/pear install \"$PEAR_EXT\"" >> ${_logdir}/pear_install.log +echononl "\tInstall ${PEAR_EXT} via pear.." if [[ "$PHP_MAIN_VERSION" = "5.4" ]]; then - ${PREFIX_PHP}/bin/pear install Net_SMTP-1.7.2 > /dev/null 2>&1 + echo "${PREFIX_PHP}/bin/pear install \"$PEAR_EXT-1.7.2\"" >> ${_logdir}/pear_install.log + ${PREFIX_PHP}/bin/pear install "$PEAR_EXT-1.7.2" >> ${_logdir}/pear_install.log 2>&1 else - ${PREFIX_PHP}/bin/pear install Net_SMTP > /dev/null 2>&1 + echo "${PREFIX_PHP}/bin/pear install \"$PEAR_EXT\"" >> ${_logdir}/pear_install.log + ${PREFIX_PHP}/bin/pear install "$PEAR_EXT" >> ${_logdir}/pear_install.log 2>&1 fi if [ "$?" = "0" ]; then echo_ok else echo_failed + + echo "" >> ${_logdir}/pear_install.log + echo "# - Try to download and install '${PEAR_EXT}' manually.." >> ${_logdir}/pear_install.log + echo "# -" >> ${_logdir}/pear_install.log + echononl "\t Try to download and install '${PEAR_EXT}' manually.." + + DIST=master + + echo "rm -rf /tmp/${PEAR_EXT}-${DIST}.zip /tmp/${PEAR_EXT}-${DIST}" >> ${_logdir}/pear_install.log + rm -rf /tmp/${PEAR_EXT}-${DIST}.zip /tmp/${PEAR_EXT}-${DIST} + + echononl "\t Try to download and install '${PEAR_EXT}' manually.." + + _failed=false + echo "wget -O /tmp/${PEAR_EXT}-${DIST}.zip https://github.com/pear/${PEAR_EXT}/archive/${DIST}.zip" >> ${_logdir}/pear_install.log + wget -O /tmp/${PEAR_EXT}-${DIST}.zip https://github.com/pear/${PEAR_EXT}/archive/${DIST}.zip >> ${_logdir}/pear_install.log 2>&1 + + if [[ $? -gt 0 ]] ; then + _err_msg="Download from '${PEAR_EXT}-${DIST}.zip' https://github.com/pear' failed!" + DIST=trunk + echo "wget -O /tmp/${PEAR_EXT}-${DIST}.zip https://github.com/pear/${PEAR_EXT}/archive/${DIST}.zip" >> ${_logdir}/pear_install.log + wget -O /tmp/${PEAR_EXT}-${DIST}.zip https://github.com/pear/${PEAR_EXT}/archive/${DIST}.zip >> ${_logdir}/pear_install.log 2>&1 + if [[ $? -gt 0 ]] ; then + _failed=true + echo_failed + error "$_err_msg \n\t Download from '${PEAR_EXT}-${DIST}.zip' https://github.com/pear' failed! \n\t See logfile '${_logdir}/pear_install.log'" + fi + fi + + if ! $_failed ; then + echo "unzip -o -d /tmp /tmp/${PEAR_EXT}-${DIST}.zip" >> ${_logdir}/pear_install.log + unzip -o -d /tmp /tmp/${PEAR_EXT}-${DIST}.zip >> ${_logdir}/pear_install.log 2>&1 + if [[ $? -gt 0 ]] ; then + echo_failed + error "Unpacking downloaded pear extension '${PEAR_EXT}' failed! \n\t See logfile '${_logdir}/pear_install.log'" + else + pear install /tmp/${PEAR_EXT}-${DIST}/package.xml >> ${_logdir}/pear_install.log 2>&1 + if [[ $? -gt 0 ]] ; then + echo_failed + error "'pear install /tmp/${PEAR_EXT}-master/package.xml' failed! \n\t See logfile '${_logdir}/pear_install.log'" + else + echo_ok + fi + fi + fi fi -echononl "\tInstall Net_Sieve via pear.." + +PEAR_EXT="Net_Sieve" +echo "" >> ${_logdir}/pear_install.log +echo "# - Install ${PEAR_EXT} via pear.." >> ${_logdir}/pear_install.log +echo "# -" >> ${_logdir}/pear_install.log +echo "${PREFIX_PHP}/bin/pear install \"$PEAR_EXT\"" >> ${_logdir}/pear_install.log +echononl "\tInstall ${PEAR_EXT} via pear.." if [[ "$PHP_MAIN_VERSION" = "5.4" ]]; then - ${PREFIX_PHP}/bin/pear install Net_Sieve-1.4.1 > /dev/null 2>&1 + echo "${PREFIX_PHP}/bin/pear install \"$PEAR_EXT-1.4.1\"" >> ${_logdir}/pear_install.log + ${PREFIX_PHP}/bin/pear install "$PEAR_EXT-1.4.1" >> ${_logdir}/pear_install.log 2>&1 else - ${PREFIX_PHP}/bin/pear install Net_Sieve > /dev/null 2>&1 + echo "${PREFIX_PHP}/bin/pear install \"$PEAR_EXT\"" >> ${_logdir}/pear_install.log + ${PREFIX_PHP}/bin/pear install "$PEAR_EXT" >> ${_logdir}/pear_install.log 2>&1 fi if [ "$?" = "0" ]; then echo_ok else echo_failed + + echo "" >> ${_logdir}/pear_install.log + echo "# - Try to download and install '${PEAR_EXT}' manually.." >> ${_logdir}/pear_install.log + echo "# -" >> ${_logdir}/pear_install.log + echononl "\t Try to download and install '${PEAR_EXT}' manually.." + + DIST=master + + echo "rm -rf /tmp/${PEAR_EXT}-${DIST}.zip /tmp/${PEAR_EXT}-${DIST}" >> ${_logdir}/pear_install.log + rm -rf /tmp/${PEAR_EXT}-${DIST}.zip /tmp/${PEAR_EXT}-${DIST} + + echononl "\t Try to download and install '${PEAR_EXT}' manually.." + + _failed=false + echo "wget -O /tmp/${PEAR_EXT}-${DIST}.zip https://github.com/pear/${PEAR_EXT}/archive/${DIST}.zip" >> ${_logdir}/pear_install.log + wget -O /tmp/${PEAR_EXT}-${DIST}.zip https://github.com/pear/${PEAR_EXT}/archive/${DIST}.zip >> ${_logdir}/pear_install.log 2>&1 + + if [[ $? -gt 0 ]] ; then + _err_msg="Download from '${PEAR_EXT}-${DIST}.zip' https://github.com/pear' failed!" + DIST=trunk + echo "wget -O /tmp/${PEAR_EXT}-${DIST}.zip https://github.com/pear/${PEAR_EXT}/archive/${DIST}.zip" >> ${_logdir}/pear_install.log + wget -O /tmp/${PEAR_EXT}-${DIST}.zip https://github.com/pear/${PEAR_EXT}/archive/${DIST}.zip >> ${_logdir}/pear_install.log 2>&1 + if [[ $? -gt 0 ]] ; then + _failed=true + echo_failed + error "$_err_msg \n\t Download from '${PEAR_EXT}-${DIST}.zip' https://github.com/pear' failed! \n\t See logfile '${_logdir}/pear_install.log'" + fi + fi + + if ! $_failed ; then + echo "unzip -o -d /tmp /tmp/${PEAR_EXT}-${DIST}.zip" >> ${_logdir}/pear_install.log + unzip -o -d /tmp /tmp/${PEAR_EXT}-${DIST}.zip >> ${_logdir}/pear_install.log 2>&1 + if [[ $? -gt 0 ]] ; then + echo_failed + error "Unpacking downloaded pear extension '${PEAR_EXT}' failed! \n\t See logfile '${_logdir}/pear_install.log'" + else + pear install /tmp/${PEAR_EXT}-${DIST}/package.xml >> ${_logdir}/pear_install.log 2>&1 + if [[ $? -gt 0 ]] ; then + echo_failed + error "'pear install /tmp/${PEAR_EXT}-master/package.xml' failed! \n\t See logfile '${_logdir}/pear_install.log'" + else + echo_ok + fi + fi + fi fi -echononl "\tInstall Net_IDNA2 via pear.." -${PREFIX_PHP}/bin/pear install Net_IDNA2 > /dev/null 2>&1 + +PEAR_EXT="Net_IDNA2" +echo "" >> ${_logdir}/pear_install.log +echo "# - Install ${PEAR_EXT} via pear.." >> ${_logdir}/pear_install.log +echo "# -" >> ${_logdir}/pear_install.log +echo "${PREFIX_PHP}/bin/pear install \"$PEAR_EXT\"" >> ${_logdir}/pear_install.log +echononl "\tInstall ${PEAR_EXT} via pear.." +${PREFIX_PHP}/bin/pear install "$PEAR_EXT" >> ${_logdir}/pear_install.log 2>&1 + if [ "$?" = "0" ]; then echo_ok else echo_failed + echononl "\tInstall (beta) Net_IDNA2-0.1.1 via pear.." - ${PREFIX_PHP}/bin/pear install channel://pear.php.net/Net_IDNA2-0.1.1 > /dev/null 2>&1 + echo "${PREFIX_PHP}/bin/pear install channel://pear.php.net/${PEAR_EXT}-0.1.1" >> ${_logdir}/pear_install.log + ${PREFIX_PHP}/bin/pear install channel://pear.php.net/${PEAR_EXT}-0.1.1 >> ${_logdir}/pear_install.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed + + echo "" >> ${_logdir}/pear_install.log + echo "# - Try to download and install '${PEAR_EXT}' manually.." >> ${_logdir}/pear_install.log + echo "# -" >> ${_logdir}/pear_install.log + echononl "\t Try to download and install '${PEAR_EXT}' manually.." + + DIST=master + + echo "rm -rf /tmp/${PEAR_EXT}-${DIST}.zip /tmp/${PEAR_EXT}-${DIST}" >> ${_logdir}/pear_install.log + rm -rf /tmp/${PEAR_EXT}-${DIST}.zip /tmp/${PEAR_EXT}-${DIST} + + _failed=false + echo "wget -O /tmp/${PEAR_EXT}-${DIST}.zip https://github.com/pear/${PEAR_EXT}/archive/${DIST}.zip" >> ${_logdir}/pear_install.log + wget -O /tmp/${PEAR_EXT}-${DIST}.zip https://github.com/pear/${PEAR_EXT}/archive/${DIST}.zip >> ${_logdir}/pear_install.log 2>&1 + + if [[ $? -gt 0 ]] ; then + _err_msg="Download from '${PEAR_EXT}-${DIST}.zip' https://github.com/pear' failed!" + DIST=trunk + echo "wget -O /tmp/${PEAR_EXT}-${DIST}.zip https://github.com/pear/${PEAR_EXT}/archive/${DIST}.zip" >> ${_logdir}/pear_install.log + wget -O /tmp/${PEAR_EXT}-${DIST}.zip https://github.com/pear/${PEAR_EXT}/archive/${DIST}.zip >> ${_logdir}/pear_install.log 2>&1 + if [[ $? -gt 0 ]] ; then + _failed=true + echo_failed + error "$_err_msg \n\t Download from '${PEAR_EXT}-${DIST}.zip' https://github.com/pear' failed! \n\t See logfile '${_logdir}/pear_install.log'" + fi + fi + + if ! $_failed ; then + echo "unzip -o -d /tmp /tmp/${PEAR_EXT}-master.zip" >> ${_logdir}/pear_install.log + unzip -o -d /tmp /tmp/${PEAR_EXT}-master.zip >> ${_logdir}/pear_install.log 2>&1 + if [[ $? -gt 0 ]] ; then + echo_failed + error "Unpacking download pear extension failed! \n\t See logfile '${_logdir}/pear_install.log'" + else + pear install /tmp/${PEAR_EXT}-master/package.xml >> ${_logdir}/pear_install.log 2>&1 + if [[ $? -gt 0 ]] ; then + echo_failed + error "'pear install /tmp/${PEAR_EXT}-master/package.xml' failed! \n\t See logfile '${_logdir}/pear_install.log'" + else + echo_ok + fi + fi + fi + fi + fi -echononl "\tInstall Auth via pear.." -${PREFIX_PHP}/bin/pear install Auth > /dev/null 2>&1 -if [ "$?" = "0" ]; then - echo_ok -else - echo_failed -fi +for PEAR_EXT in Console_CommandLine Auth Auth_SASL Mail Mail_Mime MDB2 MDB2_Driver_pgsql Crypt_GPG ; do -echononl "\tInstall Auth_SASL via pear.." -if [[ "$PHP_MAIN_VERSION" = "5.4" ]]; then - ${PREFIX_PHP}/bin/pear install Auth_SASL-1.0.6 > /dev/null 2>&1 -else - ${PREFIX_PHP}/bin/pear install Auth_SASL > /dev/null 2>&1 -fi -if [ "$?" = "0" ]; then - echo_ok -else - echo_failed -fi + echo "" >> ${_logdir}/pear_install.log + echo "# - Install ${PEAR_EXT} via pear.." >> ${_logdir}/pear_install.log + echo "# -" >> ${_logdir}/pear_install.log + echo "${PREFIX_PHP}/bin/pear install \"$PEAR_EXT\"" >> ${_logdir}/pear_install.log + echononl "\tInstall ${PEAR_EXT} via pear.." + ${PREFIX_PHP}/bin/pear install "$PEAR_EXT" >> ${_logdir}/pear_install.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed -#echononl "\tInstall Auth_SASL2 via pear.." -#${PREFIX_PHP}/bin/pear install Auth_SASL2 > /dev/null 2>&1 -#if [ "$?" = "0" ]; then -# echo_ok -#else -# echo_failed -# echononl "\tInstall (beta) Auth_SASL2-0.1.0 via pear.." -# ${PREFIX_PHP}/bin/pear install channel://pear.php.net/Auth_SASL2-0.1.0 > /dev/null 2>&1 -# if [ "$?" = "0" ]; then -# echo_ok -# else -# echo_failed -# fi -#fi + echo "" >> ${_logdir}/pear_install.log + echo "# - Try to download and install '${PEAR_EXT}' manually.." >> ${_logdir}/pear_install.log + echo "# -" >> ${_logdir}/pear_install.log -echononl "\tInstall MDB2 via pear.." -${PREFIX_PHP}/bin/pear install MDB2 > /dev/null 2>&1 -if [ "$?" = "0" ]; then - echo_ok -else - echo_failed -fi + DIST=master -echononl "\tInstall MDB2_Driver_pgsql via pear.." -${PREFIX_PHP}/bin/pear install MDB2_Driver_pgsql > /dev/null 2>&1 -if [ "$?" = "0" ]; then - echo_ok -else - echo_failed -fi + echo "rm -rf /tmp/${PEAR_EXT}-${DIST}.zip /tmp/${PEAR_EXT}-${DIST}" >> ${_logdir}/pear_install.log + rm -rf /tmp/${PEAR_EXT}-${DIST}.zip /tmp/${PEAR_EXT}-${DIST} -#echononl "\tInstall Console_Getopt via pear.." -#${PREFIX_PHP}/bin/pear install Console_Getopt > /dev/null 2>&1 -#if [ "$?" = "0" ]; then -# echo_ok -#else -# echo_failed -#fi + echononl "\t Try to download and install '${PEAR_EXT}' manually.." -echononl "\tInstall Crypt_GPG via pear.." -${PREFIX_PHP}/bin/pear install Crypt_GPG > /dev/null 2>&1 -if [ "$?" = "0" ]; then - echo_ok -else - echo_failed -fi + _failed=false + echo "wget -O /tmp/${PEAR_EXT}-${DIST}.zip https://github.com/pear/${PEAR_EXT}/archive/${DIST}.zip" >> ${_logdir}/pear_install.log + wget -O /tmp/${PEAR_EXT}-${DIST}.zip https://github.com/pear/${PEAR_EXT}/archive/${DIST}.zip >> ${_logdir}/pear_install.log 2>&1 + + if [[ $? -gt 0 ]] ; then + _err_msg="Download from '${PEAR_EXT}-${DIST}.zip' https://github.com/pear' failed!" + DIST=trunk + echo "wget -O /tmp/${PEAR_EXT}-${DIST}.zip https://github.com/pear/${PEAR_EXT}/archive/${DIST}.zip" >> ${_logdir}/pear_install.log + wget -O /tmp/${PEAR_EXT}-${DIST}.zip https://github.com/pear/${PEAR_EXT}/archive/${DIST}.zip >> ${_logdir}/pear_install.log 2>&1 + if [[ $? -gt 0 ]] ; then + _failed=true + echo_failed + error "$_err_msg \n\t Download from '${PEAR_EXT}-${DIST}.zip' https://github.com/pear' failed! \n\t See logfile '${_logdir}/pear_install.log'" + fi + fi + + if ! $_failed ; then + echo "unzip -o -d /tmp /tmp/${PEAR_EXT}-${DIST}.zip" >> ${_logdir}/pear_install.log + unzip -o -d /tmp /tmp/${PEAR_EXT}-${DIST}.zip >> ${_logdir}/pear_install.log 2>&1 + if [[ $? -gt 0 ]] ; then + echo_failed + error "Unpacking downloaded pear extension '${PEAR_EXT}' failed! \n\t See logfile '${_logdir}/pear_install.log'" + else + pear install /tmp/${PEAR_EXT}-${DIST}/package.xml >> ${_logdir}/pear_install.log 2>&1 + if [[ $? -gt 0 ]] ; then + echo_failed + error "'pear install /tmp/${PEAR_EXT}-master/package.xml' failed! \n\t See logfile '${_logdir}/pear_install.log'" + else + echo_ok + fi + fi + fi + fi +done ## - Configure php.ini (base)