76 lines
2.3 KiB
Batchfile
76 lines
2.3 KiB
Batchfile
@echo off
|
|
setlocal
|
|
set "SCRIPTS_DIR=%~dp0"
|
|
set "SCRIPTS_DIR=%SCRIPTS_DIR:~0,-1%"
|
|
for %%F in ("%SCRIPTS_DIR%\..") do set "PROJECT_DIR=%%~fF"
|
|
|
|
echo =============================================
|
|
echo MatabPanel - First Time Install
|
|
echo =============================================
|
|
echo.
|
|
echo Project folder: %PROJECT_DIR%
|
|
echo.
|
|
|
|
REM --- Find PHP (bundled first, then system fallbacks) ---
|
|
set "PHP_EXE="
|
|
|
|
if exist "%SCRIPTS_DIR%\php\php.exe" (
|
|
set "PHP_EXE=%SCRIPTS_DIR%\php\php.exe"
|
|
)
|
|
|
|
if not defined PHP_EXE (
|
|
for %%P in (
|
|
"C:\xampp\php\php.exe"
|
|
"C:\php\php.exe"
|
|
) do (
|
|
if exist %%P set "PHP_EXE=%%~P"
|
|
)
|
|
)
|
|
|
|
if not defined PHP_EXE (
|
|
powershell -NoProfile -Command ^
|
|
"if(Test-Path 'C:\wamp64\bin\php'){$v=Get-ChildItem 'C:\wamp64\bin\php' -Directory | Sort-Object Name | Select-Object -Last 1; if($v){Write-Host ($v.FullName+'\php.exe')}}" > "%TEMP%\phppath.txt" 2>nul
|
|
set /p PHP_EXE=<"%TEMP%\phppath.txt"
|
|
del "%TEMP%\phppath.txt" >nul 2>&1
|
|
)
|
|
|
|
if not exist "%PHP_EXE%" (
|
|
echo [ERROR] PHP not found!
|
|
echo Bundled PHP not found in scripts\php\, and no system PHP detected.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
echo [OK] PHP found: %PHP_EXE%
|
|
echo.
|
|
|
|
REM --- [1/3] storage:link ---
|
|
echo [1/3] Creating storage link...
|
|
cd /d "%PROJECT_DIR%"
|
|
"%PHP_EXE%" artisan storage:link >nul 2>&1
|
|
if exist "%PROJECT_DIR%\public\storage" (
|
|
echo [OK] Storage link ready.
|
|
) else (
|
|
echo [WARN] Storage link may need admin rights. Run as Administrator if images don't show.
|
|
)
|
|
echo.
|
|
|
|
REM --- [2/3] Optimize Laravel ---
|
|
echo [2/3] Optimizing Laravel cache...
|
|
"%PHP_EXE%" artisan optimize >nul 2>&1
|
|
echo [OK] Done.
|
|
echo.
|
|
|
|
REM --- [3/3] Firewall rules for FTP ---
|
|
echo [3/3] Adding firewall rules for FTP...
|
|
netsh advfirewall firewall delete rule name="MatabPanel FTP" >nul 2>&1
|
|
netsh advfirewall firewall add rule name="MatabPanel FTP" protocol=TCP dir=in localport=2121 action=allow >nul 2>&1
|
|
netsh advfirewall firewall delete rule name="MatabPanel FTP Data" >nul 2>&1
|
|
netsh advfirewall firewall add rule name="MatabPanel FTP Data" protocol=TCP dir=in localport=49152-65534 action=allow >nul 2>&1
|
|
echo [OK] Firewall rules added.
|
|
echo.
|
|
|
|
REM --- [4/4] Autostart + Start server ---
|
|
echo [4/4] Setting up autostart and starting server...
|
|
call "%SCRIPTS_DIR%\setup-autostart.bat"
|