Установка локального сервера на Windows
14:37, 16.08.2022
Для развертывания рабочего окружения вам обязательно потребуется установить локальный сервер на Windows – как правило, такая связка включает два элемента:
- GIT (распределенная система управления версиями);
- локальный сервер (MySQL, Apache, mongodb, Memcached, nginx, PHP).
В нашем случае для наглядности будем последовательно устанавливать PuTTY, GIT, джентльменский набор Denwer (Apache, MySQL, PHP), Nginx , а также Memcached и MongoDB. Всё это нужно для полноценного развертывания локального сервера.
Как установить PuTTY
Этот клиент обеспечит нам возможность удаленного и безопасного доступа к проекту через протокол SSH или Telnet. Вам нужно лишь перейти на официальный сайт разработчика, загрузить инсталлятор и установить всё стандартным способом. Никаких сложностей не возникнет. С настройкой разбираться придется самостоятельно, так как это не основная тема нашей статьи.
Установка GIT
Опять же, идем на официальный сайт TortoiseGit, выбираем подходящую версию релиза, скачиваем и устанавливаем. Мы рекомендуем именно TortoiseGit, так как он более стабилен и надежен с точки зрения разработки.
Denwer
Стандартный набор всякого веб-разработчика, включающий инсталлятор, веб-сервер, базу данных MySQL, PHP, систему управления виртуальными хостингами и ряд других важных компонентов.
Для установки нужно загрузить базовый комплект Denwer, а также дополнительные модули PHP5. Здесь важно подчеркнуть, что придется пройти регистрацию, и только тогда вы сможете получить ссылку на скачивание программного обеспечения на свой email.
Memcached
Об этой системе кэширования объектов мы уже рассказывали подробно в отдельной статье, так что надолго здесь задерживаться не будем. Для установки вам потребуется скачать архив с файлом в формате binaries, а затем распаковать его в директорию \usr\local\memcached.
Чтобы Memcached запускался вместе с Denwer, придется написать небольшой скрипт с командами запуска. Для этого в директории \denwer\scripts\init.d\ создайте файл с названием memcached.pl, откройте его в режиме редактирования и пропишите такие строки:
#!perl -w package Starters::Memcached; BEGIN { unshift @INC, "../lib"; } use StartManager; my $basedir = '/usr/local/memcached/'; chdir($basedir); StartManager::action $ARGV[0], start => sub { ### ### START. ### print "Starting memcached\n"; system("memcached.exe -d"); print " Started!\n"; }, stop => sub { ### ### STOP. ### print "Stopping memcached\n"; system("TASKKILL /F /IM memcached.exe"); print " Stopped!\n"; }; return 1 if caller;
Остается дело за малым – нужно создать ссылку на этот скрипт в трех разных директориях, чтобы при запуске Denwer автоматически выполнялся init.d/memcached.pl. Для этого в текстовом редакторе нужно написать:
init.d/memcached
Файл называем 40_memcached и сохраняем в трех разных папках:
- \denwer\scripts\main\start
- \denwer\scripts\main\stop
- \denwer\scripts\main\restart
После этого откройте текстовый скрипт index.php и добавьте в него три строчки:
$memcache = new Memcache; $memcache->connect('127.0.0.1', 11211); echo ‘Memcache ver: ’ . $memcache->getVersion();
Проверить, работает ли всё так, как задумано, можно путем перезапуска Denwer.
Настройка веб-сервера Nginx
Во время установки локального сервера на Windows не обойтись без веб-сервера – в нашем случае это Nginx. Вам нужно всего лишь перейти на официальный сайт разработчика, загрузить версию для Windows и распаковать файлы в директорию \usr\local\nginx.
Следующий шаг – настроить под ваш тестовый сайт виртуальный хост. Откройте \usr\local\nginx\conf\nginx.conf в режиме редактирования и добавьте строки:
server { listen 127.0.0.1:80; server_name www.test.local test.local; if ($host = 'test.local'){ rewrite ^/(.*)$ http://www.test.local$1 permanent; } location ~* \.(jpeg|jpg|gif|png|css|js|pdf|txt|tar)$ { root Z:\home\/test.local\www; } location / { ssi on; proxy_pass http://127.0.0.1:8080/; proxy_set_header X-REQUEST_URI $request_uri; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-for $remote_addr; proxy_set_header Host $host; proxy_connect_timeout 60; proxy_send_timeout 90; proxy_read_timeout 90; proxy_redirect off; proxy_set_header Connection close; proxy_pass_header Content-Type; proxy_pass_header Content-Disposition; proxy_pass_header Content-Length; root Z:\home\/test.local\www; } }
Естественно, все прописанные выше параметры необходимо адаптировать в соответствии с вашим проектом.
Как настроить Apache
Параметры работы Apache по умолчанию зачастую не подходят для работы – в частности, установленный «из коробки» порт 80 обычно рекомендуется менять. Либо из соображений безопасности, либо в том случае, если на этом порту работает другой веб-сервер – например, тот же Nginx. В общем, двигаемся в настройки Apache и меняем шаблон для виртуального хоста с целью назначить ему другой порт.
Открываем в режиме редактирования файл \usr\local\apache\conf\httpd.conf и ищем такие строки:
#Listen $&{ip:-127.0.0.1}:$&{port:-6080} #NameVirtualHost $&{ip:-127.0.0.1}:$&{port:-6080} #<VirtualHost $&{ip:-127.0.0.1}:$&{port:-6080}> # DocumentRootMatch "/home/(?!cgi-)(.*)^1/(?!cgi$|cgi-)(.*)" # DocumentRootMatch "/home/(?!cgi-)(.*)/public_html^1" # DocumentRootMatch "/home/(?!cgi-)(.*)/public^1" # DocumentRootMatch "/home/(?!cgi-)(.*)^1/html/(.*)" # DocumentRootMatch "/home/(?!cgi-)(.*)^1/domains/(?!cgi$|cgi-)(.*)" # DocumentRootMatch "/var/www/html/(?!cgi-)~(.*)^1/(?!cgi$|cgi-)(.*)" # DocumentRoot "$&" # ServerName "%&/-www" # ServerAlias "%&/-www" "%&/-www/www" $&{host:-} # # $&{directives:-} # # ScriptAlias /cgi/ "$^1/cgi/" # ScriptAlias /cgi-bin/ "$^1/cgi-bin/" # AllowEncodedSlashes on #</VirtualHost>
Здесь вместо 6080 можете указать любой другой удобный порт.
Как настроить автозапуск Denwer вместе с Nginx
Переходим в директорию \denwer\scripts\init.d\, здесь нужно создать файл nginx.pl. Его содержимое должно выглядеть следующим образом:
#!perl -w package Starters::Nginx; BEGIN { unshift @INC, "../lib"; } use StartManager; my $basedir = '/usr/local/nginx/'; chdir($basedir); StartManager::action $ARGV[0], start => sub { ### ### START. ### print "Starting Nginx\n"; system("start nginx.exe"); print " Started!\n"; }, stop => sub { ### ### STOP. ### print "Stopping Nginx\n"; system("nginx.exe -s stop"); print " Stopped!\n"; }; return 1 if caller;
Сохраняем изменения и движемся далее. Теперь открываем текстовый редактор, в нем пишем «init.d/nginx» без кавычек, а затем сохраняем под именем 50_memcached в трех разных директориях:
- \denwer\scripts\main\start
- \denwer\scripts\main\stop
- \denwer\scripts\main\restart
Чтобы проверить работу скриптов, перезагрузите Denwer – если CSS подключается, всё сделано корректно.
Как настроить MongoDB
Эту документо-ориентированную систему часто используют на локальных серверах, так как в ней понятная структура объекта и присутствуют расширенные возможности запросов. Кроме того, БД удобно масштабировать, что порой экономит очень много времени. Скачать её можно с официального сайта разработчиков.
Перед установкой MongoDB потребуется загрузить PHP драйвер – перейдите на github и найдите файл php_mongo.dll. После скачивания закиньте его в директорию \usr\local\php5\ext\. Подключить расширение можно в файле php.ini, добавив строчку:
extension=php_mongo.dll
Теперь приступаем непосредственно к установке – загрузите архив с инсталлятором и распакуйте его содержимое по адресу \usr\local\mongodb. Здесь же сразу создаем еще две папки с названиями db и logs.
Далее следует установка службы:
> cd C:\WebServers\usr\local\mongodb\bin\ > mongod.exe --install --dbpath=C:\WebServers\usr\local\mongodb\db\ --logpath=C:\WebServers\usr\local\mongodb\logs\
Остается настроить автозапуск MongoDB вместе с Denwer. Для этого переходим по пути \denwer\scripts\init.d\ и здесь создаем файл с названием mongod.pl. Внутрь закидываем небольшой скрипт:
#!perl -w package Starters::mongoDB; BEGIN { unshift @INC, "../lib"; } use StartManager; StartManager::action $ARGV[0], start => sub { ### ### START. ### print "Starting mongoDB\n"; system("net start mongoDB"); print " Started!\n"; }, stop => sub { ### ### STOP. ### print "Stopping mongoDB\n"; system("net stop mongoDB"); print " Stopped!\n"; }; return 1 if caller;
Теперь по аналогии с предыдущими шагами открываем текстовый редактор, внутрь прописываем:
init.d/mongod
Называем файл «60_mongod» и сохраняем в трех директориях:
- \denwer\scripts\main\start
- \denwer\scripts\main\stop
- \denwer\scripts\main\restart
После этого рекомендуем посетить официальный сайт разработчиков MongoDB и выбрать себе админку по душе – у всех людей разные вкусы относительно интерфейсов, поэтому никаких универсальных рекомендаций давать не будем.
Наконец, добавим, что вместо PuTTY вы можете использовать KiTTY, а связку Denwer можно заменить программной средой Open Server – она тоже создана с прицелом на веб-разработчиков и отлично работает под управлением Windows. Надеемся, наш материал помог вам разобраться, как установить локальный сервер на Windows и подготовить его к работе над проектом. Спасибо за внимание!