appache opstartsuggestie louter ter info

kenikavanbis

Terugkerende gebruiker
Lid geworden
22 mei 2007
Berichten
2.197
ai gegenereert (ik test het nog)
Code:
Perfect! Je wilt een universeel startscript voor cursisten dat:

✅ Een domein toevoegt aan hosts

✅ Een VirtualHost toevoegt aan XAMPP's httpd-vhosts.conf

✅ Apache en MySQL opstart vanaf de USB-stick

✅ Werkt op Windows én een alternatief script voor Linux

Ik geef je hieronder twee versies: één .bat voor Windows en één .sh voor Linux.

🪟 Windows: start.bat
bat
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION

:: Configuratie
set DOMAIN=demo.local
set HOSTS_FILE=%SystemRoot%\System32\drivers\etc\hosts
set XAMPP_DIR=%~dp0xampp
set VHOST_FILE=%XAMPP_DIR%\apache\conf\extra\httpd-vhosts.conf
set DOCROOT=%~dp0project

:: 1. Hosts aanpassen
echo Toevoegen aan hosts: %DOMAIN%
findstr /C:"%DOMAIN%" "%HOSTS_FILE%" >nul
if errorlevel 1 (
    echo 127.0.0.1 %DOMAIN% >> "%HOSTS_FILE%"
    echo ✅ Toegevoegd aan hosts.
) else (
    echo ℹ️ Domein bestaat al in hosts.
)

:: 2. VirtualHost toevoegen
echo Toevoegen aan vhosts: %DOMAIN%
findstr /C:"ServerName %DOMAIN%" "%VHOST_FILE%" >nul
if errorlevel 1 (
    echo. >> "%VHOST_FILE%"
    echo ^<VirtualHost *:80^> >> "%VHOST_FILE%"
    echo     ServerName %DOMAIN% >> "%VHOST_FILE%"
    echo     DocumentRoot "%DOCROOT%" >> "%VHOST_FILE%"
    echo     ^<Directory "%DOCROOT%"^> >> "%VHOST_FILE%"
    echo         Options Indexes FollowSymLinks >> "%VHOST_FILE%"
    echo         AllowOverride All >> "%VHOST_FILE%"
    echo         Require all granted >> "%VHOST_FILE%"
    echo     ^</Directory^> >> "%VHOST_FILE%"
    echo ^</VirtualHost^> >> "%VHOST_FILE%"
    echo ✅ VirtualHost toegevoegd.
) else (
    echo ℹ️ VirtualHost bestaat al.
)

:: 3. Apache en MySQL starten
echo Start XAMPP services…
start "" "%XAMPP_DIR%\apache_start.bat"
start "" "%XAMPP_DIR%\mysql_start.bat"

echo ✅ Klaar! Open http://%DOMAIN% in je browser.
ENDLOCAL
pause
📝 Structuur op USB-stick:

Code
USB-STICK\
│
├─ start.bat
├─ xampp\
│   ├─ apache_start.bat
│   ├─ mysql_start.bat
│   └─ apache\conf\extra\httpd-vhosts.conf
└─ project\
    └─ index.php
🐧 Linux: start.sh
bash
#!/bin/bash

DOMAIN="demo.local"
HOSTS_FILE="/etc/hosts"
SCRIPT_DIR="$(cd "$(dirname "$0")"; pwd)"
XAMPP_DIR="$SCRIPT_DIR/xampp"
VHOST_FILE="$XAMPP_DIR/etc/extra/httpd-vhosts.conf"
DOCROOT="$SCRIPT_DIR/project"

# 1. Hosts aanpassen
if ! grep -q "$DOMAIN" "$HOSTS_FILE"; then
    echo "127.0.0.1 $DOMAIN" | sudo tee -a "$HOSTS_FILE"
    echo "✅ Toegevoegd aan hosts."
else
    echo "ℹ️ Domein bestaat al in hosts."
fi

# 2. VirtualHost toevoegen
if ! grep -q "ServerName $DOMAIN" "$VHOST_FILE"; then
    echo "" >> "$VHOST_FILE"
    echo "<VirtualHost *:80>" >> "$VHOST_FILE"
    echo "    ServerName $DOMAIN" >> "$VHOST_FILE"
    echo "    DocumentRoot \"$DOCROOT\"" >> "$VHOST_FILE"
    echo "    <Directory \"$DOCROOT\">" >> "$VHOST_FILE"
    echo "        Options Indexes FollowSymLinks" >> "$VHOST_FILE"
    echo "        AllowOverride All" >> "$VHOST_FILE"
    echo "        Require all granted" >> "$VHOST_FILE"
    echo "    </Directory>" >> "$VHOST_FILE"
    echo "</VirtualHost>" >> "$VHOST_FILE"
    echo "✅ VirtualHost toegevoegd."
else
    echo "ℹ️ VirtualHost bestaat al."
fi

# 3. Apache en MySQL starten
echo "Start XAMPP services…"
sudo "$XAMPP_DIR/xampp" startapache
sudo "$XAMPP_DIR/xampp" startmysql

echo "✅ Klaar! Open http://$DOMAIN in je browser."
📝 Linux USB-structuur:

Code
USB-STICK/
├─ start.sh
├─ xampp/
│   └─ xampp (executable)
└─ project/
    └─ index.php
 
Ziet er goed uit, maar het zou nog toffer zijn als de domein niet hardcoded was, maar invoerbaar was.
maar het is een mooi begin, al heb ik het nog niet getest,
 
Terug
Bovenaan Onderaan