Введение
Часто перед разработчиками и не только встает задача локальной разработки и тестирования веб приложений.
И для этого часто приходится искать переносной веб сервер, но решить эту задачу можно очень даже самостоятельно и просто.
Создадим переносной веб сервер с поддержкой php7 apache2 и nginx.
План:
- Скачаем необходимый софт
- Создадим bat файл для запуска сервера
- Протестируем работу сервера
Скачиваем необходимый софт
PHP 7
Ссылка на скачивание
Apache 2
Ссылка на скачивание
Nginx
Ссылка на скачивание
Создаем bat файл для запуска
Я много лет разрабатываю на Windows
. Поэтому представляю свой bat скрипт.
Если будет запрос, то напишу аналогичный скрипт под bash
или сразу универсальный скрип на python
.
Сам код я пояснять не буду, но если у вас возникнут вопросы напишите мне и я на них отвечу. А сами ответы на вопросы добавлю в статью.
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
|
@echo off
cd /d %~dp0
:menu1
if "%in%"=="?" cls
echo. && set in=?
call :items
set /p in="Item: "
if "%in%"=="0" exit /b
cls && call :items
goto menu1
:items
call :status 1
call :startNginx 2
call :stopNginx 3
call :reloadNginx 4
call :quitNginx 5
call :startApache 6
call :stopApache 7
exit /b
:find
set pid=
set cnd=name='%~1'
set get=ProcessId /format:value
set cmd=wmic process where "%cnd%" get %get%
set opt="tokens=2 delims=="
for /f %opt% %%i in ('%cmd%') do set pid=%%i
if not "%pid%"=="" echo %~1 pid=%pid%
exit /b
:init
if "%in%"=="?" (
echo %1: %~2
exit /b 1
)
if "%in%"=="%1" (
echo %~2:
exit /b 0
)
exit /b 1
:status
call :init %1 "Status"
if errorlevel 1 exit /b
echo Nginx:
call :find nginx.exe
echo Apache:
call :find httpd.exe
exit /b
:startNginx
call :init %1 "Nginx start"
if errorlevel 1 exit /b
call :find nginx.exe
if not "%pid%"=="" exit /b
cd %~dp0nginx & start nginx
exit /b
:stopNginx
call :init %1 "Nginx stop"
if errorlevel 1 exit /b
cd %~dp0nginx & nginx -s stop
exit /b
:reloadNginx
call :init %1 "Nginx reload"
if errorlevel 1 exit /b
cd %~dp0nginx & nginx -s reload
exit /b
:quitNginx
call :init %1 "Nginx quit"
if errorlevel 1 exit /b
cd %~dp0nginx & nginx -s quit
exit /b
:startApache
call :init %1 "Apache start"
if errorlevel 1 exit /b
call :find httpd.exe
if not "%pid%"=="" exit /b
set dir=%~dp0apache2
set SRVROOT=%dir%
set PHPDIR=%~dp0php74
start %dir%\bin\httpd
exit /b
:stopApache
call :init %1 "Apache kill"
if errorlevel 1 exit /b
taskkill /IM httpd.exe /F
exit /b
|
Тестируем полученный веб сервер
Описание процесса тестирования