Выбор и установка локального сервера. Устанавливаем локальный сервер на компьютер

На данный пакет можно устанавливать как обычные , так и движки . Денвер имеет установленный сервер, поддержку php, Zend optimizer, MySQL. Таким образом, денвер незаменимым инструментом для размещения сайта на локальном компьютере .

Начните процесс установки денвера. Для этого щелкните два раза по ярлыку скаченной программы. Начнется процесс инсталляции. Установка автоматическая, от времени вам необходимо выбирать варианты. Для начала выбирайте диск для размещения денвера. Затем нажмите несколько раз клавишу «Enter». Процесс установки занимает примерно пять минут. По окончанию согласитесь с размещением ярлыков на вашем рабочем столе.

Запустите денвер с помощью ярлыка «Run». Начнется запуск служб и серверов. Теперь необходимо файлы вашего сайта денвера. Для этого откройте , в которую вы установили набор. Найдите каталог «home». Создайте папку с названием вашего сайта . Откройте эту папку. Создайте еще одну с названием «www». Именно в эту папку копируйте все содержание вашего сайта . Если вы ставите движок, то его файлы также инсталлируйте в папку «www». Нажмите «Restart» чтобы перезапустить сервер. Введите в адресной строке название вашего сайта . Он откроется и вы сможете работать.

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

Инструкция

На любом из жестких дисков своего создайте папку, в которой будут храниться файлы для вашего . Дайте ей любое название. Внутри этой папки создайте еще одну папку и назовите ее Images – в ней будут храниться графические элементы сайта, рисунки, кнопки, меню, и другое.

Зайдите в созданную папку и в меню выберите вкладку «Сервис», а затем – «Свойства папки». В открывшемся окне перейдите на вкладку «Вид» и в списке найдите строку «Скрывать для зарегистрированных типов файлов». Снимите галочку с этой строки, после чего нажмите ОК.

Теперь, когда вы включили отображение расширений, снова перейдите в папку и, кликнув правой клавишей мыши, вызовите контекстное меню, в котором выберите пункт «Создать>Текстовый документ». В папке появится новый файл блокнота. Этот файл станет основой для первой и главной страницы вашего сайта. Так как вы только что включили расширения, файл должен отображаться в папке как «Текстовый документ.txt».

Переименуйте текстовый файл – удалите все название, включая расширение, и поменяйте на index.htm. Подтвердите переименование. Откройте полученный html-файл с помощью любого браузера, а затем в соответствующем меню браузера откройте исходный код страницы. Скопируйте увиденный код и вставьте в файл index.htm, открыв его с помощью блокнота – этот код станет основой для страницы, и в него вы будете встраивать все остальные .

Для общего доступа.

Известно, что для запуска сайта на своём компьютере необходимо настроить локальный сервер и установить ряд программ (Apache, PHP, MySql, Zend Optimizer, Perl). Если их устанавливать по отдельности, потребуется много времени и профессиональных знаний в администрировании серверов, что не каждому под силу.

Облегчили жизнь разработчикам сайтов программисты, которые объединили основные программы сервера в один установочный пакет — «Denwer». Достаточно скачать и установить одну программу «Denwer» и Ваш локальный сервер в считанные минуты будет готов к работе. Запустить сайт на локальном компьютере или даже флешке можно всего за несколько минут!

«Denwer»

«Denwer» (он же, «Денвер», «Denver») — это установочная программа, включающая в себя пакет всех программ необходимых для запуска локального сервера. Сами разработчики называют своё детище более красиво: «Д жентльменский Н абор W eb-Р азработчика». Собственно, от этого и пошло название пакета — «Д.н.w.р», читается «Денвер».

Где скачать?

Скачивать дистрибьютив программы «Денвер» рекомендуем с сайта разработчиков — www.denwer.ru . На сайте Вы сможете скачать базовый пакет , который весит немного более 5.5 Мб. А так же пакеты расширений , которые необходимы для решения сложных задач.

Состав базового пакета

