Настройка выделенного сервера для работы сайта под управлением HostCMS / Habr
В «жизни» практически любого веб-проекта – будь то небольшой интернет-магазин или сайт набирающего популярность бара – рано или поздно случается момент, когда не хватает ни возможностей и ресурсов shared-хостинга, ни средств для тотальной реорганизации архитектуры приложения. Несколько лет назад, когда я ещё работал в небольшой веб-студии, мне частенько приходилось наблюдать такую картину. Практически во всех подобных случаях принималось одно и то же решение – аренда выделенного сервера и перенос на него проекта в том виде, в котором он есть. В то время в сети было доступно немало статей по настройке серверов с Linux на борту. Причём практически все они были не самого лучшего качества и зачастую содержали настолько вредные советы, что господин Остер мог бы стоя аплодировать авторам тех материалов.«Всё это дела давно минувших дней» – так я думал ещё совсем недавно, пока ко мне не обратился мой давний приятель за помощью в решении аналогичной проблемы. Как оказалось, ситуация с тех пор сильно не изменилась: нужный раздел документации практически не обновился, сами разработчики в основном советуют воспользоваться shared-хостингом от своих партнёров, а толкового материала, учитывающего нюансы миграции на выделенный сервер проекта на HostCMS, так и не нашлось. Мне нравится сама CMS, поэтому я решил исправить это упущение. Если интересно – добро пожаловать под кат.
Прежде всего оговорюсь. В этой статье я не буду рассматривать вопросы выбора хостинг-провайдера – с этим, я думаю, вы справитесь сами. В качестве серверной ОС выбрана Ubuntu Server 14.04 как одна из наиболее дружелюбных к пользователю. Я предполагаю, что вы обладаете минимальным набором знаний для работы в Linux. К сожалению, здесь вы не найдете тонкой настройки PAM модуля для установки пользовательских лимитов на обращение к файлам и т.п. – если вы ищите такой материал, то скорее всего эта статья будет для вас скучна.
Первые шаги
Итак, у нас есть выделенный сервер и данные для доступа к нему по ssh. Правило первое, оно же главное, старайтесь избегать постоянной работы от имени привилегированного пользователя. Во время первого же сеанса создайте собственную учетную запись и установите для нее пароль. Например, так:
useradd user_name -s /bin/bash -U -m -G sudo
passwd user_name
Дальнейшую работу будем проводить уже от имени только что созданного пользователя.
Установка необходимого ПО
nginx
В качестве HTTP-сервера будет использоваться
# иногда происходит неведомая фигня с добавлением ключей непосредственно из STDOUT
# поэтому сначала ключ сохраняем в файл и только потом добавляем
wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
rm nginx_signing.key
И обновить список источников пакетов, добавив в файл /etc/apt/sources.list строки:
# 12.04 = precise # 14.04 = trusty deb http://nginx.org/packages/ubuntu/ trusty nginx deb-src http://nginx.org/packages/ubuntu/ trusty nginx
После этого обновляемся и устанавливаем nginx:
sudo aptitude update && sudo aptitude upgrade -y
sudo aptitude install nginx
Чтобы задать лимиты на количество открываемых пользователем http-сервера файлов, нужно добавить в /etc/security/limits.conf строки:
nginx hard nofile 32768
nginx soft nofile 32768
Точные цифры следует подбирать, исходя из конфигурации вашего сервера. Активируется модуль лимитов добавлением следующей строки в /etc/pam.d/common-session:
session required pam_limits.so
Проверить, что лимиты установились можно следующей командой:
sudo su nginx --shell /bin/bash --command "ulimit -a"
PHP
HostCMS требует, чтобы были включены следующие модули php: curl, gd, xslt и, естественно, mysql. Кроме того, обратите внимание, что теперь пакет php5-json не является виртуальным и его нужно устанавливать отдельно. Помимо прочего подключим модуль кеширования опкода xcache. В качестве SAPI (режим запуска интерпретатора) будем использовать PHP-FPM, однако, чтобы иметь возможность выполлять некоторые скрипты по расписанию будет установлен еще и PHP-CLI.
sudo aptitude install php5-common php5-fpm php5-cli php5-curl php5-gd php5-mysql php5-xsl php5-json php5-xcache
MySQL
Установка MySQL довольная проста. Несколько раз установщик запросит у вас пароль для root’а сервера баз данных, можете смело оставлять его пустым — мы сменим его позже, с помощью утилиты mysql_secure_installation. При ее запуске ответьте, что хотите сменить пароль root’a, удалить тестовую БД и тестовых пользователей и обновить права на таблицы службной БД.
sudo aptitude install mysql-server
sudo mysql_secure_installation
Подробно почитать о настройке mysql-сервера можно здесь. Статья отлично написана, поэтому не вижу смысла дублировать сюда информацию.
Настройка загрузки файлов
В качестве протокола передачи файлов я предлагаю использовать SSH FTP (SFTP). Во-первых, он безопаснее обычного ftp, так как данные будут передаваться в зашифрованном виде. Во-вторых, не придется устанавливать дополнительное ПО: все что нужно — ssh-сервер — у нас уже есть. А минусов практически никаких — все современные IDE и клиенты загрузки данных умеют работать с этим протоколом.
sudo groupadd sftp
И активируем передачу данных, добавив в конец файла /etc/ssh/sshd_config строки:
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
Подготовка файловой системы
Традиционно, файлы, относящиеся к веб-сайтам, размещаются в каталоге
sudo mkdir -p -m 755 /var/www/data
sudo mkdir -m 777 /var/www/tmp
Затем укажем, что при следующей загрузке, в эту папку будет смонтирована tmpfs. Добавим в /etc/fstab:
tmpfs /var/www/tmp/ tmpfs defaults,noatime,nosuid,nodev,noexec,mode=1777,size=128M 0 0
Стоит заметить, что некоторые редакции HostCMS имеют встроенный алгоритм кеширования ответов в файлы. Если вы используете одну из таких редакций имеет смысл примонтировать tmpfs к директории кеша самой CMS.
Настройка виртуальных хостов
Заведение пользователя хоста
По соображениям безопасности все файлы, связанные с нашим сайтом будут принадлежать специально заведенному в системе пользователю. Подключение по sftp и выполнение PHP-скриптов будет происходить от его же имени. Чтобы было проще, его можно назвать по имени своего сайта:
sudo useradd -b /var/www/data -s /usr/lib/sftp-server -m -U -G sftp example.com sudo passwd example.com sudo su example.com --shell /bin/bash --command "mkdir -m 0755 ~/data ~/log && mkdir -m 0777 ~/tmp"
Для корректной работы chroot’а нужно сделать root’a владельцем домашнего каталога этого пользователя:
cd /var/www/data
sudo chown root:root example.com
Заведение пула PHP-FPM
Пул php-fpm будет запускаться от имени пользователя, которого мы создали на предыдущем шаге. Для взаимодействия с фронтн-энд сервером будет использоваться юникс-сокет. Кроме того, можно настроить количество запускаемых процессов для обработки запросов, тип логирования и некоторые другие специфичные для вашего сайта параметры php.
[example.com] user = example.com group = example.com listen = /var/run/php5_example.com.sock listen.backlog = 4096 listen.owner = nginx listen.group = nginx listen.mode = 0660 process.priority = 0 chdir = / pm = dynamic pm.max_children = 64 pm.start_servers = 8 pm.min_spare_servers = 4 pm.max_spare_servers = 16 pm.process_idle_timeout = 60s; pm.max_requests = 256 access.log = /var/www/data/example.com/log/php.access.log access.format = "%R # %{HTTP_HOST}e # %{HTTP_USER_AGENT}e # %t # %m # %r # %Q%q # %s # %f # %{mili}d # %{kilo}M # %{user}C+%{system}C" slowlog = /var/www/data/example.com/log/php.slow.log request_slowlog_timeout = 2s request_terminate_timeout = 300s php_admin_flag[display_errors] = off php_admin_flag[log_errors] = on php_admin_value[error_log] = /var/www/data/example.com/log/php.error.log php_admin_value[memory_limit] = 32M php_admin_value[open_basedir] = /var/www/data/example.com/:. php_admin_value[upload_tmp_dir] = /var/www/data/example.com/tmp php_admin_value[session.save_path] = /var/www/data/example.com/tmp
Создание конфига виртуального хоста
В файле настройки хоста nginx вам нужно будет указать доменное имя сайта, путь для записи логов доступа и адрес юникс-сокета, который слушает php-fpm. Для обработки запросов к несуществующим файлам будем использовать именованный location — таким образом мы будем эмулировать работу mod_rewrite для Apache2. Перед тем, как отдавать на обработку скрипт нашему бэкэнду, проверяем его существование. Это позволить избежать проблемы, описанной здесь. Для того, чтобы снизить нагрузку на сайт от незарегистрированных пользователей, будем использовать кеширование на стороне nginx. Для этого создадим конфигурационный файл
fastcgi_cache_path /var/www/tmp/cache levels=1:2 keys_zone=cache:32m max_size=128m;
fastcgi_temp_path /var/www/tmp/proxy 1 2;
fastcgi_ignore_headers Expires Cache-Control;
fastcgi_cache_lock on;
fastcgi_cache_lock_timeout 60s;
fastcgi_cache_use_stale error timeout updating invalid_header;
fastcgi_cache_bypass $cookie_PHPSESSID;
fastcgi_no_cache $cookie_PHPSESSID;
fastcgi_cache_key $scheme$host$request_uri;
А затем подключим его в конфиге виртуального хоста.Пример конфига хоста nginx
server {
listen 80;
server_name example.com www.example.com;
access_log /var/www/data/example.com/log/nginx.access.log main;
error_log /var/www/data/example.com/log/nginx.error.log;
root /var/www/data/example.com/data;
error_page 404 /404/;
location / {
index index.html index.php;
try_files $uri $uri/ @hostcms;
}
# php скрипты отдаем в php-fpm, предварительно проверяя их существование
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5_example.com.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include /etc/nginx/conf.d/cache;
}
# все запросы, для которых не нашлось файлов, переадресуются на index.php
location @hostcms {
fastcgi_pass unix:/var/run/php5_example.com.sock;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
include fastcgi_params;
include /etc/nginx/conf.d/cache;
}
Создание базы данных сайта
Сейчас почти всё готово, осталось только развернуть базу данных и создать пользователя, от имени которого будет осуществляться к ней подключение. Для этого нужно в консоли mysql выполнить несколько простых команд:
CREATE USER 'example_com'@'localhost' IDENTIFIED BY 'ВашСуперСтойкийПароль';
GRANT USAGE ON * . * TO 'example_com'@'localhost' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREATE DATABASE IF NOT EXISTS example_com_db DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
GRANT ALL PRIVILEGES ON example_com_db . * TO 'example_com'@'%';
Обратите внимание, что подключение к базе от имени этого пользователя разрешается с любого адреса.
Если у вас имеется дамп использовавшейся ранее базы, то развернуть его можно следующим набором команд все в той же консоли mysql:
use example_com_db;
source ПутьДоДампаБазыДанных;
Настройка резервного копирования и ротации логов
Если вы всё сделали правильно, то у вас уже должно быть полностью настроенное окружение для запуска вашего проекта. Остаются два последних по списку, но не по значимости, шага — настройка резервного копирования и ротации логов. В качестве инструмента для создания бэкапов я рекомендую использовать backup-manager. На хабре есть отличная статья про него, поэтому подробно останавливаться на нём не будем.
Для осуществления ротации логов нам нужно всего лишь создать правильный конфиг для утилиты logrotate.
/var/www/data/example.com/log/nginx*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 640 root root
sharedscripts
postrotate
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
endscript
}
/var/www/data/example.com/log/php*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 640 root root
postrotate
invoke-rc.d php5-fpm reopen-logs > /dev/null
endscript
}
Вместо заключения
Пожалуй, это всё, что я хотел сказать.
Возможно, кто-то сочтёт статью не слишком актуальной ввиду засилия панелей управления хостингом. Хотя, на мой взгляд, они хороши для массового предоставления услуг и совершенно не годятся, когда речь заходит о затачивании настроек сервера под конкретный проект.
Другие посчитают её немного сумбурной. Не исключено, что это и так: в статье я только попытался отразить свой путанный опыт в области серверного администрирования.
В любом случае, буду рад, если этот материал поможет кому-то. Замечания и дополнения приветствуются.
habr.com
Как создать свой первый безопасный веб-сервер, готовый к продуктиву
В этом руководстве мы рассмотрим некоторые из лучших методик создания своего первого безопасного сервера. Мы пошагово разберём весь процесс, и в результате получим сервер, полностью готовый к использованию в продуктиве для вашего приложения. Конечно, это не исчерпывающее руководство. Безопасный сервер — это постоянный поиск новых ресурсов и бесконечные улучшения. Но с этим материалом вы можете начать создавать собственную инфраструктуру.Для прогона тестов мы будем использовать Amazon EC2, но можно взять и Amazon LightSail, Digital Ocean, Vultr или другой сервис. Все они конфигурируются одинаково, так что выбирайте тот, который вам по душе.
Создаём публичный и приватный SSH-ключи
Сначала создадим пару ключей, которые понадобятся некоторым хостам при установке сервера. Этот и некоторые другие шаги можно пропустить, если вы решите создать свою пару ключей при запуске сервера на Amazon.
SSH-ключи мы будем создавать с помощью ssh-keygen.
$ ssh-keygen -t rsa -b 4096
В результате получим два файла: id_rsa и id_rsa.pub (приватный и публичный ключи). Никогда и никому не передавайте свой приватный ключ.
Подробную инструкцию по созданию ключей вы найдёте здесь.
Импорт публичного ключа в Amazon
Импортируем только что созданный публичный ключ в платформу Amazon.
- Заходим в консоль управления Amazon.
- Кликаем AWS services → Compute > EC2
- Кликаем на левое меню Network & Security → Key Pairs
- Кликаем «Import Key Pair» и загружаем публичный ключ (id_rsa.pub)
Создаём свою виртуальную машину
Установим в Amazon EC2 виртуальную машину под управлением Ubuntu. Настройка подробно описана здесь:
- Заходим в консоль управления Amazon.
- Кликаем AWS services → Compute → EC2
- Выбираем запускаемый экземпляр.
- Выбираем один из образов. В нашем случае это будет Ubuntu Server 16.04 LTS (HVM), с SSD-накопителем (но вы можете выбрать то, что вам больше подходит).
- Выбираем виртуальную машину (в соответствии с вашими нуждами). Кликаем «Review» и «Launch».
- Открываем новую вкладку и импортируем в Amazon созданный публичный ключ.
- Здесь нас попросят «выбрать существующую пару ключей или создать новую» («Select an existing key pair or create a new key pair»). Жмём «выбрать существующую» («Choose an existing key pair»). Выбираем ранее загруженный ключ.
- Кликаем «Launch Instances».
- Кликаем на ссылку виртуальной машины, которую мы только что создали.
Внимание: некоторые следующие шаги могут быть сконфигурированы на начальном экране Amazon. Но раз уж это общее руководство, которое можно использовать и для других сервисов, будем говорить о конфигурациях по умолчанию.
Подключаемся к новому серверу
Обращаемся к виртуальной машине по SSH.
Пишем в терминале:
$ ssh <USЕR>@<IP-ADDRЕSS> -p 22 -i <PATH-TO-PRIVАTЕ-KEY>
<USЕR>
: пользователь Linux-системы. В случае с Amazon используйте ubuntu, на других сервисах — root<IP-ADDRЕSS>
: IP-адрес созданной нами виртуальной машины. Это поле «Public DNS (IPv4)» во вкладке «Description» нашего сервера.<PATH-TO-PRIVATЕ-KEY>
: полный путь к сгенерированному ранее приватному ключу (например, /Users/flavio/.ssh/id_rsa).-i <PATH-TO-PRIVATЕ-KEY>
: это можно пропустить, если вы добавили ключ в свой SSH-агент.
Даём доступ новому пользователю
Создадим новый аккаунт пользователя по имени “wizard”:
$ sudo adduser wizard
Дадим “wizard” разрешение выполнять sudo. Откроем файл:
$ sudo nano /etc/sudoers.d/wizard
И зададим содержимое:
wizard ALL=(ALL) NOPASSWD:ALL
Создадим директории:
$ mkdir /home/wizard/.ssh
# create authorized_keys file and copy your public key here
$ nano /home/wizard/.ssh/authorized_keys
$ chown wizard /home/wizard/.ssh
$ chown wizard /home/wizard/.ssh/authorized_keys
Скопируем публичный ключ (PATH-TO-PUBLIC-KEY) и вставим в удалённый экземпляр /home/wizard/.ssh/authorized_keys. Настроим разрешения:
$ chmod 700 /home/wizard/.ssh
$ chmod 600 /home/wizard/.ssh/authorized_keys
Обеспечиваем безопасность
Обновляем все установленные пакеты.
$ sudo apt-get update
$ sudo apt-get upgrade
Меняем SSH-порт с 22 на 2201. Для конфигурирования файрвола (ufw, Uncomplicated Firewall, незатейливый файрвол) открываем файл /etc/ssh/sshd_config:
$ sudo nano /etc/ssh/sshd_config
и меняем эти данные:
Port 2201
PermitRootLogin no
PasswordAuthentication no
# add this to avoid problem with multiple sshd processes
ClientAliveInterval 600
ClientAliveCountMax 3
Перезапускаем SSH-сервис:
$ sudo service ssh restart
Конфигурируем Uncomplicated Firewall (UFW) так, чтобы пропускались только входящие подключения SSH (порт 2201), HTTP (порт 80) и NTP (порт 123).
# close all incoming ports
$ sudo ufw default deny incoming
# open all outgoing ports
$ sudo ufw default allow outgoing
# open ssh port
$ sudo ufw allow 2201/tcp
# open http port
$ sudo ufw allow 80/tcp
# open ntp port : to sync the clock of your machine
$ sudo ufw allow 123/udp
# turn on firewall
$ sudo ufw enable
Конфигурируем серверные часы
Устанавливаем в качестве локального часового пояса UTC:
$ sudo dpkg-reconfigure tzdata
Выбираем опцию ‘None of the Above’ и снова UTC.
Отключаемся и добавляем наш ключ в SSH-агент
Для отключения вводим:
$ exit
а потом добавляем ключ.
Добавляем в Amazon разрешения по порту
Это необходимо сделать в Amazon. Зададим SSH-порт, который будем использовать также на Amazon.
- Заходим в консоль управления Amazon.
- Кликаем AWS services > Compute > EC2
- Кликаем на левое меню Network & Security → Security Groups
- Выбираем группу безопасности, относящуюся к нашей виртуальной машине.
- Кликаем Action > Edit Inbound Rules
- Кликаем «добавить правило» («Add Rule») и задаём: Type: Custom TCP, Port Range: 2201, Source: 0.0.0.0/0 и Description: SSH
Подключаемся с новыми данными
Теперь вы можете подключиться к серверу по новому порту как новый пользователь:
$ ssh wizard@<IP-ADDRESS> -p 2201 -i <PATH-TO-PRIVATE-KEY>
Теперь у вас есть сервер, готовый обслуживать ваше приложение.
habr.com
Локальный веб-сервер | htmlbook.ru
Современный сайт представляет собой не просто набор HTML-документов, но и включает в себя множество технологий, в том числе серверных, таких как: SSI (Server-Side Includes, включения на стороне сервера), PHP (PHP: Hypertext Preprocessor, PHP: препроцессор гипертекста), базы данных и многое другое. Для ознакомления и изучения этих технологий ошибкой будет использовать посещаемый рабочий сайт в Интернете, поэтому имеет смысл установить необходимый комплект программ на локальный компьютер и тестировать все на нем.
Наиболее популярной связкой таких программ является веб-сервер Apache, язык программирования PHP, система управления базами данных MySQL, оболочка для администрирования баз данных PhpMyAdmin, шаблонизатор Smarty.
Указанные программы работают преимущественно под управлением Linux подобных систем, но имеются и версии под Windows. Основной плюс этой связки программ в универсальности. Сайт, созданный и проверенный на локальном компьютере под Windows, легко может быть перенесен на сервер с FreeBSD. К тому же этот набор поддерживает подавляющее большинство хостеров.
В дальнейшем будут рассмотрены программы для домашнего компьютера с операционной системой Windows.
Кратко опишем, что представляют собой технологии, которые будут использоваться для создания сайта.
Веб-сервер
Веб-сервером называется программа, которая анализирует приходящие запросы и формирует готовые документы отправляемые пользователю. В качестве веб-сервера часто выступает Apache, как наиболее устоявшийся и популярный в Интернете. По разным оценкам его доля составляет почти 50% от общего числа используемых веб-серверов.
http://www.apache.org
PHP
Популярный язык программирования, используемый при разработке сайта.
http://www.php.net
MySQL
Система управления базами данных.
http://www.mysql.com
PhpMyAdmin
Веб-интерфейс для создания и управления базами данных MySQL. Позволяет просматривать таблицы, изменять их содержание, модифицировать структуру, делать выборку данных, сортировать информацию. Все действия осуществляются прямо в браузере, в специально разработанном под него дружественном интерфейсе.
http://www.phpmyadmin.net
Smarty
Мощная система шаблонов для PHP. Использует свой собственный язык, который сочетает HTML и специальные теги Smarty. Шаблоны нужны для разделения программного кода и представления документа или по-другому, для отделения логики от содержания.
http://www.smarty.net
Все указанные программы и технологии являются открытыми, могут быть бесплатно загружены и свободно использоваться.
Можно установить необходимые программы, скачав их с сайта производителя и настроив под свои нужды. Однако это подчас требует знакомство с программой и владение необходимой квалификацией, которой у начинающих нет. Поскольку речь идет не о полноценном рабочем сервере, а о компьютере для тестирования и отладки, то имеет смысл использовать готовые комплекты. Такой комплект содержит в себе все необходимые для веб-разработчика программы, легко настраивается и управляется. Далее пойдет речь о некоторых популярных комплектах веб-разработчика.
htmlbook.ru
Локальный веб сервер для сайта
Устройство современного веб-сайта представляет собой набор различных HTML документов, скриптов, серверного программного обеспечения, баз данных и других компонентов. В целях изучения работы сайта и его тестирования, при установке плагинов, шаблонов, скриптов, целесообразно использовать домашний локальный сервер.
Это поможет избежать многих ошибок на работающем сайте в интернете. Домашний локальный веб сервер создает среду интернета на компьютере, что позволяет полноценно создавать и тестировать макеты сайтов, даже не выходя в интернет.
При этом локальный сервер полностью имитирует работу вашего хостинга с поддержкой всех скриптов, PHP, MySQL. Создать такую среду имитации работы сайта в интернете можно с помощью специальных программ, таких как Open Server, Denwer, Vertrigo, XAMPP, WAMP. Наиболее популярны в среде веб-мастеров бесплатный программный набор Open Server и Денвер. Простота установки и легкость в настройке позволяют успешно использовать эти программы любому пользователю интернета без специальных знаний для этого.
Локальный веб сервер на базе Open Server
Open Server представляет собой портативный набор приложений для создания домашнего сервера на компьютере, с учетом пожеланий и рекомендаций веб разработчиков. Эта программная платформа имеет мощную среду для администрирования и настройке любых веб проектов. В ее состав входят различныые компоненты (около 30) и программные продукты для офиса, интернета, системы, мультимедия и графика (около 40). Все это позволяет создавать и отлаживать любые проекты независимо от места использования, то есть на любом компьютере и в любой сети. В этом бесплатном наборе собраны портативные программы на все случае жизни, вместе с серверными для создания локального сервера.
Для удобства выбора создатели сборки разделили ее на три пакета:
- Open Server Full — полная версия со всеми приложениями и программами объемом 437mb
- Open Server Mini — только серверная часть размером 135mb
- Open Server Apps Pack — расширенная версия с полной документацией размером 229mb
После скачки выбранного пакета нужно распаковать архив в нужное место жесткого диска, флешки или внешнего диска, вообщем туда откуда вы собираетесь работать с программой. После распаковки станет доступна папка Open Server с нужными файлами. Для первого запуска локального сервера кликаем на файл Open Server, после чего в трее компьютера появится значок программы в виде флажка красного цвета. Для дальнейшей работы с сервером необходимо ознакомится с документацией по работе сервера, которая доступна из меню в программе после запуска сервера.
Работа с локальным сервером не вызывает каких либо трудностей даже новичкам, тем более все расписано по шагам. Независимость от места работы и условий, поддержка баз данных размером до 50mb (Denwer только до 2mb), лог работы, это одни из главных отличий Open Server от других программ. Портативность, русский интерфейс, легкость в установке и настройке позволяет работать с программой любому пользователю. Подробнее о составе сборки и скачать, можно на сайте программы.
Локальный сервер Denwer
Один из самых популярных проектов для создания локального сервера на домашнем компьютере. Небольшой размер пакета установки (только 8mb) и возможность установки на флеш-накопитель предоставляет пользователям все удобства для отладки сайтов. Отличительной чертой Денвера является его независимость и автономность. Можно установить на компьютер или флешку два Денвера, и они будут успешно работать независимо друг от друга. Он не оставляет ни каких следов в реестре Windows и ему не нужен деинсталлятор. Конфигурация всех настроек под конкретную систему происходит автоматически.
Про установку и настройку Денвера лучше всего написано на его домашней странице, тем более там же находятся видео ролики по работе с локальным сервером для начинающих. Сравнивая эти два проекта для работы с локальным сервером можно отметить что Denwer лучше использовать для создания или отладки небольших сайтов и страничек. Open Server хорошо подходит для переноса на локальный сервер действующих сайтов разных размеров и их дальнейшей отладки.
Если создание сайта на локальном сервисе не вызывает особых трудностей и всегда проходит на ура, то перенос действующего сайта на локальный сервер может вызвать определенные трудности, особенно у начинающих. Обычно трудности возникают при переносе базы данных и в неправильной конфигурации файла config.php. Перенос базы данных сопровождается заменой всех старых адресов в базе на новые и это не всегда проходит успешно. Нужно очень внимательно отнестись к этому и всегда проверять, что было и что стало. Помочь проверить и сравнить файлы можно программой WinMerge. Также обязательно необходимо присутствие файла HTACCESS в корне сайта, иначе кроме главной страницы сайта ничего не увидите.
www.websteel.ru
Что такое локальный сервер и для чего он нужен.
Локальный сервер — что это такое?
Локальный сервер – это эмулятор хостинга. Нужен он для возможности создать сайт у себя на компьютере, и в дальнейшем перенести его на хостинг.
Для чего нужен локальный сервер?
Начнем с того, что сайты «с нуля» сейчас практически никто не пишет. Даже для создания небольшого пятистраничного сайта проще взять готовый HTML шаблон. Такой сайт можно редактировать и править с помощью любого текстового редактора, например программы Notepad++.
Большинство же сайтов создаются на основе фреймворка или системы управления контентом (CMS). Для их корректной работы требуется среда, в которой работают базы данных, серверные языки программирования.
Виртуальный хостинг сайтов для популярных CMS:
Чтобы не устанавливать эти компоненты по отдельности (например, веб-сервер Apache, базы данных MySQL, языки программирования PHP, Perl) – обычно используют готовый набор программ. Настроенная связка этих программ и есть локальный сервер.
Под ОС Windows наиболее популярны следующие локальные сервера:
- Denwer;
- OpenServer;
- XAMPP.
Зачем еще используется локальный сервер?
Для чего можно использовать локальный сервер:
- Установка различных CMS для знакомства с интерфейсом и административной панелью;
- Для обучения верстке, программированию;
- Для проверки корректной работы системы бэкапов;
- Для внесения изменений в сайт.
На двух последних пунктах остановимся подробнее.
Локальный сервер и резервное копирование.
То, что Вы регулярно создаете резервные копии сайта вручную, дополнительными модулями или любым другим способом – не означает что вам не о чем беспокоиться.
Кроме создания резервных копий нужно обязательно проверять их работоспособность. Иначе можно столкнуться с неприятной ситуацией – например, база данных будет сохранена с ошибками кодировки или формата, что может сделать ее нечитаемой.
Внесение изменений на сайт и локальный сервер.
Изменение номера телефона на сайте, либо добавление новой записи в блог, разумеется не обязательно сначала тестировать на локальной версии.
Установку новых модулей, изменение верстки, импорт и экспорт большого количества информации – все это лучше делать на локальной копии, а не на рабочем сайте.
Перечисленные действия легко могут «поломать» внешний вид сайта, либо удалить часть данных.
Это же относится и к редизайну. Вместо того, чтобы пугать посетителей внезапно поплывшей версткой (а это частое явление, не всегда размеры изображений, шрифтов, блоков сайта совпадают на разных шаблонах) – не спеша все проверяется на локальной версии, а уже затем переносится на хостинг.
www.ipipe.ru