Перейти к содержимому

Как запустить локальный сервер php

  • автор:

Встроенный в PHP веб-сервер — Веб-разработка на PHP

Как и многие другие языки PHP сразу поставляется со встроенным веб-сервером. Этот веб-сервер создан для удобства разработки, так как не надо ставить ничего дополнительно. Но он не подходит для продакшен-среды. В последнем случае нужно использовать nginx .

С точки зрения организации кодовой базы разработка сайтов мало отличается от разработки обычных программ. Первым делом необходимо создать директорию, внутри которой будет вестись разработка сайта. Затем ее следует добавить в git-репозиторий. Назовем эту директорию корнем проекта.

Если проект учебный, то лучше сразу создать репозиторий на GitHub и выкладывать все эксперименты туда.

Затем нужно создать файл index.php и поместить его в корень проекта. По соглашению это главный входной файл в PHP, который автоматически ищется веб-серверами.

Создайте такой файл в директории проекта со следующим содержимым:

 // Печатает год в STDOUT echo date('Y'); echo "\n"; 

Затем запустите веб-сервер, например, на порту 8080 :

-S localhost:8080 [Wed May 27 11:55:19 2020] PHP 7.4.3 Development Server (http://localhost:8080) started 

Когда сервер будет запущен, он полностью забирает управление. Вкладка терминала больше не доступна для ввода команд. В отличие от обычных скриптов, которые выполняют свою задачу и заканчиваются, веб-сервера должны слушать порт непрерывно и сразу реагировать на входящие соединения. Поэтому, когда сервер запустят, он продолжит работать, пока его не остановят.

Остановить сервер можно с помощью команды Ctrl-C .

Такой способ запуска удобен в разработке, но в реальном окружении сервера запускают в виде демонов. Это процесс операционной системы, работающий в фоне.

Если в это время попытаться запустить еще один веб-сервер в соседней вкладке на том же порту, то запуск завершится с такой ошибкой:

Failed to listen on localhost:8080 (reason: Address already in use)

Программисты часто встречаются с этой ошибкой. Она означает, что какой-то процесс занял соответствующий порт — в данном случае 8080. В такой ситуации нужно либо остановить процесс, который мешает, либо стартовать на другом порту.

Посмотреть, какой процесс занял порт 8080, можно командой sudo lsof -i :8080 .

После этого откройте браузер и введите http://localhost:8080 . На экран выведется текущий год. В терминале, где запущен веб-сервер, появятся записи (лог), показывающие входящие запросы:

[Wed May 27 14:53:31 2020] [::1]:52988 [200]: GET / [Wed May 27 14:53:31 2020] [::1]:52990 [404]: GET /favicon.ico - No such file or directory 

Теперь снова откройте файл index.php и добавьте ниже вывод echo ‘Hello, world!’; . Выполните f5 в браузере, и вы увидите, что изменения применились автоматически. Так происходит, потому что веб-сервер запускает файл на выполнение заново при каждом http-запросе.

Тело HTTP-ответа

При запуске скриптов на PHP, любая функция предсказуемо печатает на экран:

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов

Наши выпускники работают в компаниях:

Как настроить локальный сервер для тестирования?

Эта статья объясняет как установить простой локальный тестовый сервер на вашем компьютере, а так же основы его использования.

Требования: Сначала вам необходимо изучить как работает интернет, а также что такое веб-сервер.
Цель: Вы научитесь как устанавливать локальный тестовый сервер.

Локальные и удалённые файлы

На протяжении всего обучения, вы будете открывать примеры непосредственно в браузере — двойным кликом по HTML файлу, перетаскиванием файла в окно браузера, или через меню File > Open. и указывая необходимый HTML файл. Существует множество способов как это сделать.

Если веб-адрес начинается с file:// в котором далее прописан путь к файлу на вашем локальном жёстком диске, значит используется локальный файл. В противоположность этому, если вы откроете на просмотр один из наших примеров, расположенных на GitHub (или пример расположенный на любом другом удалённом сервере), веб-адрес будет начинаться с http:// или https:// , что означает что файл был получен через HTTP.

Проблемы тестирования локальных файлов

Некоторые примеры могут не запуститься, если вы попробуете открыть их как локальные файлы. Это может произойти по нескольким причинам, самые распространённые из которых:

  • Они содержат асинхронные запросы. Некоторые браузеры (включая Chrome) не будут запускать асинхронные запросы (см. Fetching data from the server), если вы просто запускаете пример из локального файла. Это связано с ограничениями безопасности (для получения дополнительной информации о безопасности в Интернете, ознакомьтесь с Website security).
  • Они имеют серверный язык. Серверные языки (например, PHP или Python) требуют специального сервера для интерпретации кода и предоставления результатов.

Запуск простого локального HTTP сервера

Чтобы обойти проблему асинхронных запросов, нам нужно протестировать такие примеры, запустив их через локальный веб-сервер. Один из самых простых способов сделать это для наших целей — использовать модуль SimpleHTTPServer Python.

Для этого нужно:

  1. Установить Python. Если вы пользуетесь Linux или Mac OS X, всё уже готово в вашей системе. Если вы пользователь Windows, вы можете скачать установочный файл с домашней страницы Python:
    • Зайдите на python.org
    • В секции загрузок, выберите линк для Python «3.xxx».
    • Внизу страницы выберите Windows x86 executable installer и скачайте его.
    • После загрузки файла запустите его.
    • На первой странице инсталлятора выберите чекбокс «Add Python 3.xxx to PATH».
    • Нажмите Install, затем нажмите Close когда установка закончится.
  2. Откройте командную строку (Windows)/ (OS X/Linux). Для проверки установки Python введите следующую команду:

# include the directory name to enter it, for example cd Desktop # use two dots to jump up one directory level if you need to cd .. 
# If Python version returned above is 3.X python -m http.server # If Python version returned above is 2.X python -m SimpleHTTPServer 

Примечание: . Если у вас уже есть что-то на порту 8000, вы можете выбрать другой порт, запустив команду сервера, за которой следует альтернативный номер порта, например: python -m http.server 7800 (Python 3.x) или python -m SimpleHTTPServer 7800 (Python 2.x). Затем вы можете получить доступ к своему контенту на localhost: 7800 .

Запуск серверных языков локально

Модуль Python SimpleHTTPServer (python 2.0) http.server (python 3.0) полезен, но он не знает, как запускать код, написанный на таких языках, как Python, PHP или JavaScript. Чтобы справиться с этим, вам понадобится нечто большее — именно то, что вам нужно, зависит от языка сервера, который вы пытаетесь запустить. Вот несколько примеров:

  • Для запуска кода на стороне сервера Python вам необходимо использовать веб-инфраструктуру Python. Вы можете узнать, как использовать структуру Django, прочитав Django Web Framework (Python). Flask также является хорошей (чуть менее тяжёлой) альтернативой Django. Чтобы запустить это, ознакомьтесь с install Python/PIP, а затем установите Flask с помощью pip3 install flask . На этом этапе вы сможете запустить примеры Python Flask, используя, например, python3 python-example.py , затем перейдя на localhost: 5000 в свой браузер.
  • Чтобы запустить серверный код Node.js (JavaScript), вам нужно использовать Node.js или фреймворк, построенный поверх него. Express — хороший выбор — см. Express Web Framework (Node.js/JavaScript).
  • Чтобы запустить PHP-серверный код, вам понадобится настройка сервера, которая может интерпретировать PHP. Хорошими вариантами для локального тестирования PHP являются MAMP (Mac и Windows), AMPPS (Mac, Windows, Linux) и LAMP (Linux, Apache, MySQL и PHP / Python / Perl). Это полные пакеты, которые создают локальные настройки, позволяющие запускать базы данных Apache, PHP и MySQL.

Open Server Panel

Open Server Panel — это портативная программная среда, созданная специально для веб-разработчиков с учётом их рекомендаций и пожеланий.

Наш программный пакет включает в себя тщательно подобранный набор серверного программного обеспечения , необходимого для ведения веб-разработки (WAMP-стек) , а также удобную в использовании утилиту с широкими возможностями для администрирования и настройки всех доступных компонентов.

На сегодняшний день OSPanel широко используется веб-разработчиками по всему миру с целью разработки, отладки и тестирования веб-проектов, а также для предоставления веб-сервисов в локальных сетях. Наибольшую популярность проект завоевал у начинающих веб-мастеров, поскольку позволяет быстро создать рабочее окружение и сразу начать изучение веб-технологий без сложных манипуляций по установке и настройке большого количества незнакомых программных компонентов.

На сегодняшний день OSPanel широко используется веб-разработчиками по всему миру с целью разработки, отладки и тестирования веб-проектов, а также для предоставления веб-сервисов в локальных сетях. Наибольшую популярность проект завоевал у начинающих веб-мастеров, поскольку позволяет быстро создать рабочее окружение и сразу начать изучение веб-технологий без сложных манипуляций по установке и настройке большого количества незнакомых программных компонентов.

Устройство среды

ВОЗМОЖЕН ОДНОВРЕМЕННЫЙ ЗАПУСК НЕСКОЛЬКИХ ВЕРСИЙ PHP!

Из коробки включена поддержка современных технологий: [ IPv6 ] [ SSL ] [ IDN ] [ HTTP/2 ] [ Brotli ]

Ключевые особенности

  • Незаметная работа в трее Windows
  • Мультиязычный интерфейс
  • Поддержка портативного режима работы
  • Полный доступ пользователя к настройкам и конфигурации модулей
  • Управление программой через меню, консоль и веб-интерфейс (в разработке)
  • Полный контроль над процессами (включая мониторинг и восстановление после сбоя)
  • Возможность параллельного запуска модулей (вы даже можете включить все модули одновременно)
  • Простое управление доменами с поддержкой интернационализованных доменов и доменных псевдонимов (алиасов)
  • Огромный набор сторонних расширений PHP
  • Поддержка SSL и IPv6 без необходимости настройки
  • Возможность быстрой смены текущей среды в консоли одной командой
  • Возможность создавать профили настроек модулей (включая файлы конфигурации модулей и данные)
  • Персонализация настроек для каждого домена (от IP до версии PHP)
  • Преднастроенная среда для каждого модуля (вплоть до входа в shell/cli одной командой)
  • IDN конвертер доменных имён
  • И многое другое.

Модули и дополнения

Модуль Версия Описание
Apache 2.4 (+14 модулей) Веб-сервер для обработки HTTP-запросов
Bind 9.16 DNS-сервер
ErlangOTP 26.2 Язык программирования для создания масштабируемых приложений
MariaDB 10.1-11.2 Реляционная база данных
Memcached 1.4-1.6 Система кэширования данных в оперативной памяти
MongoDB 3.0-7.0 NoSQL база данных
MySQL 5.5-8.2 Реляционная база данных
Nginx 1.22-1.26 (+9 модулей) Веб-сервер и обратный прокси-сервер
NVM 1.1.12 Менеджер версий Node.js
Perl 5.32 Язык программирования для текстовой обработки
PHP 7.2-8.3 (+115 расширений) Скриптовый язык программирования для веб-разработки
PostgreSQL 9.5-16 Реляционная база данных
RabbitMQ 3.13 Брокер сообщений
Redis 3.0-7.2 Система кэширования и хранилище данных в памяти
Unbound 1.17 DNS-резольвер

Консольные утилиты

Утилита Описание
aria2c Утилита для загрузки файлов по протоколам HTTP(S), (S)FTP и BitTorrent
bat Клон cat (linux) с подсветкой синтаксиса и интеграцией Git
brotli Утилита для сжатия данных без потерь с открытым исходным кодом
composer Менеджер зависимостей для PHP
curl Инструмент командной строки для передачи данных с помощью URL-адресов
dust Утилита похожая на du (linux), но более интуитивная и понятная!
fd Простая и быстрая утилита для поиска записей в файловой системе
gzip Утилита сжатия и восстановления файлов с помощью алгоритма Deflate
jq Лёгкий и гибкий JSON-процессор командной строки
mmdbinspect Инструмент для поиска записей в одной или нескольких базах данных .mmdb
sass Dart Sass — популярный компилятор SASS/SCSS файлов
sd Интуитивно понятная программа для поиска и замены текста в файлах
wget Неинтерактивная консольная программа для загрузки файлов по сети
xh Удобный и быстрый инструмент для отправки HTTP-запросов

Системные требования

! Версий для Linux и MacOS нет
32-битные системы не поддерживаются

Операционные системы: Windows 10 v1607 / Windows Server 2016 или новее;
Свободные аппаратные ресурсы: от 3 ГБ RAM и от 10 ГБ места на диске;
Системное ПО: MSVC++ 2005-2022 Redistributable Packages (есть в комплекте);
Файловая система: NTFS (сетевые диски не поддерживаются);

Имеется поддержка устаревших операционных систем от Windows 7 SP1 до Windows 10 v1511 с некоторыми ограничениями: не все модули доступны, пути к файлам не могут превышать 255 символов.

Наши партнёры

Web-gate.org Cоздание, оптимизация и продвижение сайтов Cоздание сайтов под ключ, их оптимизация и продвижение

Dra.ruСайт под ключ для вашего бизнеса, сайт-визитка
HostSuki.proАвторский блог о хостингах
Sitemedia.ruСоздание и продвижение сайтов по РФ
Asuka.OnlВыделенные серверы и VM
ITSoft.ruВеб-студия и дата-центр ITSoft. Работаем с 1999 года
Joomla-book.ruРуководство Joomla, шаблоны и расширения
JBZoo.ruКонструктор контента JBZoo для создания магазинов
Kuchugury.ruХорошо отдохнуть в России, оказывается, можно!

О проекте

OSPanel — это отличная замена такому программному обеспечению как Xampp, Laravel Herd, Wampserver, EasyPHP и т.д. Удобство и простота управления безусловно не оставят вас равнодушными!

Просто попробуйте Open Server Panel и вы получите действительно мощную программную среду, где вы сможете комфортно заниматься разработкой веб-проектов не задумываясь о лишнем. Только представьте, вам не потребуется тратить время на установку всех необходимых программ даже в случае переустановки Windows — просто запустите приложение и оно уже работает!

Идея создать новую и более совершенную WAMP платформу родилась после многолетнего и безуспешного ожидания обновления популярной в начале 2000-х годов WAMP сборки Denwer. Старт проекта Open Server Panel состоялся 1 августа 2010 года на домене open-server.ru.

Первые экспериментальные версии были написаны в сотрудничестве с талантливым программистом из Украины. Сейчас разработка проекта ведётся на языке Delphi. Программа распространяется как Freeware, т.е. свободно и бесплатно, лицензионное соглашение не налагает каких-либо ограничений и не предполагает каких-либо гарантий. В 2016-м году проект переехал на домен ospanel.io.

Команда разработчиков выражает искреннюю благодарность всем, кто помогает в развитии проекта путём его популяризации в виде написания статей и обзоров, размещения заметок и новостей на своих сайтах и в блогах. Мы всегда готовы c энтузиазмом обсудить ваши идеи и предложения, а также внимательно рассмотреть любые замечания на нашем форуме и в Telegram-канале.


Open Server Panel — локальный веб-сервер. HTTP сервер для localhost, который не требует установки. Веб http сервер для локальной сети скачать можно прямо сейчас, локальный web сервер поможет создать свой локальный www сервер. Не потребуется установка Apache, Nginx для localhost.

Разворачиваем локальный сервер на Windows

Несколько дней назад меня очередной раз посетила Мысль. Мысль была не нова и довольна навязчива: «давай перейдем на Windows8. Ну пожааалуйста». И так как отогнать её никак не получалось, я запаслась чаем и печеньками и приступила.

На установку системы и всех необходимых программ ушло не более двух часов, но затем наступил самый интересный момент: мне нужно было развернуть рабочее окружение, а именно — GIT + локальный сервер (Apache, MySQL, PHP, nginx, memcached, mongodb). Помятуя об опыте предыдущих установок, на этот раз я решила весь процесс задокументировать и сохранить для потомков.

Дисклаймер номер раз: «я не программист» (с), а дизайнер интерфейсов и фронтенд-технолог (но в некоторых случаях могу помочь коллегам и накодить что-нибудь этакое, и меня даже потом за это не побьют)

Дисклаймер номер два: да, я прекрасно представляю, что в Ubuntu всё это делается в разы быстрее. Но я работаю на Windows, так исторически сложилось.

Итак, приступим.

Наш план работ включает установку следующих продуктов:

  1. PuTTY
  2. GIT
  3. Denwer (Apache, MySQL, PHP)
  4. Nginx
  5. Memcached
  6. MongoDB

1. PuTTY

PuTTY — свободно распространяемый клиент для различных протоколов удалённого доступа, включая SSH, Telnet, rlogin.

В состав PuTTY входит несколько утилит, но мне в работе нужны только он сам и Pegeant (агент SSH-аутентификации, в котором хранятся ключи от git-репозиториев).
Офсайт: перейти
Если вам не нужны никакие SSH-и, забудьте об этом пункте и идём дальше.

2. GIT

Для работы с git я уже не первый год использую TortoiseGit, который стабилен, гуёв и на 146% закрывает все мои потребности. Вобщем, рекомендую.

Офсайт: перейти

2.1 Для работы TortoiseGit требуется git для Windows, который можно забрать на гуглекоде;
2.2 сам TortoiseGit устанавливаем отсюда

3. Denwer

Денвер — Джентльменский набор Web-разработчика («Д.н.w.р», читается «Денвер») — проект Дмитрия Котерова, набор дистрибутивов (Apache, PHP, MySQL, Perl и т.д.) и программная оболочка, используемые Web-разработчиками для разработки сайтов на «домашней» (локальной) Windows-машине.
Офсайт: перейти

3.1 Установка

Нам потребуется скачать базовый комплект и дополнительные модули PHP5.

Лирическое отступление:

нет, не просто скачать, а получить ссылки на скачивание по email! То есть вам придется вбивать свою почту, а также имя и фамилию два раза в форме под большим заголовком «Регистрация». «Регистрация требуется в связи с будущим выходом Денвера-4.» уже который год как бы извиняется форма, но я ей больше не верю(.

Обычно установка денвера проходит быстро и безболезненно, но на Windows8 на меня напала ошибка, которая ругалась на отсутствующую библиотеку msvcr71.dll. Библиотеку можно забрать здесь и положить в папку «\Windows\System32\» (x32) или «\Windows\SysWOW64\» (x64). После того, как файл улегся в папку, откройте его свойства и нажмите кнопку «Разблокировать».

3.2 Проверка работоспособности

После установки Денвера, создадим тестовый скрипт, на котором будем проверять работоспособность всего того, что мы установим впоследствии.
Идем в Z:\home и добавляем новый сайт: создаем папку test.local, в ней папку «www», в которую добавляем файл index.php с невероятно креативным текстом:

Перезапускаем Денвер, открываем в браузере www.test.local, впечатляемся и идём дальше

4. Memcached

Memcached — связующее программное обеспечение, реализующее сервис кэширования данных в оперативной памяти на основе парадигмы хеш-таблицы.

Memcache — расширение для php, предоставляет удобный процедурный и объектно-ориентированный интерфейс к memcached, высокоэффективному кеширующему демону, который был специально разработан для снижения нагрузки на базу данных в динамических веб приложениях.

4.1 Установка memcached

А. скачиваем архив с бинарником: Memcached 1.4.5 for Windows отсюда
В. распаковываем содержимое архива в \usr\local\memcached

4.2 Установка memcache

А. скачиваем архив с библиотекой отсюда
В. распаковываем содержимое архива в \usr\local\php5\ext\
С. открываем файл php.ini (\usr\local\php5\php.ini) и подключаем расширение:
extension=php_memcache.dll

4.3 Настраиваем запуск Memcached вместе с запуском Denwer

  1. написать скрипт, содержащий команды запуска и останова приложения/ сервиса и положить его в папку\denwer\scripts\init.d
  2. создать ссылку на этот скрипт в папке конфигурации запуски/останова \denwer\scripts\main\

А. создаём файл с именем «memcached.pl» в директории \denwer\scripts\init.d\

#!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\scripts\main\start
  • \denwer\scripts\main\stop
  • \denwer\scripts\main\restart

4.4 Проверяем результат

В наш тестовый скрипт (index.php) добавляем:

$memcache = new Memcache; $memcache->connect('127.0.0.1', 11211); echo ‘Memcache ver: ’ . $memcache->getVersion(); 

Перезапускаем Денвер и смотрим, что получилось

5. Nginx

Nginx — простой, быстрый и надёжный сервер, не перегруженный функциями.

Офсайт: перейти

5.1 Настройка Nginx

A. скачиваем с офсайта Windows-версию и распаковываем в \usr\local\nginx
B. настраиваем виртуальный хост для нашего тестового сайта. Для этого открываем \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; >> 

Это пример настроек из реального проекта, ваши настройки, очевидно, могут отличаться.

5.2 Настройка Apache

По-умолчанию Апач работает на 80-м порту, но мы только что отдали этот порт Nginx-у, поэтому теперь необходимо изменить шаблон для виртуального хоста в настройках апача и назначить ему порт, отличный от 80-го (например, 8080).
Открываем \usr\local\apache\conf\httpd.conf и изменяем номер порта

## ## НАЧАЛО ШАБЛОНА ВИРТУАЛЬНОГО ХОСТА. ## ## Если вы хотите по умолчанию запускать Apache на порту, отличном от 80, ## измените номер порта в следующей далее директиве. ## #Listen $&:$& #NameVirtualHost $&:$& # # 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" $& # # $& # # ScriptAlias /cgi/ "$^1/cgi/" # ScriptAlias /cgi-bin/ "$^1/cgi-bin/" # AllowEncodedSlashes on # 

5.3 Настраиваем запуск Nginx вместе с запуском Denwer

A. создаём файл с именем «nginx.pl» в директории \denwer\scripts\init.d\

#!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; 
  • \denwer\scripts\main\start
  • \denwer\scripts\main\stop
  • \denwer\scripts\main\restart

5.4 Проверяем результат

Положим рядом со скриптом файл style.css с содержанием

h1 < color: red; >h2

И облагородим наш index.php:

  Test me   

Test me

Memcached

connect('127.0.0.1', 11211); echo 'Memcached ver: ' . $memcache->getVersion(); ?>

Теперь перезапускаем Денвер и любуемся результатом. Если CSS-файл подключился – Nginx работает нормально.

6. MongoDB

MongoDB — документо-ориентированная система управления базами данных (СУБД) с открытым исходным кодом, не требующая описания схемы таблиц.

Офсайт: перейти

6.1 PHP-driver

А. Скачиваем библиотеку php_mongo.dll с этого сайта: и закидываем в папку \usr\local\php5\ext\
Методом проб и ошибок было установлено, что подходящий драйвер содержится в архиве mongo-1.2.5.zip/mongo-1.2.5-php5.3vc9ts.zip. Если у вас по какой-то причине не заведётся, попробуйте другие версии.

B. подключаем расширение в php.ini
extension=php_mongo.dll

6.2 Установка Mongo

  1. db
  2. logs

B. устанавливаем службу
> cd C:\WebServers\usr\local\mongodb\bin\
> mongod.exe —install —dbpath=C:\WebServers\usr\local\mongodb\db\ —logpath=C:\WebServers\usr\local\mongodb\logs\

6.3 Настраиваем запуск MongoDB совместно с денвером

A. создаём файл с именем «mongod.pl» в директории \denwer\scripts\init.d\

#!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; 
  • \denwer\scripts\main\start
  • \denwer\scripts\main\stop
  • \denwer\scripts\main\restart

6.4 Проверяем результат

Запустим консольный интерфейс mongo
> Z:\usr\local\mongodb\bin\mongo.exe

и выполним вставку и вывод тестового значения в базу “test”
> db.test.save( < name: “Habr!” >)
> db.test.find()

В результате должно получиться следующее:

6.5. Установка интерфейса управления Mongo-базами

На офсайте MongoDB есть список и краткие обзоры админок, так что можно выбрать по вкусу.
Я для себя выбрала RockMongo, поэтому именно с её помощью мы окончательно удостоверимся, что у нас всё работает и никуда не падает.

А. скачиваем архив с админкой с этой страницы. Выбираем, естественно, версию для Windows. На момент написания статьи это RockMongo-on-Windows v0.0.4

B. из архива берём папку \rockmongo-on-windows\web\rockmongo и копируем её в директорию нашего тестового сайта
Открываем config.php и меняем значение параметра

$MONGO["servers"][$i]["control_auth"] = true; 
$MONGO["servers"][$i]["control_auth"] = false; 

C. Проверяем результат по ссылке www.test.local/rockmongo/index.php

Поздравляю! Теперь мы окончательные и бесповоротные молодцы.

Бонус №1. Работа с php из консоли Windows

Возможно, кому-то пригодится. Мне вот пригодилось, когда наш злобный техлид решил, что «SQL-файлы – это ващепрошлыйвек, давайте юзать миграции». Я, конечно, для приличия попыталась изобразить полное непонимание и даже пустить слезу, но была разоблачена и отправлена разбираться с тем, как это работает на Windows.
Оказалось, что всё что нужно для счастья – это прописать PHP директорию в PATH.

Нажимаем на «Изменить» и добавляем в конец строки
;Z:\usr\local\php5

Теперь проверим, что всё заработало.
В директории тестового сайта создадим файл console.php

 echo 'Hello ' . $argv[1] . '!'; 

Открываем консоль (можно прям из этой же папки – щелкаем правой кнопкой мыши с зажатым SHIFT-ом на пустом месте и выбираем пункт «Открыть окно команд»).
Вводим:
> php console.php “UserName”

Консоль отвечает:
> “Hello, UserName!”

PHP побеждён, всеобщее ликование, апплодисменты, занавес.

Бонус №2.

Все файлы и примеры, упомянутые в статье одним архивом бесплатно без смс: на гитхабе

Надеюсь, что данный материал окажется полезен.
Буду благодарна за замечания и предложения.

  • denwer
  • локальный сервер

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *