-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstart-windows.bat
More file actions
201 lines (157 loc) · 4.21 KB
/
Copy pathstart-windows.bat
File metadata and controls
201 lines (157 loc) · 4.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
@echo off
setlocal
set "ROOT=%~dp0"
set "PHP=%ROOT%runtime\windows\php\php.exe"
set "PHP_INI=%ROOT%runtime\windows\php\php.ini"
set "OPCACHE=%ROOT%runtime\windows\php\opcache"
set "LOGS=%ROOT%logs"
set "API=%ROOT%api"
set "DB_CHECK=%ROOT%scripts\check-database.php"
echo ========================================
echo Generic SQL API
echo ========================================
echo.
REM ============================================================
REM PHP Runtime
REM ============================================================
if not exist "%PHP%" (
echo [FAILED] PHP runtime not found.
echo Expected: %PHP%
echo.
pause
exit /b 1
)
if not exist "%PHP_INI%" (
echo [FAILED] php.ini not found.
echo Expected: %PHP_INI%
echo.
pause
exit /b 1
)
echo [OK] PHP Runtime
echo [OK] PHP Configuration
echo.
REM ============================================================
REM Create Runtime Directories
REM ============================================================
if not exist "%OPCACHE%" (
mkdir "%OPCACHE%"
)
if not exist "%LOGS%" (
mkdir "%LOGS%"
)
echo [OK] Runtime Directories
echo.
REM ============================================================
REM PHP ODBC Extension
REM ============================================================
"%PHP%" -c "%PHP_INI%" -m | findstr /i "odbc" >nul
if errorlevel 1 (
echo [FAILED] PHP ODBC extension not available.
echo.
echo Please check the PHP ODBC configuration.
echo.
echo API startup aborted.
pause
exit /b 1
)
echo [OK] PHP ODBC
echo.
REM ============================================================
REM Database Connection
REM ============================================================
if not exist "%DB_CHECK%" (
echo [FAILED] Database check script not found.
echo Expected: %DB_CHECK%
echo.
echo API startup aborted.
pause
exit /b 1
)
echo Checking database connection...
"%PHP%" ^
-c "%PHP_INI%" ^
-d "error_log=%LOGS%\php_errors.log" ^
"%DB_CHECK%"
set "DB_STATUS=%ERRORLEVEL%"
if not "%DB_STATUS%"=="0" (
echo.
echo [FAILED] Database connection failed.
echo.
echo Please configure:
echo database/config/database.json
echo.
echo Refer to the documentation for database configuration.
echo.
powershell -NoProfile -Command ^
"$wshell = New-Object -ComObject WScript.Shell; $wshell.Popup('Database connection failed.`n`nPlease configure database.json and refer to the documentation.', 0, 'Generic SQL API', 16)"
echo.
echo API startup aborted.
pause
exit /b 1
)
echo.
echo [OK] Database Connected
echo.
REM ============================================================
REM API Directory
REM ============================================================
echo Checking API directory...
if not exist "%API%\" (
echo [FAILED] API directory not found.
echo Expected: %API%
echo.
echo API startup aborted.
pause
exit /b 1
)
echo [OK] API Directory
echo.
REM ============================================================
REM Find Available Port
REM ============================================================
set "PORT=8000"
set "MAX_PORT=8100"
echo Checking available port...
:CHECK_PORT
netstat -ano | findstr /R /C:":%PORT% .*LISTENING" >nul
if errorlevel 1 (
echo [OK] Port %PORT% Available
echo.
goto START_API
)
echo [INFO] Port %PORT% is already in use.
set /a PORT+=1
if %PORT% GTR %MAX_PORT% (
echo.
echo [FAILED] No available port found between 8000 and 8100.
echo.
echo API startup aborted.
pause
exit /b 1
)
goto CHECK_PORT
REM ============================================================
REM Start API
REM ============================================================
:START_API
echo ========================================
echo API Ready
echo ========================================
echo.
echo API: http://localhost:%PORT%/index.php
echo.
echo Starting API...
echo.
"%PHP%" ^
-c "%PHP_INI%" ^
-d "opcache.file_cache=%OPCACHE%" ^
-d "error_log=%LOGS%\php_errors.log" ^
-S localhost:%PORT% ^
-t "%API%"
echo.
echo ========================================
echo API Stopped
echo ========================================
echo.
pause