diff --git a/snipeit.sh b/snipeit.sh index 7479df357601..06cb332f03a3 100755 --- a/snipeit.sh +++ b/snipeit.sh @@ -18,10 +18,13 @@ # Updated Snipe-IT Install Script # # Update created by Aaron Myers # # Change log # +# * add support for php8.2, awslinux2, alma 8/9 # +# * fix rocky8/9 support +# * remove Fedora support because short timelines # # * Added support for CentOS/Rocky 9 # # * Fixed CentOS 7 repository for PHP 7.4 # # * Removed support for CentOS 6 # -# * Removed support for Ubuntu < 18.04 # +# * Removed support for Ubuntu < 20.04 # # * Removed support for Ubuntu 21 (EOL) # # * Removed support for Debian < 9 (EOL) # # * Fixed permissions issue with Laravel cache # @@ -149,16 +152,6 @@ install_packages () { fi done; ;; - Fedora) - for p in $PACKAGES; do - if dnf list installed "$p" >/dev/null 2>&1; then - echo " * $p already installed" - else - echo " * Installing $p" - log "dnf -y install $p" - fi - done; - ;; esac } @@ -215,8 +208,8 @@ install_composer () { fi if [[ "$distro" == "Debian" ]]; then - run_as_app_user "php $COMPOSER_PATH/composer-setup.php" - run_as_app_user "rm $COMPOSER_PATH/composer-setup.php" + run_as_app_user php $COMPOSER_PATH/composer-setup.php + run_as_app_user rm $COMPOSER_PATH/composer-setup.php else run_as_app_user php composer-setup.php run_as_app_user rm composer-setup.php @@ -228,11 +221,14 @@ install_composer () { install_snipeit () { create_user echo "* Creating MariaDB Database/User." - mysql -u root --execute="CREATE DATABASE snipeit;GRANT ALL PRIVILEGES ON snipeit.* TO snipeit@localhost IDENTIFIED BY '$mysqluserpw';" + mysql -u root --execute="CREATE DATABASE snipeit;CREATE USER snipeit_dbuser@localhost IDENTIFIED BY '$mysqluserpw'; GRANT ALL PRIVILEGES ON snipeit.* TO snipeit_dbuser@localhost;" echo -e "\n\n* Cloning Snipe-IT from github to the web directory." log "git clone https://github.com/snipe/snipe-it $APP_PATH" & pid=$! progress + pushd $APP_PATH + git checkout master + popd echo "* Configuring .env file." cp "$APP_PATH/.env.example" "$APP_PATH/.env" @@ -242,7 +238,7 @@ install_snipeit () { sed -i "s|^\\(APP_TIMEZONE=\\).*|\\1$tzone|" "$APP_PATH/.env" sed -i "s|^\\(DB_HOST=\\).*|\\1localhost|" "$APP_PATH/.env" sed -i "s|^\\(DB_DATABASE=\\).*|\\1snipeit|" "$APP_PATH/.env" - sed -i "s|^\\(DB_USERNAME=\\).*|\\1snipeit|" "$APP_PATH/.env" + sed -i "s|^\\(DB_USERNAME=\\).*|\\1snipeit_dbuser|" "$APP_PATH/.env" sed -i "s|^\\(DB_PASSWORD=\\).*|\\1'$mysqluserpw'|" "$APP_PATH/.env" sed -i "s|^\\(APP_URL=\\).*|\\1http://$fqdn|" "$APP_PATH/.env" @@ -259,7 +255,7 @@ install_snipeit () { echo "* Running composer." # We specify the path to composer because CentOS lacks /usr/local/bin in $PATH when using sudo if [[ "$distro" == "Debian" ]]; then - run_as_app_user "/usr/local/bin/composer install --no-dev --prefer-source --working-dir "$APP_PATH"" + run_as_app_user /usr/local/bin/composer install --no-dev --prefer-source --working-dir "$APP_PATH" else echo "* This can take 5 minutes or more. Tail $APP_LOG for more full command output." & pid=$! progress @@ -339,7 +335,7 @@ echo ' ' echo "" -echo " Welcome to Snipe-IT Inventory Installer for CentOS, Rocky, Fedora, Debian, and Ubuntu!" +echo " Welcome to Snipe-IT Inventory Installer for CentOS, Rocky, Debian, and Ubuntu!" echo "" echo " Installation log located: $APP_LOG" echo "" @@ -363,17 +359,15 @@ case $distro in apache_group=www-data apachefile=/etc/apache2/sites-available/$APP_NAME.conf ;; - *centos*|*redhat*|*ol*|*rhel*|*rocky*) + *amzn*|*redhat*|*alma*|*rhel*|*rocky*) echo " The installer has detected $distro version $version." distro=Centos apache_group=apache apachefile=/etc/httpd/conf.d/$APP_NAME.conf ;; *fedora*) - echo " The installer has detected $distro version $version." - distro=Fedora - apache_group=apache - apachefile=/etc/httpd/conf.d/$APP_NAME.conf + echo " The installer does not support Fedora" + exit 1 ;; *) echo " The installer was unable to determine your OS. Exiting for safety. Exiting for safety." @@ -418,215 +412,262 @@ set_dbpass () { case $distro in Debian) - if [[ "$version" =~ ^11 ]]; then - # Install for Debian 11.x - set_fqdn - set_dbpass - tzone=$(cat /etc/timezone) - - echo "* Adding PHP repository." - log "apt-get install -y apt-transport-https lsb-release ca-certificates" - log "wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg" - echo "deb https://packages.sury.org/php/ $codename main" > /etc/apt/sources.list.d/php.list - - echo -n "* Updating installed packages." - log "apt-get update && apt-get -y upgrade" & pid=$! - progress - - echo "* Installing Apache httpd, PHP, MariaDB and other requirements." - PACKAGES="mariadb-server mariadb-client apache2 libapache2-mod-php7.4 php7.4 php7.4-mcrypt php7.4-curl php7.4-mysql php7.4-gd php7.4-ldap php7.4-zip php7.4-mbstring php7.4-xml php7.4-bcmath curl git unzip" - install_packages - - echo "* Configuring Apache." - create_virtualhost - /usr/sbin/a2enmod rewrite - /usr/sbin/a2ensite $APP_NAME.conf - rename_default_vhost - - set_hosts - - install_snipeit - - echo "* Restarting Apache httpd." - /usr/sbin/service apache2 restart - - echo "* Clearing cache and setting final permissions." - chmod 777 -R $APP_PATH/storage/framework/cache/ - run_as_app_user "php $APP_PATH/artisan cache:clear" - chmod 775 -R $APP_PATH/storage/ - - elif [[ "$version" =~ ^10 ]]; then - # Install for Debian 10.x - set_fqdn - set_dbpass - tzone=$(cat /etc/timezone) - - echo "* Adding PHP repository." - log "apt-get install -y apt-transport-https lsb-release ca-certificates" - log "wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg" - echo "deb https://packages.sury.org/php/ $codename main" > /etc/apt/sources.list.d/php.list - - echo -n "* Updating installed packages." - log "apt-get update && apt-get -y upgrade" & pid=$! - progress + if [[ "$version" =~ ^12 ]]; then + # Install for Debian 12.x + set_fqdn + set_dbpass + tzone=$(cat /etc/timezone) - echo "* Installing Apache httpd, PHP, MariaDB and other requirements." - PACKAGES="mariadb-server mariadb-client apache2 libapache2-mod-php7.4 php7.4 php7.4-mcrypt php7.4-curl php7.4-mysql php7.4-gd php7.4-ldap php7.4-zip php7.4-mbstring php7.4-xml php7.4-bcmath curl git unzip" - install_packages + echo "* Adding PHP repository." + log "apt-get install -y apt-transport-https lsb-release ca-certificates" + log "wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg" + echo "deb https://packages.sury.org/php/ $codename main" > /etc/apt/sources.list.d/php.list - echo "* Configuring Apache." - create_virtualhost - /usr/sbin/a2enmod rewrite - /usr/sbin/a2ensite $APP_NAME.conf - rename_default_vhost + echo -n "* Updating installed packages." + log "apt-get update && apt-get -y upgrade" & pid=$! + progress + + echo "* Installing Apache httpd, PHP, MariaDB and other requirements." + PACKAGES="mariadb-server mariadb-client apache2 libapache2-mod-php8.2 php8.2 php8.2-mcrypt php8.2-curl php8.2-mysql php8.2-gd php8.2-ldap php8.2-zip php8.2-mbstring php8.2-xml php8.2-bcmath curl git unzip" + install_packages + + echo "* Configuring Apache." + create_virtualhost + /usr/sbin/a2enmod rewrite + /usr/sbin/a2ensite $APP_NAME.conf + rename_default_vhost + + set_hosts + + install_snipeit + + echo "* Restarting Apache httpd." + /usr/sbin/service apache2 restart + + echo "* Clearing cache and setting final permissions." + chmod 777 -R $APP_PATH/storage/framework/cache/ + run_as_app_user php $APP_PATH/artisan cache:clear + chmod 775 -R $APP_PATH/storage/ + + elif [[ "$version" =~ ^11 ]]; then + # Install for Debian 11.x + set_fqdn + set_dbpass + tzone=$(cat /etc/timezone) + + echo "* Adding PHP repository." + log "apt-get install -y apt-transport-https lsb-release ca-certificates" + log "wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg" + echo "deb https://packages.sury.org/php/ $codename main" > /etc/apt/sources.list.d/php.list + + echo -n "* Updating installed packages." + log "apt-get update && apt-get -y upgrade" & pid=$! + progress + + echo "* Installing Apache httpd, PHP, MariaDB and other requirements." + PACKAGES="mariadb-server mariadb-client apache2 libapache2-mod-php8.2 php8.2 php8.2-mcrypt php8.2-curl php8.2-mysql php8.2-gd php8.2-ldap php8.2-zip php8.2-mbstring php8.2-xml php8.2-bcmath curl git unzip" + install_packages + + echo "* Configuring Apache." + create_virtualhost + /usr/sbin/a2enmod rewrite + /usr/sbin/a2ensite $APP_NAME.conf + rename_default_vhost + + set_hosts + + install_snipeit + + echo "* Restarting Apache httpd." + /usr/sbin/service apache2 restart + + echo "* Clearing cache and setting final permissions." + chmod 777 -R $APP_PATH/storage/framework/cache/ + run_as_app_user php $APP_PATH/artisan cache:clear + chmod 775 -R $APP_PATH/storage/ + + elif [[ "$version" =~ ^10 ]]; then + # Install for Debian 10.x + set_fqdn + set_dbpass + tzone=$(cat /etc/timezone) + + echo "* Adding PHP repository." + log "apt-get install -y apt-transport-https lsb-release ca-certificates" + log "wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg" + echo "deb https://packages.sury.org/php/ $codename main" > /etc/apt/sources.list.d/php.list + + echo -n "* Updating installed packages." + log "apt-get update && apt-get -y upgrade" & pid=$! + progress + + echo "* Installing Apache httpd, PHP, MariaDB and other requirements." + PACKAGES="mariadb-server mariadb-client apache2 libapache2-mod-php8.2 php8.2 php8.2-mcrypt php8.2-curl php8.2-mysql php8.2-gd php8.2-ldap php8.2-zip php8.2-mbstring php8.2-xml php8.2-bcmath curl git unzip" + install_packages + + echo "* Configuring Apache." + create_virtualhost + /usr/sbin/a2enmod rewrite + /usr/sbin/a2ensite $APP_NAME.conf + rename_default_vhost + + set_hosts + + install_snipeit + + echo "* Restarting Apache httpd." + /usr/sbin/service apache2 restart - set_hosts + echo "* Clearing cache and setting final permissions." + chmod 777 -R $APP_PATH/storage/framework/cache/ + run_as_app_user php $APP_PATH/artisan cache:clear + chmod 775 -R $APP_PATH/storage/ - install_snipeit - - echo "* Restarting Apache httpd." - /usr/sbin/service apache2 restart - - echo "* Clearing cache and setting final permissions." - chmod 777 -R $APP_PATH/storage/framework/cache/ - run_as_app_user "php $APP_PATH/artisan cache:clear" - chmod 775 -R $APP_PATH/storage/ - - elif [[ "$version" =~ ^9 ]]; then - eol - exit 1 - else - echo "Unsupported Debian version. Version found: $version" - exit 1 - fi + elif [[ "$version" =~ ^9 ]]; then + eol + exit 1 + else + echo "Unsupported Debian version. Version found: $version" + exit 1 + fi ;; Ubuntu) -if [ "${version//./}" -ge "2204" ]; then - # Install for Ubuntu 22.04 - set_fqdn - set_dbpass - tzone=$(cat /etc/timezone) - - echo -n "* Updating installed packages." - log "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y upgrade" & pid=$! - progress - - echo "* Installing Apache httpd, PHP, MariaDB and other requirements." - PACKAGES="cron mariadb-server mariadb-client apache2 libapache2-mod-php php php-mcrypt php-curl php-mysql php-gd php-ldap php-zip php-mbstring php-xml php-bcmath curl git unzip" - install_packages - - echo "* Configuring Apache." - create_virtualhost - log "phpenmod mcrypt" - log "phpenmod mbstring" - log "a2enmod rewrite" - log "a2ensite $APP_NAME.conf" - rename_default_vhost - - set_hosts - - echo "* Starting MariaDB." - log "systemctl start mariadb.service" - - install_snipeit - - echo "* Restarting Apache httpd." - log "systemctl restart apache2" - - echo "* Clearing cache and setting final permissions." - chmod 777 -R $APP_PATH/storage/framework/cache/ - log "run_as_app_user php $APP_PATH/artisan cache:clear" - chmod 775 -R $APP_PATH/storage/ - elif [ "${version//./}" == "2110" ]; then - # Ubuntu 21.10 is no longer supported - echo "Unsupported Ubuntu version. Version found: $version" - exit 1 - elif [ "${version//./}" == "2004" ]; then - # Install for Ubuntu 20.04 - set_fqdn - set_dbpass - tzone=$(cat /etc/timezone) - - echo -n "* Updating installed packages." - log "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y upgrade" & pid=$! - progress - - echo "* Installing Apache httpd, PHP, MariaDB and other requirements." - PACKAGES="cron mariadb-server mariadb-client apache2 libapache2-mod-php php php-mcrypt php-curl php-mysql php-gd php-ldap php-zip php-mbstring php-xml php-bcmath curl git unzip" - install_packages - - echo "* Configuring Apache." - create_virtualhost - log "phpenmod mcrypt" - log "phpenmod mbstring" - log "a2enmod rewrite" - log "a2ensite $APP_NAME.conf" - rename_default_vhost - - set_hosts - - echo "* Starting MariaDB." - log "systemctl start mariadb.service" - - install_snipeit - - echo "* Restarting Apache httpd." - log "systemctl restart apache2" - - echo "* Clearing cache and setting final permissions." - chmod 777 -R $APP_PATH/storage/framework/cache/ - log "run_as_app_user php $APP_PATH/artisan cache:clear" - chmod 775 -R $APP_PATH/storage/ - elif [ "${version//./}" == "1804" ]; then - # Install for Ubuntu 18.04+ - set_fqdn - set_dbpass - tzone=$(cat /etc/timezone) - - echo -n "* Updating installed packages." - log "apt-get update" - log "DEBIAN_FRONTEND=noninteractive apt-get -y upgrade" & pid=$! - progress - log "add-apt-repository -y ppa:ondrej/php" - - echo "* Installing Apache httpd, PHP, MariaDB and other requirements." - PACKAGES="cron mariadb-server mariadb-client apache2 libapache2-mod-php php php-mcrypt php-curl php-mysql php-gd php-ldap php-zip php-mbstring php-xml php-bcmath curl git unzip" - install_packages - - echo "* Configuring Apache." - create_virtualhost - log "phpenmod mcrypt" - log "phpenmod mbstring" - log "a2enmod rewrite" - log "a2ensite $APP_NAME.conf" - rename_default_vhost - - set_hosts - - echo "* Starting MariaDB." - log "systemctl start mariadb.service" - - install_snipeit - - echo "* Restarting Apache httpd." - log "systemctl restart apache2" - - echo "* Clearing cache and setting final permissions." - chmod 777 -R $APP_PATH/storage/framework/cache/ - log "run_as_app_user php $APP_PATH/artisan cache:clear" - chmod 775 -R $APP_PATH/storage/ - else - echo "Unsupported Ubuntu version. Version found: $version" - exit 1 - fi - ;; + if [ "${version//./}" -ge "2304" ]; then + # Install for Ubuntu 23.04 and 23.10 + set_fqdn + set_dbpass + tzone=$(cat /etc/timezone) + + echo -n "* Updating installed packages." + log "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y upgrade" & pid=$! + progress + + echo "* Installing Apache httpd, PHP, MariaDB and other requirements." + PACKAGES="cron mariadb-server mariadb-client apache2 libapache2-mod-php php php-mcrypt php-curl php-mysql php-gd php-ldap php-zip php-mbstring php-xml php-bcmath curl git unzip" + install_packages + + echo "* Configuring Apache." + create_virtualhost + log "phpenmod mcrypt" + log "phpenmod mbstring" + log "a2enmod rewrite" + log "a2ensite $APP_NAME.conf" + rename_default_vhost + + set_hosts + + echo "* Starting MariaDB." + log "systemctl start mariadb.service" + + install_snipeit + + echo "* Restarting Apache httpd." + log "systemctl restart apache2" + + echo "* Clearing cache and setting final permissions." + chmod 777 -R $APP_PATH/storage/framework/cache/ + log "run_as_app_user php $APP_PATH/artisan cache:clear" + chmod 775 -R $APP_PATH/storage/ + elif [ "${version//./}" -eq "2204" ]; then + # Install for Ubuntu 22.04 + set_fqdn + set_dbpass + tzone=$(cat /etc/timezone) + + echo "* Set up Ondrej PHP repository" + echo "# Odrej PHP repo for ability to choose non-distro PHP versions" > /etc/apt/sources.list.d/ppa_ondrej_php_$codename.list + echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu $codename main" >> /etc/apt/sources.list.d/ppa_ondrej_php_$codename.list + sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C + + echo -n "* Updating installed packages." + log "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y upgrade" & pid=$! + progress + + echo "* Installing Apache httpd, PHP, MariaDB and other requirements." + PACKAGES="cron mariadb-server mariadb-client apache2 libapache2-mod-php8.2 php8.2 php8.2-mcrypt php8.2-curl php8.2-mysql php8.2-gd php8.2-ldap php8.2-zip php8.2-mbstring php8.2-xml php8.2-bcmath curl git unzip" + install_packages + + echo "* Configuring Apache." + create_virtualhost + log "phpenmod mcrypt" + log "phpenmod mbstring" + log "a2enmod rewrite" + log "a2ensite $APP_NAME.conf" + rename_default_vhost + + set_hosts + + echo "* Starting MariaDB." + log "systemctl start mariadb.service" + + install_snipeit + + echo "* Restarting Apache httpd." + log "systemctl restart apache2" + + echo "* Clearing cache and setting final permissions." + chmod 777 -R $APP_PATH/storage/framework/cache/ + log "run_as_app_user php $APP_PATH/artisan cache:clear" + chmod 775 -R $APP_PATH/storage/ + elif [ "${version//./}" == "2110" ]; then + # Ubuntu 21.10 is no longer supported + echo "Unsupported Ubuntu version. Version found: $version" + exit 1 + elif [ "${version//./}" == "2004" ]; then + # Install for Ubuntu 20.04 + set_fqdn + set_dbpass + tzone=$(cat /etc/timezone) + + echo "* Set up Ondrej PHP repository" + echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu $codename main" >> /etc/apt/sources.list.d/ppa_ondrej_php_$codename.list + sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C + + echo -n "* Updating installed packages." + log "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y upgrade" & pid=$! + progress + + echo "* Installing Apache httpd, PHP, MariaDB and other requirements." + PACKAGES="cron mariadb-server mariadb-client apache2 libapache2-mod-php8.28.2 php8.2 php8.2-mcrypt php8.2-curl php8.2-mysql php8.2-gd php8.2-ldap php8.2-zip php8.2-mbstring php8.2-xml php8.2-bcmath curl git unzip" + install_packages + + echo "* Configuring Apache." + create_virtualhost + log "phpenmod mcrypt" + log "phpenmod mbstring" + log "a2enmod rewrite" + log "a2ensite $APP_NAME.conf" + rename_default_vhost + + set_hosts + + echo "* Starting MariaDB." + log "systemctl start mariadb.service" + + install_snipeit + + echo "* Restarting Apache httpd." + log "systemctl restart apache2" + + echo "* Clearing cache and setting final permissions." + chmod 777 -R $APP_PATH/storage/framework/cache/ + log "run_as_app_user php $APP_PATH/artisan cache:clear" + chmod 775 -R $APP_PATH/storage/ + elif [ "${version//./}" == "1804" ]; then + eol + exit 1 + else + echo "Unsupported Ubuntu version. Version found: $version" + exit 1 + fi + ;; Raspbian) - if [[ "$version" =~ ^10 ]]; then - # Install for Raspbian 9.x - set_fqdn - set_dbpass - tzone=$(cat /etc/timezone) - cat >/etc/apt/sources.list.d/10-buster.list </etc/apt/sources.list.d/10-buster.list <> /etc/apt/sources.list.d/ppa_ondrej_php_$codename.list - echo -n "* Updating installed packages." - log "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y upgrade" & pid=$! - progress + echo -n "* Updating installed packages." + log "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y upgrade" & pid=$! + progress - echo "* Installing Apache httpd, PHP, MariaDB and other requirements." - PACKAGES="mariadb-server mariadb-client apache2 libapache2-mod-php7.2 php7.2 php7.2-mcrypt php7.2-curl php7.2-mysql php7.2-gd php7.2-ldap php7.2-zip php7.2-mbstring php7.2-xml php7.2-bcmath curl git unzip" - install_packages + echo "* Installing Apache httpd, PHP, MariaDB and other requirements." + PACKAGES="mariadb-server mariadb-client apache2 libapache2-mod-php8.2 php8.2 php8.2-mcrypt php8.2-curl php8.2-mysql php8.2-gd php8.2-ldap php8.2-zip php8.2-mbstring php8.2-xml php8.2-bcmath curl git unzip" + install_packages - echo "* Configuring Apache." - create_virtualhost - log "phpenmod mcrypt" - log "phpenmod mbstring" - log "a2enmod rewrite" - log "a2ensite $APP_NAME.conf" + echo "* Configuring Apache." + create_virtualhost + log "phpenmod mcrypt" + log "phpenmod mbstring" + log "a2enmod rewrite" + log "a2ensite $APP_NAME.conf" - set_hosts + set_hosts - echo "* Starting MariaDB." - log "systemctl start mariadb.service" + echo "* Starting MariaDB." + log "systemctl start mariadb.service" - echo "* Securing MariaDB." - /usr/bin/mysql_secure_installation + echo "* Securing MariaDB." + /usr/bin/mysql_secure_installation - install_snipeit + install_snipeit - echo "* Restarting Apache httpd." - log "systemctl restart apache2" - else - echo "Unsupported Raspbian version. Version found: $version" - exit 1 - fi + echo "* Restarting Apache httpd." + log "systemctl restart apache2" + else + echo "Unsupported Raspbian version. Version found: $version" + exit 1 + fi ;; Centos) - if [[ "$version" =~ ^6 ]]; then - eol - exit 1 - elif [[ "$version" =~ ^7 ]]; then - # Install for CentOS/Redhat 7 - set_fqdn - set_dbpass - tzone=$(timedatectl | gawk -F'[: ]' ' $9 ~ /zone/ {print $11}'); - - echo "* Adding Remi and EPEL-Release repositories." - log "yum -y install wget epel-release yum-utils" & pid=$! - progress - log "yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm" & pid=$! - progress - log "yum-config-manager --enable remi-php74" + if [[ "$version" =~ ^6 ]]; then + eol + exit 1 + elif [[ "$version" =~ ^2 || "$distro" == "amzn" ]]; then + # Install for amazon linux 2 + set_fqdn + set_dbpass + tzone=$(timedatectl | gawk -F'[: ]' ' $9 ~ /zone/ {print $11}'); - echo "* Installing Apache httpd, PHP, MariaDB and other requirements." - PACKAGES="httpd mariadb-server git unzip php php-mysqlnd php-bcmath php-embedded php-gd php-mbstring php-mcrypt php-ldap php-json php-simplexml php-process php-zip" - install_packages + amazon-linux-extras install -y php8.2 - echo "* Configuring Apache." - create_virtualhost + echo "* Installing Apache httpd, PHP, MariaDB and other requirements." + PACKAGES="httpd mariadb-server git unzip php php-mysqlnd php-bcmath php-embedded php-gd php-mbstring php-mcrypt php-ldap php-json php-simplexml php-process php-zip php-sodium" + install_packages - set_hosts + echo "* Configuring Apache." + create_virtualhost - echo "* Setting MariaDB to start on boot and starting MariaDB." - log "systemctl enable mariadb.service" - log "systemctl start mariadb.service" + set_hosts - install_snipeit + echo "* Setting MariaDB to start on boot and starting MariaDB." + log "systemctl enable mariadb.service" + log "systemctl start mariadb.service" - set_firewall + install_snipeit - echo "* Setting Apache httpd to start on boot and starting service." - log "systemctl enable httpd.service" - log "systemctl restart httpd.service" + set_firewall - echo "* Clearing cache and setting final permissions." - chmod 777 -R $APP_PATH/storage/framework/cache/ - log "run_as_app_user php $APP_PATH/artisan cache:clear" - chmod 775 -R $APP_PATH/storage/ + echo "* Setting Apache httpd to start on boot and starting service." + log "systemctl enable httpd.service" + log "systemctl restart httpd.service" - set_selinux + echo "* Clearing cache and setting final permissions." + chmod 777 -R $APP_PATH/storage/framework/cache/ + log "run_as_app_user php $APP_PATH/artisan cache:clear" + chmod 775 -R $APP_PATH/storage/ - elif [[ "$version" =~ ^8 ]]; then - # Install for CentOS/Redhat 8 - set_fqdn - set_dbpass - tzone=$(timedatectl | grep "Time zone" | awk 'BEGIN { FS"("}; {print $3}'); + set_selinux - echo "* Adding Remi and EPEL-Release repositories." - log "yum -y install wget epel-release yum-utils" & pid=$! - progress - log "yum -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm" & pid=$! - progress - log "rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-remi.el8" - log "dnf -y module enable php:remi-7.4" & pid=$! - progress + elif [[ "$version" =~ ^7 ]]; then + # Install for CentOS/Redhat 7 + set_fqdn + set_dbpass + tzone=$(timedatectl | gawk -F'[: ]' ' $9 ~ /zone/ {print $11}'); - echo "* Installing Apache httpd, PHP, MariaDB and other requirements." - PACKAGES="httpd mariadb-server git unzip php php-mysqlnd php-bcmath php-embedded php-gd php-mbstring php-mcrypt php-ldap php-json php-simplexml php-process php-zip" - install_packages + echo "* Adding Remi and EPEL-Release repositories." + log "yum -y install wget epel-release yum-utils" & pid=$! + progress + log "yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm" & pid=$! + progress + log "yum-config-manager --enable remi-php82" - echo "* Configuring Apache." - create_virtualhost + echo "* Installing Apache httpd, PHP, MariaDB and other requirements." + PACKAGES="httpd mariadb-server git unzip php php-mysqlnd php-bcmath php-embedded php-gd php-mbstring php-mcrypt php-ldap php-json php-simplexml php-process php-zip" + install_packages - set_hosts + echo "* Configuring Apache." + create_virtualhost - echo "* Setting MariaDB to start on boot and starting MariaDB." - log "systemctl enable mariadb.service" - log "systemctl start mariadb.service" + set_hosts - install_snipeit + echo "* Setting MariaDB to start on boot and starting MariaDB." + log "systemctl enable mariadb.service" + log "systemctl start mariadb.service" - set_firewall + install_snipeit - echo "* Setting Apache httpd to start on boot and starting service." - log "systemctl enable httpd.service" - log "systemctl restart httpd.service" + set_firewall - echo "* Clearing cache and setting final permissions." - chmod 777 -R $APP_PATH/storage/framework/cache/ - log "run_as_app_user php $APP_PATH/artisan cache:clear" - chmod 775 -R $APP_PATH/storage/ + echo "* Setting Apache httpd to start on boot and starting service." + log "systemctl enable httpd.service" + log "systemctl restart httpd.service" - set_selinux + echo "* Clearing cache and setting final permissions." + chmod 777 -R $APP_PATH/storage/framework/cache/ + log "run_as_app_user php $APP_PATH/artisan cache:clear" + chmod 775 -R $APP_PATH/storage/ - elif [[ "$version" =~ ^9 ]]; then - # Install for CentOS/Redhat 9 - set_fqdn - set_dbpass - tzone=$(timedatectl | grep "Time zone" | awk 'BEGIN { FS"("}; {print $3}'); + set_selinux - echo "* Adding EPEL-release repository." - log "dnf -y install wget epel-release" & pid=$! - progress + elif [[ "$version" =~ ^8 ]]; then + # Install for CentOS/Redhat 8 + set_fqdn + set_dbpass + tzone=$(timedatectl | grep "Time zone" | awk 'BEGIN { FS"("}; {print $3}'); - echo "* Installing Apache httpd, PHP, MariaDB, and other requirements." - PACKAGES="httpd mariadb-server git unzip php-mysqlnd php-bcmath php-cli php-embedded php-gd php-mbstring php-ldap php-simplexml php-process php-sodium php-pecl-zip php-fpm" - install_packages + echo "* Adding Remi and EPEL-Release repositories." + log "yum -y install wget epel-release yum-utils" & pid=$! + progress + log "yum -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm" & pid=$! + progress + log "rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-remi.el8" + log "dnf -y module enable php:remi-8.2" & pid=$! + progress - echo "* Configuring Apache." - create_virtualhost + echo "* Installing Apache httpd, PHP, MariaDB and other requirements." + PACKAGES="httpd mariadb-server git unzip php php-mysqlnd php-bcmath php-embedded php-gd php-mbstring php-mcrypt php-ldap php-json php-simplexml php-process php-zip" + install_packages - set_hosts + echo "* Configuring Apache." + create_virtualhost - echo "* Setting MariaDB to start on boot and starting MariaDB." - log "systemctl enable mariadb.service" - log "systemctl start mariadb.service" + set_hosts - install_snipeit + echo "* Setting MariaDB to start on boot and starting MariaDB." + log "systemctl enable mariadb.service" + log "systemctl start mariadb.service" - set_firewall & pid=$! - progress + install_snipeit - echo "* Setting Apache httpd to start on boot and starting service." - log "systemctl enable httpd.service" - log "systemctl restart httpd.service" + set_firewall - echo "* Setting php-fpm to start on boot and starting service." - log "systemctl enable php-fpm.service" - log "systemctl restart php-fpm.service" + echo "* Setting Apache httpd to start on boot and starting service." + log "systemctl enable httpd.service" + log "systemctl restart httpd.service" - echo "* Clearing cache and setting final permissions." - chmod 777 -R $APP_PATH/storage/framework/cache/ - log "run_as_app_user php $APP_PATH/artisan cache:clear" - chmod 775 -R $APP_PATH/storage/ + echo "* Clearing cache and setting final permissions." + chmod 777 -R $APP_PATH/storage/framework/cache/ + log "run_as_app_user php $APP_PATH/artisan cache:clear" + chmod 775 -R $APP_PATH/storage/ - set_selinux + set_selinux - else - echo "Unsupported CentOS version. Version found: $version" - exit 1 - fi - ;; - Fedora) - if [[ "$version" =~ ^36 ]]; then - # Install for Fedora 36+ - set_fqdn - set_dbpass - tzone=$(timedatectl | grep "Time zone" | awk 'BEGIN { FS"("}; {print $3}'); + elif [[ "$version" =~ ^9 ]]; then + # Install for CentOS/Alma/Redhat 9 + set_fqdn + set_dbpass + tzone=$(timedatectl | grep "Time zone" | awk 'BEGIN { FS"("}; {print $3}'); - echo "* Installing Apache httpd, PHP, MariaDB and other requirements." - PACKAGES="wget httpd mariadb-server git unzip php php-mysqlnd php-bcmath php-cli php-common php-embedded php-gd php-mbstring php-mcrypt php-ldap php-simplexml php-process php-sodium php-pecl-zip php-fpm" - install_packages + echo "* Adding EPEL-release repository." + log "dnf -y install wget epel-release" & pid=$! + progress + log "yum -y install https://rpms.remirepo.net/enterprise/remi-release-9.rpm" & pid=$! + progress + log "rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-remi.el9" + log "dnf -y module enable php:remi-8.2" & pid=$! + progress - echo "* Configuring Apache." - create_virtualhost + echo "* Installing Apache httpd, PHP, MariaDB, and other requirements." + PACKAGES="httpd mariadb-server git unzip php-mysqlnd php-bcmath php-cli php-embedded php-gd php-mbstring php-ldap php-simplexml php-process php-sodium php-pecl-zip php-fpm" + install_packages - set_hosts + echo "* Configuring Apache." + create_virtualhost - echo "* Setting MariaDB to start on boot and starting MariaDB." - log "systemctl enable mariadb.service" - log "systemctl start mariadb.service" + set_hosts - install_snipeit + echo "* Setting MariaDB to start on boot and starting MariaDB." + log "systemctl enable mariadb.service" + log "systemctl start mariadb.service" - set_firewall & pid=$! - progress + install_snipeit - echo "* Setting Apache httpd to start on boot and starting service." - log "systemctl enable httpd.service" - log "systemctl restart httpd.service" + set_firewall & pid=$! + progress - echo "* Setting php-fpm to start on boot and starting service." - log "systemctl enable php-fpm.service" - log "systemctl restart php-fpm.service" + echo "* Setting Apache httpd to start on boot and starting service." + log "systemctl enable httpd.service" + log "systemctl restart httpd.service" - echo "* Clearing cache and setting final permissions." - chmod 777 -R $APP_PATH/storage/framework/cache/ - log "run_as_app_user php $APP_PATH/artisan cache:clear" - chmod 775 -R $APP_PATH/storage/ + echo "* Setting php-fpm to start on boot and starting service." + log "systemctl enable php-fpm.service" + log "systemctl restart php-fpm.service" - set_selinux - else - echo "Unsupported Fedora version. Version found: $version" - exit 1 - fi + echo "* Clearing cache and setting final permissions." + chmod 777 -R $APP_PATH/storage/framework/cache/ + log "run_as_app_user php $APP_PATH/artisan cache:clear" + chmod 775 -R $APP_PATH/storage/ + + set_selinux + + else + echo "Unsupported CentOS version. Version found: $version" + exit 1 + fi ;; *) - echo "Your OS was not detected correctly." - exit 1 + echo "Your OS was not detected correctly." + exit 1 esac setupmail=default @@ -915,9 +955,6 @@ echo "" echo " ***Open http://$fqdn to login to Snipe-IT.***" echo "" echo "" -echo "* Cleaning up..." -rm -f snipeit.sh -rm -f install.sh echo "* Installation log located in $APP_LOG." echo "* Finished!" sleep 1