Drupal 11 ready

This commit is contained in:
rnsrk 2024-11-07 08:24:38 +01:00
parent 4d121057d7
commit 5e8e4969df

View file

@ -10,7 +10,7 @@ NC='\033[0m'
CURRENTDIR=$PWD
# Check if executer is root
if [ "$EUID" -ne 0 ]; then
if [ "$EUID" -ne 0 ]; then
echo -e "${RED}Please run as root: \"sudo ./install_drupal-wisski.bash\""
exit
fi
@ -21,11 +21,11 @@ sleep 3
# Check if installation is for local develepment or production
# If yes: add website name to /etc/hosts/, see section "add website to /etc/hosts"
echo -e "${YELLOW}Do you use this script to install WissKI on a local development system"
echo -e "${YELLOW}Do you use this script to install WissKI on a local development system"
echo -e "or on a server for production?"
echo -e "(Selecting \"for local development\" adds your domain to /etc/hosts) in a later step."
echo -e "(Selecting \"for production\" opens the possibility to use ssl.)${NC}"
echo
echo
PS3="I am installing option... "
options=("for local development." "for production." "I don't know, please quit.")
select opt in "${options[@]}"
@ -70,7 +70,7 @@ then
PHP="$(php -v | grep PHP | head -n 1 | cut -d'(' -f 1)"
PHP=${PHP:4}
PHPVERSION=${PHP::3}
if [[ ! $PHP == 8* ]]
if [[ $PHP < 8.3 ]]
then
OLDPHPVERSION=true
echo ${OLDPHPVERSION}
@ -85,14 +85,14 @@ if [[ $OLDPHPVERSION ]]
then
while true; do
echo
echo -e "${RED}Your php version is lower than 8.0, to you want to install php version 8.0 (this is optional)?"
echo -e "${RED}Your php version is lower than 8.2. Do you want to install php version 8.3 (this is optional)?"
echo -e "${YELLOW}Please note that if you confirm the app-repo \"ppa:ondrej/php\" will be added to your sources.${NC}"
read -p "(y/n): " CURRENTPHPVERSION
case $CURRENTPHPVERSION in
[Yy]* )
[Yy]* )
sudo a2dismod php${PHPVERSION}
PHPVERSION="8.0";
APTS+=( "php8.0" );
PHPVERSION="8.3";
APTS+=( "php8.3" );
add-apt-repository ppa:ondrej/php -y; break;;
[Nn]* ) break;;
* ) echo "Please answer y[es] or n[o].";;
@ -103,25 +103,18 @@ fi
if [[ ${PHP} == "not installed" ]]
then
echo
echo -e "${YELLOW}Since php is missing on your system, would you like to install version 7.4 or 8.0?"
echo -e "${YELLOW}Since php is missing on your system, would you like to install version 8.3?"
echo -e "${RED}The app-repo \"ppa:ondrej/php\" must be added to your sources for this.${NC}"
echo
PS3="I would like to use option... "
options=("8.0" "7.4" "I don't know, please quit.")
options=("8.3" "I don't know, please quit.")
select opt in "${options[@]}"
do
case $opt in
"8.0")
APTS+=( "php8.0" )
PHPVERSION="8.0"
echo -e "${GREEN}Will take php8.0.${NC}"
add-apt-repository ppa:ondrej/php -y;
break
;;
"7.4")
APTS+=( "php7.4" )
PHPVERSION="7.4"
echo -e "${GREEN}Will take php7.4.${NC}"
"8.3")
APTS+=( "php8.3" )
PHPVERSION="8.3"
echo -e "${GREEN}Will take php8.3.${NC}"
add-apt-repository ppa:ondrej/php -y;
break
;;
@ -164,7 +157,7 @@ fi
echo
echo -e "${GREEN}Checking if dependencies are fulfilled..."
echo
echo
DEPENDENCIES=(\
"libapache2-mod-php${PHPVERSION}"
"php${PHPVERSION}-apcu"\
@ -173,12 +166,13 @@ DEPENDENCIES=(\
"php${PHPVERSION}-mbstring"\
"php${PHPVERSION}-mysql"\
"php${PHPVERSION}-xml"\
"php${PHPVERSION}-xsl"\
"php${PHPVERSION}-zip")
if [[ ! $PHPVERSION == 8* ]]; then
DEPENDENCIES+=("php${PHPVERSION}-json")
fi
fi
update-alternatives --set php /usr/bin/php${PHPVERSION};
@ -217,7 +211,7 @@ fi
unset REQUIREDPKG
echo
echo -e "${GREEN}Checking if helpers are installed...${NC}"
echo
echo
HELPERS=(\
"git" \
"wget" \
@ -287,7 +281,7 @@ do
read -p "(y/n): " SURE
case $SURE in
[Yy]* )
export WEBSITENAME;
export WEBSITENAME;
export SERVERADMINEMAIL;
FINISHED=true;
break;;
@ -313,7 +307,7 @@ then
read -p "(y/n): " SURE
case $SURE in
[Yy]* )
if grep -q "${WEBSITENAME}" "/etc/hosts"; then
if grep -q "${WEBSITENAME}" "/etc/hosts"; then
echo
echo -e "${RED}Entry \"127.0.0.1 ${WEBSITENAME}\" already in /etc/hosts"
else
@ -355,16 +349,16 @@ echo
echo -e "${RED}${TWEAKPHP}"
echo
echo -e "${YELLOW}to"
echo
echo
echo -e "${RED}/etc/php/${PHPVERSION}/mods-available/wisski.ini$"
echo
echo -e "${YELLOW}and activate it.${NC}"
echo
echo
while true; do
read -p "(y/n): " TWEAK
case $TWEAK in
[Yy]* )
[Yy]* )
echo "$TWEAKPHP" > /etc/php/${PHPVERSION}/mods-available/wisski.ini
echo -e "${GREEN}Activate wisski.ini.${NC}"
phpenmod -v ${PHPVERSION} wisski
@ -376,10 +370,10 @@ while true; do
esac
done
# enable mod-rewrite
# enable mod-rewrite
echo
echo -e "${GREEN}Enable mod_rewrite for apache2.${NC}"
echo
echo
a2enmod rewrite &> /dev/null
# restart apache
@ -415,7 +409,7 @@ SITECONFIG="<VirtualHost *:80>
while true; do
read -p "(y/n): " WRITECONFIG
case $WRITECONFIG in
[Yy]* )
[Yy]* )
echo -e "${GREEN}Write config to \"/etc/apache2/sites-available/${WEBSITENAME}\""
echo "${SITECONFIG}" > /etc/apache2/sites-available/${WEBSITENAME}.conf
echo -e "${GREEN}Enable site ${WEBSITENAME}${NC}"
@ -425,7 +419,7 @@ while true; do
echo "a2dissite ${WEBSITENAME}" >> remove_${WEBSITENAME}_configs.bash
echo "rm /etc/apache2/sites-available/${WEBSITENAME}.conf" >> remove_${WEBSITENAME}_configs.bash
break;;
[Nn]* )
[Nn]* )
break;;
* ) echo "Please answer y[es] or n[o].";;
esac
@ -441,28 +435,28 @@ then
while true; do
read -p "(y/n): " SECUREMARIADB
case $SECUREMARIADB in
[Yy]* )
[Yy]* )
echo -e "${GREEN}Please note your credentials!";
mysql_secure_installation;
break;;
[Nn]* )
[Nn]* )
break;;
* ) echo "Please answer y[es] or n[o].";;
esac
done
fi
# create database user and database
# create database user and database
echo -e "${YELLOW}Do you want to create a database and a database user?"
echo -e "${YELLOW}If you have a database and database user, please ensure you know the credentials!"
while true; do
read -p "(y/n): " CREATEDBANDDBUSER
case $CREATEDBANDDBUSER in
[Yy]* )
[Yy]* )
echo
echo -e "${YELLOW}Create database and user for Drupal. Please note your inputs, they will be needed in a moment."
CORRECTDATABASE=false
CORRECTDATABASE=false
CORRECTUSER=false
FINISHED=false
while [[ $CORRECTDATABASE == false ]] && [[ $CORRECTUSER == false ]]; do
@ -476,13 +470,13 @@ while true; do
while true; do
read -p "(recreate/keep/retry/abort): " SURE
case $SURE in
[recreate]* )
[recreate]* )
mysql -e "DROP DATABASE ${DB};"
mysql -e "CREATE DATABASE ${DB} ;"
echo -e "${GREEN}Recreated database ${DB}."
FINISHED=true
break;;
[keep]* )
[keep]* )
echo -e "${GREEN}Okay keep old database..."
FINISHED=true
break;;
@ -516,7 +510,7 @@ while true; do
while true; do
read -p "(y/n): " SURE
case $SURE in
[Yy]* )
[Yy]* )
if [[ ! -z "`mysql -qfsBe "SELECT User FROM mysql.user WHERE User = '${USER}'" 2>&1`" ]];
then
echo
@ -525,7 +519,7 @@ while true; do
while true; do
read -p "(recreate/keep): " SURE
case $SURE in
[recreate]* )
[recreate]* )
mysql -e "DROP USER ${USER}@'localhost';"
mysql -e "CREATE USER ${USER}@localhost IDENTIFIED BY '${USERPW}';"
mysql -e "GRANT ALL PRIVILEGES ON ${DB}.* TO '${USER}'@'localhost';"
@ -534,7 +528,7 @@ while true; do
FINISHED=true
CORRECTUSER=true
break;;
[keep]* )
[keep]* )
unset USERPW
echo
echo -e "${GREEN}Okay keep existing user."
@ -548,10 +542,10 @@ while true; do
echo -e "${YELLOW}Is this correct?${NC}"
read -p "(y/n): " SURE
case $SURE in
[Yy]* )
[Yy]* )
CORRECTUSER=true
break;;
[Nn]* )
[Nn]* )
unset USERPW
break;;
[abort]* )
@ -576,19 +570,19 @@ while true; do
CORRECTUSER=true
fi
break;;
[Nn]* )
[Nn]* )
echo -e "${GREEN}Okay then..."
break;;
* ) echo -e "${RED}Please answer y[es] or n[o].";;
esac
done
done
done
done
echo
echo -e "${GREEN}Created ${DB} database with ${USER}@localhost identified by ${USERPW}."
sleep 1
break;;
[Nn]* )
[Nn]* )
break;;
* ) echo "Please answer y[es] or n[o].";;
esac
@ -621,7 +615,7 @@ echo -e "${YELLOW}Should I download and install Drupal?${NC}"
while true; do
read -p "(y/n/skip): " INSTALLDRUPAL
case $INSTALLDRUPAL in
[Yy]* )
[Yy]* )
echo -e "${GREEN}Okay, I will start installation!"
cd /var/www/html/
echo
@ -645,10 +639,10 @@ while true; do
cd /var/www/html/$WEBSITENAME
break;;
[Nn]* )
echo -e "${GREEN}Okay bye."
echo -e "${GREEN}Okay bye."
exit;;
[skip]* )
echo -e "${GREEN}Okay skipping."
echo -e "${GREEN}Okay skipping."
break;;
* ) echo "Please answer y[es] or n[o].";;
esac
@ -722,7 +716,7 @@ while true; do
fi
# deletes the temp directory
function cleanup {
function cleanup {
rm -rf "$WORK_DIR"
echo -e "${GREEN}Deleted temp working directory $WORK_DIR.${NC}"
}
@ -816,7 +810,7 @@ chmod 775 -R /var/www/html/$WEBSITENAME
if [[ ! ${LOCALHOST} ]]; then
echo
echo -e "${YELLOW}You are installing WissKI for production, do you like to add https support?"
echo -e "${YELLOW}You are installing WissKI for production, do you like to add https support?"
echo -e "You can use certbot and letsencrypt for an automaticaly installation and configuration"
echo -e "of all certificates and Apache config files or"
echo -e "use your own certificates and configure Apache manually.${NC}"
@ -843,7 +837,7 @@ if [[ ! ${LOCALHOST} ]]; then
ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot --apache
break;;
[Nn]* )
[Nn]* )
echo -e "${GREEN}Okay skipping.";
for (( i=0; i<${#options[@]}; i++)); do
printf '%d) %s\n' $((i+1)) "${options[$i]}"