diff --git a/ct/paymenter.sh b/ct/paymenter.sh index e24b4897f..b031fc393 100644 --- a/ct/paymenter.sh +++ b/ct/paymenter.sh @@ -28,11 +28,24 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi + CURRENT_PHP=$(php -v 2>/dev/null | awk '/^PHP/{print $2}' | cut -d. -f1,2) + if [[ "$CURRENT_PHP" != "8.4" ]]; then + msg_info "Migrating PHP $CURRENT_PHP to 8.4" + $STD curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb + $STD dpkg -i /tmp/debsuryorg-archive-keyring.deb + $STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' + $STD apt-get update + $STD apt-get remove -y php"${CURRENT_PHP//./}"* + $STD apt-get install -y \ + php8.4 \ + php8.4-{common,cli,gd,mysql,mbstring,bcmath,xml,curl,zip,intl,fpm} + msg_ok "Migrated PHP $CURRENT_PHP to 8.4" + fi RELEASE=$(curl -fsSL https://api.github.com/repos/paymenter/paymenter/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/') if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then msg_info "Updating ${APP} to ${RELEASE}" echo "${RELEASE}" >/opt/${APP}_version.txt - cd /opt/paymenter + cd /opt/paymenter || exit $STD php artisan p:upgrade --no-interaction msg_ok "Updated Successfully" else @@ -48,4 +61,4 @@ description msg_ok "Completed Successfully!\n" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}" \ No newline at end of file +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}" diff --git a/install/paymenter-install.sh b/install/paymenter-install.sh index 642e0681f..ecfe7a515 100644 --- a/install/paymenter-install.sh +++ b/install/paymenter-install.sh @@ -19,21 +19,36 @@ $STD apt-get install -y \ software-properties-common \ apt-transport-https \ ca-certificates \ - gnupg \ - php8.2 \ - php8.2-{common,cli,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip} \ + gnupg2 \ mariadb-server \ nginx \ redis-server -$STD curl -fsSL https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer msg_ok "Installed Dependencies" +msg_info "Adding PHP8.4 Repository" +$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb +$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb +$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' +$STD apt-get update +msg_ok "Added PHP8.4 Repository" + +msg_info "Installing PHP" +$STD apt-get remove -y php8.2* +$STD apt-get install -y \ + php8.4 \ + php8.4-{common,cli,gd,mysql,mbstring,bcmath,xml,curl,zip,intl,fpm} +msg_info "Installed PHP" + +msg_info "Installing Composer" +$STD curl -fsSL https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer +msg_ok "Installed Composer" + msg_info "Installing Paymenter" RELEASE=$(curl -fsSL https://api.github.com/repos/paymenter/paymenter/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/') -echo "${RELEASE}" >/opt/${APPLICATION}_version.txt +echo "${RELEASE}" >/opt/"${APPLICATION}"_version.txt mkdir -p /opt/paymenter -cd /opt/paymenter -curl -fsSL "https://github.com/paymenter/paymenter/releases/download/${RELEASE}/paymenter.tar.gz" -o $(basename "https://github.com/paymenter/paymenter/releases/download/${RELEASE}/paymenter.tar.gz") +cd /opt/paymenter || exit +curl -fsSL "https://github.com/paymenter/paymenter/releases/download/${RELEASE}/paymenter.tar.gz" -o paymenter.tar.gz $STD tar -xzvf paymenter.tar.gz chmod -R 755 storage/* bootstrap/cache/ msg_ok "Installed Paymenter" @@ -47,10 +62,10 @@ mysql -u root -e "CREATE DATABASE $DB_NAME;" mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';" mysql -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost' WITH GRANT OPTION;" { - echo "Paymenter Database Credentials" - echo "Database: $DB_NAME" - echo "Username: $DB_USER" - echo "Password: $DB_PASS" + echo "Paymenter Database Credentials" + echo "Database: $DB_NAME" + echo "Username: $DB_USER" + echo "Password: $DB_PASS" } >>~/paymenter_db.creds cp .env.example .env $STD composer install --no-dev --optimize-autoloader --no-interaction