From 6ed1346f686b6f36cf1fb8a32b5ebd1378a527f3 Mon Sep 17 00:00:00 2001 From: Marco Antonio Vivas <103132707+markovivas@users.noreply.github.com> Date: Sun, 28 Sep 2025 11:22:16 -0300 Subject: [PATCH] Create instalar_xampp.sh --- instalar_xampp.sh | 178 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 instalar_xampp.sh diff --git a/instalar_xampp.sh b/instalar_xampp.sh new file mode 100644 index 0000000..f517007 --- /dev/null +++ b/instalar_xampp.sh @@ -0,0 +1,178 @@ +#!/bin/bash + +set -e + +# Variaveis +APACHE_PORT=9080 +PHPMYADMIN_PORT=9081 +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +WWW_DIR="/var/www/html" +MYSQL_ROOT_PASSWORD="00100" + +# Atualiza repositorios e instala pacotes basicos +echo "Atualizando repositorios..." +sudo apt update + +echo "Instalando Apache, MySQL, PHP 7.4 e extensoes necessarias..." +sudo apt install -y apache2 mysql-server php php-mysqli php-intl php-mbstring php-imap php-cli php-common php-zip php-curl php-xml php-gd php-mysql unzip wget + +# Verificar versao do PHP +PHP_VERSION=$(php -r "echo PHP_VERSION;") +REQUIRED_PHP_VERSION="7.3" + +version_gte() { + [ "$(printf '%s\n' "$2" "$1" | sort -V | head -n1)" = "$2" ] +} + +if ! version_gte "$PHP_VERSION" "$REQUIRED_PHP_VERSION"; then + echo "PHP versao $REQUIRED_PHP_VERSION ou superior e requerida. Sua versao: $PHP_VERSION" + exit 1 +fi + +# Cria a pasta www no diretorio padrao do Apache +echo "Criando diretorio www em $WWW_DIR..." +sudo mkdir -p "$WWW_DIR" + +# Ajusta permissoes +echo "Ajustando permissoes da pasta www para www-data..." +sudo chown -R www-data:www-data "$WWW_DIR" +sudo chmod -R 755 "$WWW_DIR" +sudo chmod +x $(dirname "$WWW_DIR") + +# Configurar Apache +echo "Configurando Apache na porta $APACHE_PORT com DocumentRoot em $WWW_DIR..." + +# Desabilitar o site padrao +sudo a2dissite 000-default.conf || true + +# Cria configuracao customizada +CUSTOM_APACHE_CONF="/etc/apache2/sites-available/custom-web.conf" + +sudo tee "$CUSTOM_APACHE_CONF" > /dev/null < + ServerAdmin webmaster@localhost + DocumentRoot $WWW_DIR + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + ErrorLog \${APACHE_LOG_DIR}/error.log + CustomLog \${APACHE_LOG_DIR}/access.log combined + +EOL + +# Habilita mod_rewrite +sudo a2enmod rewrite + +# Configura porta e habilita o site +echo "Listen $APACHE_PORT" | sudo tee /etc/apache2/ports.conf > /dev/null +sudo a2ensite custom-web.conf + +# Reinicia Apache +sudo systemctl restart apache2 + +# Configuracao do MySQL com suporte a versoes modernas +echo "Configurando senha root do MySQL..." + +# Verifica a versao do MySQL +MYSQL_VERSION=$(mysql --version | awk '{print $3}' | awk -F. '{print $1}') + +if [[ "$MYSQL_VERSION" -ge 8 ]]; then + echo "MySQL 8.0+ detectado. Usando caching_sha2_password..." + sudo mysql < /dev/null < /dev/null < + ServerAdmin webmaster@localhost + DocumentRoot $PHPMYADMIN_DIR + + + Options Indexes FollowSymLinks + DirectoryIndex index.php + AllowOverride All + Require all granted + + + ErrorLog \${APACHE_LOG_DIR}/phpmyadmin-error.log + CustomLog \${APACHE_LOG_DIR}/phpmyadmin-access.log combined + +EOL + +sudo a2ensite phpmyadmin.conf +sudo systemctl restart apache2 + +# Cria arquivo index.html padrao +echo "Criando arquivo index.html padrao..." +sudo tee "$WWW_DIR/index.html" > /dev/null < + + + Servidor Configurado + + +

Servidor configurado com sucesso!

+

Acesse o phpMyAdmin em: http://localhost:$PHPMYADMIN_PORT/

+ + +EOL + +# Mensagem final +echo "Instalacao concluida!" +echo "Acesse seu servidor web em: http://localhost:$APACHE_PORT/" +echo "Acesse phpMyAdmin em: http://localhost:$PHPMYADMIN_PORT/" +echo "Usuario root MySQL com senha: $MYSQL_ROOT_PASSWORD" +echo "Pasta www esta em: $WWW_DIR"