Базовый пакет включает в себя следующие программы:

  • Инсталлятор (поддерживается инсталляция на flash-накопитель!).
  • Сервер Apache с поддержкой SSL , SSI , mod_rewrite , mod_php .
  • PHP с поддержкой GD , MySQL , sqLite .
  • Perl . Скрипты следует помещать в директорию cgi-bin. В первой строке скриптов нужно прописывать стандартный путь к интерпретатору Perl, что и при запуске на сервере Unix (#!/usr/bin/perl).
  • Сервер баз данных MySQL с поддержкой транзакций.
  • Удобная система управления виртуальными хостами , основанная на шаблонах. Чтобы создать новый хост (сайт), Вам нужно лишь добавить соответствующую директорию в каталог /home. Править конфигурационные файлы не требуется! По умолчанию уже поддерживаются схемы именования директорий многих популярных хостеров; новые можно без труда добавить.
  • Система управления запуском и завершением всех компонентов Денвера.
  • phpMyAdmin — система управления MySQL через Web-интерфейс.
  • Эмулятор sendmail и SMTP-сервера (отладочная «заглушка» на localhost:25, складывающая приходящие письма в /tmp в формате.eml); поддерживается работа совместно с PHP, Perl, Parser и т. д.

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

Установка сервера

Запускается установка «Денвера» аналогично любой другой программе. В процессе установки Вам будет предложено выбрать путь для установки или букву виртуального диска — всё это важно для специалистов. Вы же можете выбирать все значения настроек «по умолчанию».

На заметку! В Денвере присутствует актуальная возможность установки веб-сервера на флеш-накопитель. Это удобно для менеджеров дизайн-студий, которые могут брать на флешке лучшие работы студии для их демонстрации своим клиентам.

После окончания установки, на рабочем столе появится три ярлыка:

  1. «Run» — используется для запуска веб-сервера. В панели задач появится соответствующая узнаваемая иконка сервера Apache.
  2. «Stop» — остановка веб-сервера.
  3. «Restart» — рестарт сервера совмещает в себе выполнение двух последовательных операций: «Stop» и «Run». Рестарт сервера необходимо делать после внесения любых изменений в конфигурационных файлах, например, php.ini или vhosts.conf

Запустите сервер (выбрав ярлык «Run») и убедитесь, что всё работает. Для этого в браузере наберите localhost или адрес 127.0.0.1 , должна открыться страница приветствия от «Denwer». Если всё в порядке, то самое время запустить свой локальный сайт.

На заметку! На странице приветствия описаны все основные возможности сервера Денвер и приведены ссылки для проверки работы таких программ как phpMyAdmin, Perl, sendmail и т. п. Вы всегда можете зайти на стартовую страницу и найти интересующую информацию по работе сервера. Главное, не забудьте предварительно запустить сам веб-сервер.

Запуск сайта на сервере «Denwer»

После того, как работы по установке и запуску сервера закончены, самое время разместить сайт и проверить его работоспособность. Рассмотрим процесс запуска сайта на примере бесплатной CMS «Joomla».

Выполните следующие действия:

  1. Скачайте архив готового «движка» сайта;
  2. Зайдите в директорию /home веб-сервера и создайте в ней вложенную директорию, например, vashmaster.loc;
  3. В директории vashmaster.loc создайте директорию www , т.е. путь к директории www будет таким /home/vashmaster.loc/www;
  4. В директорию www распакуйте архив «движка» с установочными скриптами php;
  5. Запустите веб-сервер с помощью ярлыка «Run». Если же сервер уже был запущен, то обязательно сделайте рестарт, чтобы добавление нового сайта под названием vashmaster.loc вступило в силу;
  6. В программе «phpMyAdmin» создайте базу данных (например, dbvashmaster ), которая будет использоваться Вашим сайтом. Если потребуется логин и пароль для подключения к базе данных, то следует использовать логин «root» и пустой пароль (значения доступа к базе данных по умолчанию, после установки пакета «Денвер»). Практически всем современным сайтам для работы необходима база данных. При желании, Вы можете установить другой пароль к базе данных . На этом подготовка к установке CMS закончена — архив распакован, пустая база данных создана;
  7. Запустите процесс инсталляция сайта. У CMS «Joomla» может быть, например, вот такой адрес для установки vashmaster.loc/installation/ ;
  8. В процессе установки Вас попросят указать название базы данных, логин и пароль доступа к базе данных, а так же задать логин и пароль доступа в интерфейс администрирования будущего сайта;
  9. После окончания установки сайта, можете зайти на него, по адресу vashmaster.loc ;
  10. Вот и всё. Балуйтесь!

На заметку! Некоторым сайтам, например, демо-версиям на CMS «Битрикс», «Shop-Script» для запуска необходимо предварительно скачать и установить «Zend Optimizer» .

В примере с настройкой собственного локального сайта, мы не случайно указали в качестве домена хитрое расширение .loc (а не .ru или .net ). По специфике нашей работы , часто приходится делать копии существующих в Интернете сайтов и локально их отлаживать и дорабатывать. Использование разных доменных имён позволяет нам заходить на сайты и проверять их работоспособность при запущенном сервере «Денвера». Иначе, мы бы видели результат работы только одноимённого локального сайта! И приходилось бы постоянно отключать веб-сервер, чтобы оценить работу сайта, размещённого в Интернете.

Популярные аналоги

Денвер одна из самых известных и удобных установочных программ для Windows в среде разработчиков сайтов, но не единственная в своём роде.

Аналоги веб-сервера Денвер:

  • XAMPP — кроссплатформенная сборка веб-сервера, содержащая Apache, MySQL, интерпретатор скриптов PHP, язык программирования Perl и большое количество дополнительных библиотек, позволяющих запустить полноценный веб-сервер. Существуют готовые сборки XAMPP для всех популярных операционных систем.
  • — высокопрофессиональный и простой в установке набор, состоящий из Apache, PHP, MySQL, SQLite (встраиваемый движок баз данных), SQLiteManager (многоязычная веб-утилита для управления БД SQLite), PhpMyAdmin и Zend Optimizer (который увеличивает производительность запущенных процессов на 40%) для платформы Windows.
  • EasyPHP — очередной установочный набор, состоящий из Apache, PHP, MySQL для платформы Windows и возможностью установки на флеш-накопитель.
  • AppServ — готовая сборка программ Apache, PHP, MySQL, phpMyAdmin для платформы Windows.
  • MoWeS — бесплатное приложение, позволяющее быстро установить и настроить пакет программ WAMP (Windows, Apache, MySQL and PHP) под Windows. Пакет включает такие «движки» как TYPO3, MediaWiki, Wordpress, Joomla и др. Кроме бесплатного решение, есть и более продвинутые платные расширения сборки MoWeS, которые позволяют создавать демо-сайты на CD и флеш накопителях.
  • WampServer — готовый бесплатный пакет программ WAMP под Windows для веб-разработчиков. WampServer включает всё самое необходимое.

На заметку! Отдельное внимание следует уделить сборкам, которые можно установить на USB-флеш . Такой возможностью обладают не многие программы. Денвер и EasyPHP одни из лучших сборок, поддерживающих возможность установки на флешку. Также не стоит забывать и про MoWeS .

Отдельное слово стоит сказать про бесплатный сервер приложений TopServer , который мог стать лучшим заменителем Денвера. Не знаем, что произошло с проектом TopServer, но, к сожалению, поддержка данного сервера приложений была прекращена. На сайте проекта сейчас размещена доска объявлений. В интернете, конечно, остались дистрибьютивы приложения TopServer, но будет ли осуществляться их поддержка — не известно.

Вот в принципе мы рассказали Вам, что такое пакет «Denwer», где его скачать и как установить. Перечислили наиболее популярные аналоги, которые можно скачать абсолютно бесплатно. Пользуйтесь на здоровье.

Каждый разработчик сайтов обязан знать, что такое «Денвер»!


У меня (как и у многих web-разработчиков) имеется с десяток сайтов которые необходимо где-то размещать (хостить).

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

В то-же время в наличии имеется:

  • Домашний сервер на Ubuntu
  • Быстрый ethernet-интернет от МТС
Но не имеется ключевого - статического IP. Если бы он был, то все было-бы намного проще и данную статью я бы точно не писал. А выдавать статический IP мой МТС абсолютно не желает (если только я не подключусь как бизнес-клиент).

Разумеется есть всем известные Dynamic DNS сервисы вроде noip.com , но они успешно решают лишь задачу удаленного доступа к нашему серверу (по SSH или FTP), но для хостинга совершенно нам не подходят, поскольку в настройках домена на DNS-сервере нам нужно обязательно прописать A-запись с реальным IP-адресом (а не ссылку на наш виртуальный домен).

Что делать?

Я не буду останавливаться на том, как настроить linux сервер (и тем более как его выбрать), поскольку предполагаю, что он у вас уже есть. Также я не буду подробно расписывать настройки nginx и Apache, поскольку опять-таки предполагаю, что вы с этим справитесь самостоятельно.

Первое с чем у меня возникли проблемы - это как перенаправить посетителей с моих доменов (у меня есть 2 домена) на мой домашний сервер. То есть чтобы клиент который набрал domain.com попал ровно на мой домашний сервер с учетом того, что на нем каждый день меняется IP-адрес.

Для решения нам нужно настроить DNS-сервер, а именно следующие записи: SOA, NS, MX, A, CNAME. Важно чтобы мы имели возможность настройкой TTL (time to live), поскольку время жизни наших записей должно быть очень небольшим, буквально 60-120 секунд. В противном случае при смене IP-адреса сервера пользователи долго не смогут попасть на наш сервер (из-за кеширования).

Итак, нам нужен DNS сервер, варианты решения:

Рассмотрим оба варианта.

Используем сервисы которые предоставляют нам DNS-хостинг

Для этого есть ряд бесплатных сервисов, из которых самым популярным является freedns.afraid.org . На таких сервисах можно добавить свой домен(ы) и получить возможность через API обновлять у них A-запись при помощи небольшого скрипта.

Выглядит вполне неплохо, но подвох в том, что эти сервисы оставляют за собой право довешивать к вашему домену поддомены третьего уровня. То есть вы зарегистрировали у них user.ru, а они спокойно довешают свои сайты вида hello.user.ru, shop.user.ru и так далее. Разумеется от этого можно отказаться, но… за деньги. Платить деньги за такие сервисы смысла я не вижу, поскольку за сравнимые деньги вы можете купить полноценный хостинг на каком-нибудь провайдере без всяких плясок вокруг DNS настроек.

Остальные сервисы рассматривать не будем, а сосредоточимся на втором варианте.

Используем собственный DNS-сервер в связке с DDNS-доменом

Для этого варианта у нас, во-первых, должен быть DDNS-домен (который обновляется при смене IP), например, domain.ddns.net, а во-вторых, придется установить и настроить BIND на нашем сервере.

Всего необходимо сделать ровно 5 шагов. Везде под словами «domain» или «domain.ru» подразумевается ваше имя домена (короткое или полное).

1. Настроить 2 или 3 DDNS-поддомена
Почему 2 или 3? Потому, что ряд регистрантов не разрешит вам использовать домен только с одним NS-сервером. Самое обидно, что не все про это скажут - ваш домен просто не будет работать, но вы не будете понимать почему.

Тут все просто - идем на noip.com , там регистрируем аккаунт и добавляем 3 бесплатных поддомена (больше 3 не даст).

2. Настраиваем собственный DNS-сервер
Устанавливаем BIND:

$ sudo apt-get install bind9
Создаем зоны (по одной зоне на каждый наш домен):

$ sudo nano /etc/bind/zones.my
с содержимым:

Zone "domain.ru" { type master; file "/etc/bind/db.domain.ru"; };
и собственно файл с настройками зоны:

$ nano /etc/bind/db.domain.ru
и пишем внутри:

; ; BIND data file for local loopback interface ; $TTL 60 @ IN SOA domain.ru. admin.domain.ru. (1477015437 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 1800) ; Negative Cache TTL @ IN NS domain.ddns.net. @ IN NS domain.ddnsking.com. @ IN NS domain.myftp.biz. @ IN MX 10 mx.yandex.net. @ IN A 1.2.3.4 mail IN CNAME domain.mail.yandex.net. * IN CNAME domain.ru.
Примечание: обращаю внимание, что TTL устанавливаем равным 60 секунд. В файле /etc/bind/named.conf.local добавляем подключение нашей зоны:

Include "/etc/bind/zones.my";
Все, рестартуем BIND:

$ sudo service bind9 restart
И глянем /var/log/syslog чтобы там не было сообщений об ошибках

3. Настроить наш домен(ы)
Идем в панель управления регистратора и там в настройках нашего домена в качестве NS-серверов указываем созданные DDNS-поддомены:

Nameserver1 = domain.ddns.net nameserver2 = domain.ddnsking.com nameserver3 = domain.myftp.biz
После этого возможно придется подождать несколько часов (или даже сутки) пока настройки среплицируются между всеми серверами.

4. Настроить периодическое обновление IP-адресов
Мой роутер поддерживает обновление IP-адреса на одном домене, но мне нужно это делать сразу для 3-х доменов. Плюс нам надо обновлять IP-адрес в конфиге BIND"а, поэтому напишем скрипт который будет делать:
  1. Определять наш внешний IP-адрес
  2. Проверять изменился ли IP адрес, если не изменился, то ничего делать не надо
  3. Обновлять IP-адрес у всех DDNS-поддоменов через API сервиса noip.com
  4. Прописывать новый IP адрес в конфиг BIND"а
  5. Перезапускать BIND
Сам скрипт пусть будет на шелле:

#!/bin/sh # This script works via noip.com service + local Bind server # Settings ZONES_CONFIG=zones.my IP_FILE=./current_ip.txt DDNS_USER=user DDNS_PASS=password DDNS_HOST=domain.ddns.net DDNS_HOSTS=domain.ddns.net,domain.ddnsking.com,domain.myftp.biz # Start DATE=$(date +"%Y-%m-%d %H:%M:%S") # detect an external IP IP=$(dig +short $DDNS_HOST) if [ $? -ne 0 ] || [ -z $IP ] || [ $IP = "0.0.0.0" ] ; then echo "$DATE Can"t detect a remote IP. Aborting." exit 1 fi # verify IP changing PREV_IP="(unknown)" if [ -e $IP_FILE ] ; then PREV_IP=$(cat $IP_FILE) fi if [ $IP = $PREV_IP ] ; then echo "$DATE IP "$IP" has not changed" else echo "$DATE IP has been changed from "$PREV_IP" to "$IP"" echo "$DATE IP will be updated on DDNS server" /usr/bin/curl -u $DDNS_USER:$DDNS_PASS "https://dynupdate.no-ip.com/nic/update?hostname=$DDNS_HOSTS&myip=$IP" fi echo $IP > $IP_FILE # check BIND config cd /etc/bind if [ ! -e $ZONES_CONFIG ] ; then echo "$DATE File $ZONES_CONFIG not found!" exit 1 fi # read the list of active zones ZONE_FILES=$(grep file $ZONES_CONFIG | grep -v ^# | perl -ne "/file "(.+)"/ && print "$1\n"") for ZONE_FILE in $ZONE_FILES; do echo "$DATE Process the zone config $ZONE_FILE" cat $ZONE_FILE | perl -ne "s/([\t ]+IN[\t ]+A[\t ]+)[\d\.]*/\${1}${IP}/; print \${_}" > $ZONE_FILE.tmp if [ $(diff -w $ZONE_FILE $ZONE_FILE.tmp | wc -l) -ne 0 ] ; then # update serial number STAMP=$(date +%s) cat $ZONE_FILE.tmp | perl -ne "s/\d+(?=.+Serial)/$STAMP/; print \${_}" > $ZONE_FILE # reload BIND service bind9 reload echo "$DATE Config $ZONE_FILE is updated" else # nothing to do rm $ZONE_FILE.tmp echo "$DATE Config $ZONE_FILE is NOT changed" fi done
Скрипт нужно запускать под рутом (чтобы ему хватило прав обновлять конфиги BIND"а и рестартовать его). Добавляем в crontab рута его запуск каждую минуту:

* * * * * cd /home/root && ./update_bind_config.sh >> /var/log/update_bind_config.log
Пару слов про определение текущего IP-адреса. В скрипте выше это делается через резолвинг DDNS-поддомена domain.ddns.net. То есть сначала наш роутер его туда прописывает, а потом мы читаем. Это не очень хороший вариант, поскольку мы завязываемся на роутер и можем потерять несколько минут пока на DDNS-поддомене обновится IP-адрес на актуальный. Все это время наш сервер будет недоступен.

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

IP=$(perl -le "use LWP::UserAgent; my $content=LWP::UserAgent->new->get("http://router")->decoded_content(); $content =~ q(([\d\.]+)); print $1")
В данном варианте мы загружаем главную страницу роутера (через http), дальше регэкспом находим на ней текущий IP-адрес. Разумеется, этот вариант подходит далеко не всем, но на DD-WRT прошивках работает.

5. Настройка роутера
Про необходимость настроить обращение к DDNS-сервису я уже писал, но еще не забывайте про необходимость настроить форвардинг портов на вашем роутере:
  • HTTP - TCP, 80-ый порт
  • DNS - TCP+UDP, 53 порт

Вывод

Итак, что я получил в итоге:
  • Мои сайты живут на домашнем сервере, за который я никому не плачу;
  • Мои домены резолвятся через мой собственный DNS-сервер, время жизни записей 1 минута, то есть обновление происходит очень быстро;
  • В качестве NS-записей указаны не реальные IP-адреса (которые у меня часто меняются), а DDNS-поддомены;
  • Актуальность записей в DDNS-поддоменах и в конфиге моего DNS-сервера обеспечивается автоматически, без какого-либо вмешательства со моей стороны.
По моим замерам, когда МТС (мой провайдер) обновляет мне IP-адрес, то мои сайты начинают работать спустя где-то 2 минуты. Это вполне приемлемо для меня.

P.S. Если кому-то понравилась данная заметка, то я могу написать вторую часть, где расскажу как настроить работу с использованием DNS-хостинга Яндекса. Это позволит отказаться от собственного DNS-сервера, отказаться от DDNS-поддоменов, плюс чуть улучшит надежность работы (поскольку DNS-сервер никогда не будет менять свой IP). Именно такую схему я использую в настоящий момент.

Здравствуйте, мои дорогие читатели! Мы с вами много говорили о . Думаю, пришла пора поговорить о том, как создать свой сервер для сайта.

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

Забегая немного наперед, должен предупредить вас, что эта задача не одна из легких.

Что представляет собой домашний сервер?

Локальный сервер – это специализированное программное обеспечение, позволяющее управлять (создавать и размещать) персональными сайтами на домашнем оборудовании (локальном компьютере).

Локальный сервер на дому позволяет получить функционал, аналогичный стандартному онлайн , только абсолютно бесплатно.

Что делать?

Отвечу на вопрос достаточно лаконично: скачать и установить необходимый программный набор компонентов. Но прежде чем это сделать, нужно оценить свои возможности, а точнее возможности вашего ПК. Для этого вам необходимо проверить его характеристики: объем оперативной памяти, показатели процессора и т.д.

Кроме того, вам нужен:

  • Активный статистический IP-адрес (чаще всего эта услуга у провайдеров платная, но, к сожалению, без него никак)
  • Бесперебойная высокая скорость приема данных и их передачи. У вас должен быть проверенный и надежный провайдер с минимально допустимой скоростью в 10 Мбит\сек. Идеальный показатель скорости – 100 Мбит\сек.

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

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

Инструкция

Устанавливаем многопользовательскую операционную систему Unix. К примеру, Apple Mac OS X или Линукс (кстати говоря, в этом вопросе и Виндовс не так уж плох, но я бы настоятельно рекомендовал установить все-таки Unix-систему).

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

Заходим в настройки программы (конфигурация Apache) и прописываем в разделе listen 80: ваш айпи-адресс.

Открываем порт №80 и вуаля — пользуемся сервером дома.

Теперь, прописав в адресной строке ваш IP-адрес, компьютер должен открыть конфигуратор Апаче. Поменять корневую директорию интернет-сайта можно через httpd.conf. Ну а если в планах открыть доступ к серверу не только через IP, но и через , тогда вам потребуется поднять DNS.

Внимание ! Не забудьте о том, что теперь ваш ПК (сервер) нельзя выключать. Если это сделать, ваши сайты в Глобальной сети станут недоступными для пользователей.

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

C уважением! Абдуллин Руслан

Те, кто начинает заниматься сайтами, хоть раз задумывались о запуске сайта на домашнем компьютере. Когда-то и я задумывался над этим, но тогда я наткнулся на форум, где все говорили что этого сделать невозможно в ряду объективных причин. На сегодняшний день таких вопросов у меня не возникает, поскольку хостить сайт на домашнем компьютере не самое лучшее решение, особенно если на этом компьютере мы работаем или играем, слушаем музыку. Для таких вещей необходим полноценный сервер, если мы говорим о каком-то серьезном проекте, но для запуска личного блога или сайта какой-либо организации, вполне хватит простого компьютера с серверной ОСью.

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

Установка необходимого ПО

Настраивать веб-сервер мы будем на Ubuntu Server 16.04 . В рамках этой статьи я не буду рассказывать об установке данной системы, подразумевается что у вас уже есть сервер с установленной операционной системой Ubuntu Server. В моем случае это .

Первым делом нам потребуется установить немного приложений, которые потребуются нам для работы веб-сервера и его администрирования. Выполним следующую команду:

sudo apt install nginx phpmyadmin mysql-server php-fpm php-mysql

В какой-то момент нам потребуется указать пароль root для MySQL:

Затем снова повторим ввод пароля:

Тут мы ничего не отмечаем, просто жмем Enter.

После мы увидим приглашение к настройке базы данных для PhpMyAdmin, жмем Enter.

Тут вводим пароль и жмем Enter.

Повторяем пароль и жмем Enter.

На этом установка необходимого ПО завершена. Введя в адресной строке IP-адрес нашего сервера или его имя (у меня это http://192.168.0.37 или http://server) увидим заветное nginxовское:

Настраиваем веб-сервер

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

Настройка доступа к сайту из вне

Для доступа к сайту из вне потребуется домен второго (site.ru) или третьего (subd.site.ru) уровня и dns-хостинг. Домен можно зарегистрировать платно или бесплатно в зоне.tk, .ml и т.д. Но прежде необходимо определиться с тем, хотите ли вы подключать выделенный IP. К примеру у меня нет возможности получить доступ к роутеру пока не будет подключен выделенный IP. Но когда у меня был интернет от Ростелеком, то там можно было настроить доступ из вне даже с динамичным IP.

В случае с динамичным IP у вас нет выбора с DNS-хостингом, дорога вам только на https://freedns.afraid.org , а если и домен хочется на халяву, то вам на https://my.freenom.com, там будет куча халявных доменных зон на выбор. Не спешите радоваться, халявный домен дается всего на год, потом придется заплатить за то, чтобы продолжить им пользоваться.

Для тех, кто обладает выделенным IP выбор будет пошире. Можно воспользоваться приведенным выше, а можно воспользоваться сервисом Яндекса или Mail.ru . Как бонус получите почту типа Там же сможете в записи A указать свой IP. Через некоторое время домен начнет указывать на ваш роутер, останется только настроить сам роутер.

Почему нет подробной инструкции? Потому что это тема для нескольких отдельных статей, в рамках этой же статьи я хочу рассказать о другом.

Настройка MySQL

Первым делом включаем модуль PHP для работы phpMyAdmin.

sudo phpenmod mcrypt

Теперь нам потребуется настроить MySQL, для этого выполним вот такую команду:

sudo mysql_secure_installation

Программа запросит пароль, который мы указывали для пользователя root для MySQL. После этого программа спросит нас хотим ли мы включить плагин для валидации паролей. Этот плагин по сути будет сильно ругаться, если при создании баз данных вы или кто-то другой укажет слабый пароль, плагин будет выдавать ошибку и требовать усложнения пароля. Я однажды пробовал с ним работать, меня он бесит. По-этому я его не включаю.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Для включения указываем y или любую другую букву для отключения.

Using existing password for root.
Change the password for root ?

ставим «n». Не будем менять пароль. На все остальные вопросы ставим «y».

Настройка обработчика PHP

Теперь приступим к настройке PHP, для этого откроем файл php.inmi простой командой, но прежде сделаем копию конфига:

sudo cp /etc/php/7.0/fpm/php.ini /etc/php/7.0/fpm/php.ini.back

После чего откроем файл:

sudo nano /etc/php/7.0/fpm/php.ini

Найдем строку «;cgi.fix_pathinfo=1». Сотрем «;» и вместо значения 1 поставим значение 0. Этим самым, по сути, мы устраним уязвимость связанную с выполнением первого попавшегося файла PHP если запрашиваемый файл не был найден.

Поскольку я люблю порядок и простоту, то файлы сайта люблю хранить в домашнем каталоге пользователя. Но поскольку веб-сервер работает от пользователя www-data, то у нас могут возникнуть проблемы в работе сайта, да к тому же это не совсем безопасно. Для этих целей можно даже создать отдельного пользователя и использовать его каталог как корневую папку сайта.

Для того, чтобы файлы сайта запускались из под конкретного пользователя, нам необходимо создать файл для обработчика PHP. Для этого скопируем имеющийся файл, выполнив следующую команду:

sudo cp /etc/php/7.0/fpm/pool.d/www.conf /etc/php/7.0/fpm/pool.d/server.conf

Вместо «server» подставляем свое название. Затем открываем скопированный файл:

sudo nano /etc/php/7.0/fpm/pool.d/server.conf

И редактируем под себя. У меня получился вот такой конфиг:

user = dendi
group = dendi

listen = /run/php/php7.0-dendi.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660

chdir = /home/dendi/www

pm.max_children = 10
pm.start_servers = 3
pm.min_spare_servers = 3
pm.max_spare_servers = 6

php_admin_value = /tmp
php_admin_value = «/home/dendi/www/»
php_admin_value = 100M
php_admin_value = 0

Для быстрого удаления ненужных строк в редакторе nano есть сочетание клавиш Ctrl+K, с его помощью можно быстро удалять ненужную информацию целыми строками.

Вместо естественно подставляем свое имя сервера, вместо dendi свое имя пользователя. Обратите внимание что необходимо изменить и значение параметра listen, поскольку это значение определяет имя файла сокета, которое должно быть уникальным. У параметра chdir также необходимо изменить значение на свое, в качестве значения указан путь до папки с файлам сайта.

Перезапускаем обработчик PHP выполнив команду:

sudo systemctl restart php7.0-fpm

Настраиваем Nginx

Теперь можно приступить к настройке Nginx. Давайте для начала настроим доступ к phpMyAdmin. Я выбираю не самый простой способ, но он почему-то нравится мне больше чем простое создание симлинка. Откроем конфиг дефолтного хоста и хорошенько над ним поработаем, для этого выполним команду:

sudo nano /etc/nginx/sites-available/default

Давайте для удобства почистим его от комментариев, оставим только нужные строки, к которым добавим следующее:

location ^~ /phpmyadmin/ {
root /usr/share;
index index.php;


include fastcgi_params;

}
}

В итоге мы получим вот такой конфиг:

server {
listen 80 default_server;
listen [::]:80 default_server;

root /var/www/html;

index index.html index.htm index.nginx-debian.html;

location / {
try_files $uri $uri/ =404;
}
location ^~ /phpmyadmin/ {
root /usr/share;
index index.php;
location ~ /phpmyadmin(/.*\.php) {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /usr/share$fastcgi_script_name;
}
}
}

Сохраняем и перезапускаем сервер командой:

Пробуем открыть phpMyAdmin, у меня, к примеру, адрес получился такой http://server/phpmyadmin. В итоге увидим форму авторизации:

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

Создаем сайт

Создаем для сайта папку:

mkdir www

Затем создаем файл index.php

nano www/index.php

и добавляем туда вот такой код:

phpinfo();

Сохраняем.

Первый файл нашего сайта готов, теперь надо создать файл хоста.

Откроем файл, выполнив следующую команду:

sudo nano /etc/nginx/sites-available/example

Вместо example указываем свое название. Вставляем в файл следующий код:

server {
listen 80;
listen [::]:80;
root /home/dendi/web/www;
index index.php index.html index.htm;
server_name site.local;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location = /favicon.ico { log_not_found off; access_log off; }
location = /robots.txt { log_not_found off; access_log off; allow all; }
location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
expires max;
log_not_found off;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-dendi.sock;
}
}

Обратите внимание на значение параметра fastcgi_pass, там мы указываем файл сокета, который создавали в настройках обработчика PHP. Само собой это значение надо поменять на свое. Так же необходимо заменить значение параметра server_name на свое, тут мы указываем адрес нашего сайта(домена). Все сделали? Сохраняем и закрываем.

Выполняем команду, которая создаст симлинк на наш хост и тем самым активирует его:

sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/

Перезапускаем Nginx^

sudo /etc/init.d/nginx restart

Теперь попробуем открыть наш сайт, в моем случае он находится по адресу http://index.local, мы должны увидеть вот такую страницу:

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

Обратите внимание на то, что предварительно вам необходимо направить домен на наш сервер. Для этого необходимо прописать его в файле hosts операционной системы, либо в специальном разделе роутера. Я, например, создал на роутере правило чтобы все домены.local направлялись на мой сервер. Для этого надо в качестве домена указать *.local