From ac259efeddae93a68c15f5badf49e02e2e3344de Mon Sep 17 00:00:00 2001 From: Edi Septriyanto Date: Thu, 2 May 2024 00:26:30 +0700 Subject: [PATCH] Update PHP installer --- scripts/install_php.sh | 21 +++++++++++---------- scripts/remove_php.sh | 28 ++++++++++++++++++++-------- 2 files changed, 31 insertions(+), 18 deletions(-) diff --git a/scripts/install_php.sh b/scripts/install_php.sh index 384e544..bd1937e 100755 --- a/scripts/install_php.sh +++ b/scripts/install_php.sh @@ -31,35 +31,36 @@ function add_php_repo() { case "${DISTRIB_NAME}" in debian) if [[ ! -f "/etc/apt/sources.list.d/ondrej-php-${RELEASE_NAME}.list" ]]; then + run wget -qO "/etc/apt/trusted.gpg.d/ondrej-php-${RELEASE_NAME}.gpg" https://packages.sury.org/php/apt.gpg && \ run touch "/etc/apt/sources.list.d/ondrej-php-${RELEASE_NAME}.list" && \ run bash -c "echo 'deb https://packages.sury.org/php/ ${RELEASE_NAME} main' > /etc/apt/sources.list.d/ondrej-php-${RELEASE_NAME}.list" && \ - run bash -c "echo 'deb-src https://packages.sury.org/php/ ${RELEASE_NAME} main' >> /etc/apt/sources.list.d/ondrej-php-${RELEASE_NAME}.list" && \ - run wget -qO /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg + run bash -c "echo 'deb-src https://packages.sury.org/php/ ${RELEASE_NAME} main' >> /etc/apt/sources.list.d/ondrej-php-${RELEASE_NAME}.list" # Add openswoole official repository. case "${RELEASE_NAME}" in buster) - OPENSWOOLE_PPA="bionic" + OPENSWOOLE_RELEASE_NAME="bionic" ;; bullseye) - OPENSWOOLE_PPA="focal" + OPENSWOOLE_RELEASE_NAME="focal" ;; bookworm) - OPENSWOOLE_PPA="jammy" + OPENSWOOLE_RELEASE_NAME="jammy" ;; esac - run touch "/etc/apt/sources.list.d/openswoole-ppa-ubuntu-${OPENSWOOLE_PPA}.list" && \ - run bash -c "echo 'deb https://ppa.launchpadcontent.net/openswoole/ppa/ubuntu/ ${OPENSWOOLE_PPA} main' > /etc/apt/sources.list.d/openswoole-ppa-ubuntu-${OPENSWOOLE_PPA}.list" && \ - run bash -c "echo 'deb-src https://ppa.launchpadcontent.net/openswoole/ppa/ubuntu/ ${OPENSWOOLE_PPA} main' >> /etc/apt/sources.list.d/openswoole-ppa-ubuntu-${OPENSWOOLE_PPA}.list" && \ - run apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 73414442D33E80F9C7E15E7F1F00974B7E59CCAC + run gpg --lock-never --keyserver hkp://keyserver.ubuntu.com:80 --no-default-keyring --keyring "/usr/share/keyrings/openswoole-ppa-ubuntu-${OPENSWOOLE_RELEASE_NAME}.gpg" --recv-keys 73414442D33E80F9C7E15E7F1F00974B7E59CCAC && \ + run touch "/etc/apt/sources.list.d/openswoole-ppa-ubuntu-${OPENSWOOLE_RELEASE_NAME}.list" && \ + run bash -c "echo 'deb [signed-by=/usr/share/keyrings/openswoole-ppa-ubuntu-${OPENSWOOLE_RELEASE_NAME}.gpg] https://ppa.launchpadcontent.net/openswoole/ppa/ubuntu/ ${OPENSWOOLE_RELEASE_NAME} main' > /etc/apt/sources.list.d/openswoole-ppa-ubuntu-${OPENSWOOLE_RELEASE_NAME}.list" && \ + run bash -c "echo 'deb-src [signed-by=/usr/share/keyrings/openswoole-ppa-ubuntu-${OPENSWOOLE_RELEASE_NAME}.gpg] https://ppa.launchpadcontent.net/openswoole/ppa/ubuntu/ ${OPENSWOOLE_RELEASE_NAME} main' >> /etc/apt/sources.list.d/openswoole-ppa-ubuntu-${OPENSWOOLE_RELEASE_NAME}.list" else info "PHP package repository already exists." fi ;; ubuntu) if [[ ! -f "/etc/apt/sources.list.d/ondrej-php-${RELEASE_NAME}.list" ]]; then - run apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 14AA40EC0831756756D7F66C4F4EA0AAE5267A6C + #run apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 14AA40EC0831756756D7F66C4F4EA0AAE5267A6C + run gpg --lock-never --keyserver hkp://keyserver.ubuntu.com:80 --no-default-keyring --keyring "/etc/apt/trusted.gpg.d/ondrej-php-${RELEASE_NAME}" --recv-keys 14AA40EC0831756756D7F66C4F4EA0AAE5267A6C && \ run add-apt-repository -y ppa:ondrej/php # Add openswoole official repository. diff --git a/scripts/remove_php.sh b/scripts/remove_php.sh index 744b8cf..0b0366a 100755 --- a/scripts/remove_php.sh +++ b/scripts/remove_php.sh @@ -398,19 +398,31 @@ function init_php_fpm_removal() { echo "Removing additional unused PHP packages..." run apt-get purge -q -y dh-php php-common php-pear php-xml pkg-php-tools fcgiwrap spawn-fcgi - # Remove openswoole official repository. - if echo "${PHP_EXTENSIONS}" | grep -qwE "openswoole"; then - run add-apt-repository -y --remove ppa:openswoole/ppa - fi - - # Remove PHP repository. - run add-apt-repository -y --remove ppa:ondrej/php - # Remove all the rest of PHP lib files. [ -d /usr/lib/php ] && run rm -fr /usr/lib/php [ -d /usr/share/php ] && run rm -fr /usr/share/php [ -d /var/lib/php ] && run rm -fr /var/lib/php + # Remove repository. + case "${DISTRIB_NAME}" in + debian) + if echo "${PHP_EXTENSIONS}" | grep -qwE "openswoole"; then + run rm -f "/etc/apt/sources.list.d/openswoole-ppa-ubuntu-${OPENSWOOLE_RELEASE_NAME}.list" + run rm -f "/usr/share/keyrings/openswoole-ppa-ubuntu-${OPENSWOOLE_RELEASE_NAME}.gpg" + fi + + run rm -f "/etc/apt/sources.list.d/ondrej-php-${RELEASE_NAME}.list" + run rm -f "/etc/apt/trusted.gpg.d/ondrej-php-${RELEASE_NAME}.gpg" + ;; + ubuntu) + if echo "${PHP_EXTENSIONS}" | grep -qwE "openswoole"; then + run add-apt-repository -y --remove ppa:openswoole/ppa + fi + + run add-apt-repository -y --remove ppa:ondrej/php + ;; + esac + success "All PHP package and it's extensions completely removed." fi else