@echo off setlocal enabledelayedexpansion :: Acest fisier genereaza un director pe baza promptului :: De ex: mydomain.loc in directorul curent :: Genereaza informatiile pentru vhost si host in Windows, fisierele .htaccess vhost.conf index.php :: Genereaza certificate ssl in mydomain.loc/ssl/ (daca true) :: =========================== :: START DOMAIN :: Cere utilizatorului să introducă domeniul set /p sitename=Introdu domeniul (ex: mysite.loc): :: Verifică dacă domeniul este gol if "%sitename%"=="" ( echo Domeniul nu a fost specificat. Scriptul se opreste. pause exit /b ) echo. echo Numeledomeniului este %sitename% echo. :: END DOMAIN :: =========================== :: =========================== :: START PATH VARIABLES :: Setează DocumentRoot și locația fișierului vhost set document_root=%cd%\%sitename% set VHOST_FILE=%cd%\%sitename%\vhost.conf set INDEX_FILE=%cd%\%sitename%\index.php set HTACCESS_FILE=%cd%\%sitename%\.htaccess :: END PATH VARIABLES :: =========================== :: =========================== :: START SSL-CERTIFICATES :: Variabilă pentru generarea certificatelor :: Daca e true, se genereaza certificatele cu mkcert :: Daca e fals, se sare peste mkcert (true or false) set genereazaCertificat=true :: Întreabă utilizatorul dacă vrea să genereze certificatul SSL set /p raspuns=Vreti sa generati certificatul SSL? (Y/N): :: Verifică răspunsul utilizatorului if /i "%raspuns%"=="N" ( set genereazaCertificat=false ) set SSL_DIR=%cd%\%sitename%\ssl :: Creează directorul SSL dacă nu există if not exist "%SSL_DIR%" mkdir "%SSL_DIR%" :: Verifică dacă mkcert este instalat (doar dacă genereazaCertificat este true) if "%genereazaCertificat%"=="true" ( :: Verifică dacă mkcert este instalat where mkcert >nul 2>nul if %errorlevel% neq 0 ( echo Eroare: mkcert nu este instalat sau nu este în PATH. echo Descarcă-l de la https://github.com/FiloSottile/mkcert și instalează-l. pause exit /b ) :: Generează certificatul SSL folosind mkcert cd /d "%SSL_DIR%" :: # mkcert -cert-file mysite.loc.pem -key-file mysite.loc-key.pem mysite.loc www.mysite.loc *.mysite.loc mkcert -cert-file "%sitename%.pem" -key-file "%sitename%-key.pem" "%sitename%" "www.%sitename%" "*.%sitename%" cd /d "%cd%" ) if "%genereazaCertificat%"=="true" echo Certificatul SSL a fost generat in "%SSL_DIR%". if "%genereazaCertificat%"=="false" echo Certificatul SSL NU a fost generat. :: END SSL-CERTIFICATES :: =========================== :: =========================== :: START VHOST echo. echo Se va genera fisierul vhost.conf, cu instructiuni de utilizare echo. pause :: Creează fișierul de configurare pentru portul 80 echo # =========================== > "%VHOST_FILE%" echo # Instructiuni pentru C:\xampp\apache\conf\extra >> "%VHOST_FILE%" echo # Sitename: %sitename% >> "%VHOST_FILE%" echo # DocumentRoot: %document_root% >> "%VHOST_FILE%" echo. >> "%VHOST_FILE%" ( echo ^ echo ServerAdmin webmaster@%sitename% echo ServerName %sitename% echo ServerAlias www.%sitename% echo DocumentRoot %document_root% echo ^ echo AllowOverride All echo Require all granted echo ^ echo Redirect permanent / https://www.%sitename%/ echo ^ ) >> "%VHOST_FILE%" :: Creează fișierul de configurare pentru portul 443 (HTTPS) ( echo ^ echo ServerAdmin webmaster@%sitename% echo ServerName %sitename% echo ServerAlias www.%sitename% echo DocumentRoot %document_root% echo ^ echo AllowOverride All echo Require all granted echo ^ echo SSLEngine on echo SSLCertificateFile "%SSL_DIR%\%sitename%.pem" echo SSLCertificateKeyFile "%SSL_DIR%\%sitename%-key.pem" echo ^ ) >> "%VHOST_FILE%" echo. >> "%VHOST_FILE%" echo # =========================== >> "%VHOST_FILE%" echo. >> "%VHOST_FILE%" :: Adaugă intrările în fișierul hosts ( echo. echo # =========================== echo # C:\Windows\System32\drivers\etc echo # %sitename% echo # 127.0.0.1 %sitename% echo # 127.0.0.1 www.%sitename% echo # ::1 %sitename% echo # ::1 www.%sitename% echo # =========================== ) >> "%VHOST_FILE%" echo. echo Fisierul de configurare pentru %sitename% a fost creat la: "%VHOST_FILE%" echo. pause :: END VHOST :: =========================== :: =========================== :: START INDEX.PHP :: Adaugă index.php echo ^ "%INDEX_FILE%" echo echo "%sitename%"; >> "%INDEX_FILE%" :: END INDEX.PHP :: =========================== :: =========================== :: START HTTACESS echo. echo Se va genera fisierul htaccess! echo. pause setlocal disableDelayedExpansion :: Genereaza fisierul htaccess ( echo # ========== https + www ========== echo ^ echo ^ RewriteEngine On echo ^ RewriteCond %%{HTTPS} off [OR] echo ^ RewriteCond %%{HTTP_HOST} !^^www\.^ [NC] echo ^ RewriteRule ^^ https^://www.%%{HTTP_HOST}%%{REQUEST_URI} [L,R=301] echo ^ echo # ========== https + www ========== ) > %HTACCESS_FILE% echo. echo Fisierul htaccess a fost generat echo. pause :: END HTTACESS :: =========================== echo. echo Scriptul se va inchide! echo. pause :: Închide scriptul endlocal endlocal exit /b