Apache локальный сайт


Содержание материала:

Apache локальный сайт

Как сделать домашний хостинг за 15 минут с нуля. Установка и настройка локального сервера. Apache + PHP + MySql + windows 7-2008r2

Всем привет сегодня расскажу как сделать домашний хостинг за 15 минут с нуля. Установка и настройка локального сервера. Apache + PHP + MySql + windows 7/Windows server 2008r2.

Список программ.

httpd-2.2.25-win32-x86-openssl-0.9.8y.msi
mysql-5.5.9-win32.msi
php-5.3.5-Win32-VC6-x86.msi
дополнительно \ imageMagick \ ImageMagick-6.7.0-6-Q16-windows-dll.exe
дополнительно \ imageMagick \ php_imagick_dyn-Q16.dll
дополнительно \ pspad \ pspad454inst_en.exe
дополнительно \ pspad \ ru_dic.cab
дополнительно \ HeidiSQL_6.0_Setup.exe
дополнительно \ phpMyAdmin-3.5.8.2-all-languages.7z

Все программы бесплатны и скачаны с официальных сайтов:

Не скачивайте сверхновые программы с пометкой Альфа (Alpha), Бета (Beta) и т.д. — это не стабильные версии которые могут содержать ошибки. Скачивайте только стабильные (Stable) версии.

http://httpd.apache.org/download.cgi
http://windows.php.net/download/ (скачиваем «installer», только «VC6 x86 Thread Safe». VC9 — устанавливать с Apache нельзя)
http://www.mysql.com/downloads/mysql/ (нажать «Looking for previous GA versions?», «essential» = необходимый минимум)
http://www.imagemagick.org/script/index.php

программы для работы с базой данных MySql:

http://www.heidisql.com/download.php
http://www.devart.com/ru/dbforge/
http://www.phpmyadmin.net/home_page/downloads.php

Принцип работы сервера:

Сервер — это компьютер на котором лежат файлы сайта. На нем запущена и постоянно работает специальная программа Apache. Если через браузер обратиться к этому серверу (послать запрос на 80 порт), Apache выдаст обратно HTML и графические файлы лежащие на сервере. Браузер получив обратно эту информацию сформирует из них на экране привычную нам страницу сайта.
Это принцип.

Для надежности и большей совместимости реальные сервера у хостинговых компаний обычно делают на связках Unix + Apache (самая распространенная в мире связка) или на Windows Server 200X + Internet Information Server (IIS). Для экспериментов и тестирования сайтов вполне подойдет Windows 7, Vista или XP + Apache.

Ниже рассказывается как создать локальный (не видимый в интернете) виртуальный сервер для тестирования сайтов, скриптов и т.д.

Настроить видимость в интернете, т.е. сделать свой реальный хостинг можно, но опасно, ибо велик шанс, что будет много «дыр» для взлома.
* посчитайте сколько стоит за год выделенный IP адрес
* посчитайте сколько стоит за год электричество для постоянно работающего компьютера
* посчитайте стоимость замены выходящего из строя железа (год в включеном состоянии не каждая железка выдержит)
* уверены, что интернет у Вас никогда не пропадает и скорости отдачи хватит для всех посетителей?
* как будете делать резервные копии сервера, где хранить? При сбое или взломе как быстро Вы сможете все восстановить?
Ответив на вопросы выше подумайте, может надежнее, проще и дешевле купить хостинг и не мучиться.

1) Cоздаем папки

c:/work/test.ru/www/
c:/work/bebebe/www/
(желательно сразу залить туда предлагаемые PHP файлы, для тестирования хостинга)

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

Общая папка для всех виртуальных сайтов:
c:/work/
Название может быть любое, не обязательно work.
Место положение любое, не обязательно диск c:

Папки конкретных двух сайтов:
c:/work/test.ru/
c:/work/bebebe/
Название может быть любое. На этом уровне располагают файлы сайта которые не видны в интернете, например служебные файлы, пароли, логи, статистику сервера и т.д.

Видны в браузере:
c:/work/test.ru/www/
c:/work/bebebe/www/
Здесь размещаются непосредственно файлы сайта (картинки, HTML, файлы для скачивания и т.д.) Грубо говоря, если в браузере набрать test.ru, то будет «видно» содержимое именно этой папки. Поэтому в браузере невозможно отобразить родительскую папку c:/work/test.ru/ и c:/work/ и диск c:/ то же. ��

папка
c:/work/_/sendmail/
не обязательна. Нужна для работы «заглушки» отправки e-mail.

2) Устанавливаем Apache

Apache — это программа, которая принимает запросы от браузера (Internet Explorer, FireFox, Opera . ) и выдает ему обратно HTML, картинки, результаты работы скриптов и т.д. (выдает страницы сайта). Запущена она один раз и работает постоянно. Значок запущенной программы будет внизу, справа экрана.

Настройки Apache в файле:
c://Program Files (x86)/Apache Software Foundation/Apache2.2/conf/httpd.conf
Для применения изменений в этом файле нужно перезагружать Apache.

———-
Чтобы Apache принимал запросы только с локального компьютера, указываем его неизменный IP адрес и порт: 127.0.0.1:80
Т.е. скачать или запустить что-то на вашем хостинге можете только Вы.

Заменяем
Listen 80
на
Listen 127.0.0.1:80

———-
Модуль mod_rewrite.so нужен для реализации человеку понятных адресов (ЧПУ)
Применяется для создания ссылок на страницы вида: test.ru/news/2010/03/
Убрать знак комментария «#»:
LoadModule rewrite_module modules/mod_rewrite.so

———-
Что бы не было предупреждения в логах Apache убрать знак комментария «#»:
ServerName localhost:80

———-
Для того, что бы можно было использовать файлы .htaccess
После кода:

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be «All», «None», or any combination of the keywords:
# Options FileInfo AuthConfig Limit

Изменяем
AllowOverride None
на
AllowOverride All

———-
При указании в адресной строке браузера папки на сервере, сервер автоматически будет искать и запускать указанные здесь файлы

Заменяем
DirectoryIndex index.html
на
DirectoryIndex index.html index.htm index.php

———-
Указываем путь файла ошибок в удобное нам место:
ErrorLog «c:/work/_/apache_error.log»

———-
Даем доступ к папке «work» и создаем настройки.
После кода:

AllowOverride None
Options None
Order allow,deny
Allow from all

AllowOverride All
Options Indexes FollowSymLinks Includes
Order allow,deny
Allow from all

Indexes — возвращает клиенту листинг каталога, если в нем нет индексных файлов
FollowSymLinks — Позволяет использовать символические ссылки (нужно для работы mod_rewrite)
Includes — Разрешает выполнение SSI директив в файлах

———-
Указываем расширения файлов для SSI
После кода :

# To parse .shtml files for server-side includes (SSI):
# (You will also need to add «Includes» to the «Options» directive.)

AddType text/html .shtml .html. .htm
AddOutputFilter INCLUDES .shtml .html .htm

———-
Присоединение к основному конфигурационному файлу, файл httpd-vhosts.conf
Тогда при запуске Apache прочитает оба файла.
Убрать знак комментария «#»:
Include conf/extra/httpd-vhosts.conf

———-
Далее изменяем в файле
C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.conf

Даем понять Apache, что:
Есть виртуальный хост, т.е. сайт.
Его файлы лежат здесь «DocumentRoot»
Показывать именно этот сайт если запрашивают домен «ServerName» или «ServerAlias»
Логи писать сюда «ErrorLog» и сюда «CustomLog»

Для этого удаляем старые записи

.

и добавляем новые:

DocumentRoot c:/work/test.ru/www
ServerName test.ru
ServerAlias www.test.ru
ErrorLog c:/work/test.ru/error.log
CustomLog c:/work/test.ru/access.log common

DocumentRoot c:/work/bebebe/www
ServerName bebebe
ErrorLog c:/work/bebebe/error.log
CustomLog c:/work/bebebe/access.log common

3) Устанавливаем PHP

PHP — это популярный язык программирования применяемый для создания сайтов.

В установке выбираем все модули, кроме этих:
Oracle (10)
PDO — Oracle10g
PDO — Oracle8i\Oracle9i
PDO — SQLite (External Driver)
Pspell
Sybase
т.к. для них нет файлов-билиотек (.dll) и это приведет к ошибке.

Настройки PHP в файле:
C:\Program Files (x86)\PHP\php.ini

позволит выполнять код PHP в контейнере
по умолчанию кодом PHP считается все в контейнере
short_open_tag = On

максимальное время выполнения программы в секундах
(на реальных хостингах обычно 30)
max_execution_time = 3600

максимальное время получения данных (например загрузки файла) в секундах
(на реальных хостингах обычно 60)
max_input_time = 3600

максимальный объем памяти который может занять Ваш PHP скрипт
(на реальных хостингах обычно 32М)
memory_limit = 256M

выводить на экран ошибки PHP
(на реальных хостингах всегда OFF в целях безопасности)
display_errors = On

выводить на экран ошибки в момент запуска PHP
display_startup_errors = On

если надо подкрасить все ошибки красным разкомментируем эти строки:
error_prepend_string = » »
error_append_string = » «

максимальный объем, который можно передать PHP скрипту методом POST
(на реальных хостингах обычно 4М)
post_max_size = 1000M

максимальный объем файла, который можно передать PHP скрипту
(на реальных хостингах обычно 2М)
upload_max_filesize = 1000M

Заменяем пути папок для временных файлов, сессий и файла ошибок:
upload_tmp_dir=»C:\work\_\php_temp»
session.save_path=»C:\work\_\php_session»
error_log=»C:\work\_\php-errors.log»

Требуется установка времени сервера иначе PHP постоянно будет выдавать предупреждения
изменяем
;date.timezone =
например, на
date.timezone =’Europe/Moscow’

Что бы работала «заглушка» для отправки e-mail после строки
;sendmail_path =
заменяем
sendmail_path = php.exe c:\work\_\sendmail\sendmail.php
тогда при выполнении функции PHP — mail(); письмо будет сохранено в виде файла в папке
c:\work\_\sendmail\
(куда сохранять письма прописано в самом скрипте sendmail.php)

——-
ВНИМАНИЕ:
инсталлятор PHP может не прописывать в файле httpd.conf пути к PHP:

#BEGIN PHP INSTALLER EDITS — REMOVE ONLY ON UNINSTALL
PHPIniDir «»
LoadModule php5_module «php5apache2_2.dll»
#END PHP INSTALLER EDITS — REMOVE ONLY ON UNINSTALL

#BEGIN PHP INSTALLER EDITS — REMOVE ONLY ON UNINSTALL
PHPIniDir «C:/Program Files (x86)/PHP»
LoadModule php5_module «C:/Program Files (x86)/PHP/php5apache2_2.dll»
#END PHP INSTALLER EDITS — REMOVE ONLY ON UNINSTALL

——-
ВНИМАНИЕ:
при повторном запуске инсталлятора PHP будет снова изменен файл httpd.conf
причем все старые пути к PHP будут закомментированы знаком #,
а новые не пропишутся (см. выше).
В результате Apache запустится без PHP и при попытке выполнить скрипт PHP
например так: http://test.php/index.php будет предложено скачать файл!
Пропишите в файл httpd.conf пути к PHP (см.выше) и все заработает.

Если Apache не запустился то закоментируйте следующие библиотеки в php.ini
;extension=php_pdo_pgsql.dll
;extension=php_pgsql.dll
;extension=php_sybase_ct.dll
;extension=php_oci8_11g.dll
;extension=php_oci8.dll
;extension=php_intl.dll
_________________________________________________________________________________

4) Устанавливаем ImageMagick

ImageMagick — программа для работы с изображениями. Схожа со стандартной библиотекой PHP GD2, но более профессиональная и главное выдает картинки с лучшим качеством, что заметно не вооруженным глазом (после обработки GD2 картинки слегка мутноваты и это не лечится).

После установки самой программы, копируем в папку с модулями, модуль для ImageMagick
C:/Program Files (x86)/PHP/ext/php_imagick_dyn-Q16.dll
В конце php.ini добавляем строчку подключения модуля:
extension=php_imagick_dyn-Q16.dll
Может требовать перезагрузки компьютера (перезагрузим позже)

5) Устанавливаем MySQL

MySQL — это база данных. Т.к. далеко не всю информацию удобно хранить в файлах, наличие базы данных очень часто является необходимостью. При установке обязательно поставьте галочку Include Bin Directory in Windows PATH иначе PHP не сможет найти нужные ему файлы mysql.

(в тестовых файлах PHP, с сайта sysbox.ru, для подключения к базе данных указаны
логин: root
пароль: root
изменить их можно в файле config.php)

Кодировки MySQL это отдельный рассказ, т.к. нюансов множество.
При установке MySQL желательно указать именно UTF-8 (инсталлятор так и рекомендует сделать). Это универсальная, многобайтовая кодировка.

Обычно возникает путаница с кодировками: ошибки при записи в базу данных, читаются иероглифы, появляются вопросики вместо букв и т.д. MySql имеет массу настроек кодировок. Важные для PHP:

character_set_client = кодировка данных отправляемых от PHP
character_set_connection = кодировка, в которую преобразуется информация пришедшая от PHP, перед выполнением запроса на сервере
character_set_results = кодировка данных отправляемых к PHP
collation_connection = кодировка в которой производится сопоставление в базе данных. Используется для сортировки и выборки.

В помощь: если база данных в UTF-8, а на сайте работаете в кодировке windows-1251, то после подключения к базе данных надо выполнить запрос:
SET NAMES cp1251
который равносилен этим трём:
SET character_set_client = cp1251
SET character_set_results = cp1251
SET character_set_connection = cp1251

Настройки MySQL лежат в файле:
c:\Program Files (x86)\MySQL\MySQL Server 5.1\my.ini

Если сам MySQL использует UTF-8 по умолчанию, то лезть в файл настроек как правило не нужно и все проблемы с кодировками можно решить с помощью MySQL менеджера (например программы HeidiSQL) и запросов SQL.

6) Настройка Windows

Что бы при наборе в браузере определенных сайтов браузер искал их не в интернете, а на локальном компьютере,
в файл:
C:\WINDOWS\system32\drivers\etc\hosts
добавляем:

127.0.0.1 localhost
127.0.0.1 test.ru
127.0.0.1 www.test.ru
127.0.0.1 bebebe

Запись «127.0.0.1 localhost» нужна для того, что бы можно было подключаться к MySQL из PHP указывая не IP адрес 127.0.0.1, а зарезервированное имя «localhost». Так правильнее и «localhost» часто используется на реальных хостингах.

7) Перезапуск Apache

Для Windows Vista и Windows7:
остановить и снова запустить Apache

Для Windows XP:
сразу перезапустить Apache не получится — сначала надо обязательно перезагрузить компьютер
(перезагрузка закрепляет значения, автоматически сделанные Apache, PHP и MySQL, в переменной Windows — PATH)

______________________________________________________________________________
Настройка программы phpMyAdmin

phpMyAdmin — это программа для администрирования базы данных MySQL.
Написана на языке PHP, работает через браузер.
Примечательна тем, что на большинстве реальных хостингах она установлена и рекомендуется для работы с базой данных.

Распаковываем все файлы в какую-нибудь папку на сайте, например в «c:/work/bebebe/www/pma/»
В корне переименовать файл
config.sample.inc.php
в
config.inc.php
и редактируем всего одну строчку (надо указать любой код, например «xxx»):
$cfg[‘blowfish_secret’]=’xxx’;
После чего запускаем phpMyAdmin, набрав в браузере:
bebebe/pma
Вводим логин и пароль которые указывали при установке MySQL

Остальные настройки менять НЕ нужно и по умолчанию они должны содержать:
$cfg[‘Servers’][$i][‘verbose’] = »;
$cfg[‘Servers’][$i][‘host’] = ‘localhost’;
$cfg[‘Servers’][$i][‘port’] = »;
$cfg[‘Servers’][$i][‘socket’] = »;
$cfg[‘Servers’][$i][‘connect_type’] = ‘tcp’;
$cfg[‘Servers’][$i][‘extension’] = ‘mysqli’;
$cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’;
$cfg[‘Servers’][$i][‘nopassword’] = true;

Если в файле
C:\WINDOWS\system32\drivers\etc\hosts
нет строчки
127.0.0.1 localhost
то phpMyAdmin может не работать «зависать» и выдавать ошибки, например:
#2002 — Сервер не отвечает (либо сокет локального MySQL-сервера некорректно настроен)
Эти зависания можно вылечить изменив в настройке phpMyAdmin:
$cfg[‘Servers’][$i][‘host’] = ‘localhost’;
на
$cfg[‘Servers’][$i][‘host’] = ‘127.0.0.1’;
но правильнее внести строчку
127.0.0.1 localhost
в файл hosts, т.к. на реальных хостингах, в скриптах PHP при подключении к MySQL указывается именно «localhost», а не конкретные IP адреса.

Вот так вот просто сделать домашний хостинг за 15 минут с нуля. Установка и настройка локального сервера. Apache + PHP + MySql + windows 7/2008r2. Тоже самое можно сделать с помощью Denwer.

Настройка виртуальных хостов Apache в Ubuntu 16.04

Apache является одним из самых популярных веб-серверов в мире.

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

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

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

Требования

  • Предварительно настроенный сервер Ubuntu 16.04.
  • Не-root пользователь с расширенными привилегиями.
  • Установленный веб-сервер Apache:

sudo apt-get update
sudo apt-get install apache2

Примечание: В руководстве используются условные домены example.com и test.com; не забудьте заменить их своим доменным именем.

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

1: Создание структуры каталогов

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

Каталог document root (каталог, содержащий контент для Apache) по умолчанию находится в /var/www; в нём нужно создать отдельный каталог для каждого виртуального хоста. В каждом таком каталоге будет размещен каталог public_html, в котором будут находиться нужные файлы. Благодаря этому хостинг становится более гибким.

Необходимые каталоги можно создать при помощи следующих команд:

sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html

Примечание: Не забудьте указать свои доменные имена в командах.

2: Настройка прав

Структура каталогов готова, но все они принадлежат пользователю root. Чтобы не-рутовый пользователь мог вносить изменения в файлы веб-каталога, нужно изменить права на эти файлы при помощи следующей команды:

sudo chown -R $USER:$USER /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/test.com/public_html

Переменная $USER примет имя текущего пользователя. После этого подкаталоги каталоги public_html, содержащие контент сайтов, будут принадлежать текущему пользователю.

Также нужно изменить привилегии и открыть веб-каталог и всё его содержимое для чтения, в противном случае страницы будут отображаться некорректно.

sudo chmod -R 755 /var/www

Теперь все права установлены верно; можно приступать к созданию контента в специальных каталогах.

3: Создание демо-страниц для виртуальных хостов

Создайте тестовый контент; для пробной настройки хостов простых страниц будет достаточно. Просто создайте страницы index.html для каждого сайта.

Начнём с example.com; откройте файл index.html в текстовом редакторе:

В этом файле создайте простой HTML-документ, который указывает, к какому сайту подключена страница. В данном случае этот файл выглядит так:

Success! The example.com virtual host is working!

Блог MerinovKV

Техническое обслуживание сайтов.

Виртуальные хосты Apache2, доступные из локальной сети

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

Будем считать, что у нас есть сайт на виртуальном хосте. Например,, пусть это будет site.loc . Также даны два компьютера — один под Open SUSE (Apache2 + PHP + MySQL, IP: 192.168.0.100 , например), второй — под WinXP (пусть это будет ноутбук, если кому-то интересно). Мне нужно, чтобы я мог зайти в phpMyAdmin и работать с админкой site.loc c ноутбука. Ну, или просто посмотреть из-под винды, как оно будет выглядеть ��

Настроим сеть

Для начала, на компьютере, откуда хотим получить доступ (в нашем случае, с WinXP), открываем файл C:/Windows/System32/drivers/etc/hosts и добавляем строчку после 127.0.0.1:

Сохраняем файл. что тут написано — при наборе адреса « site.loc » идти на IP « 192.168.0.100 «. Это вместо того, чтобы поднимать DNS ради одного-двух-пяти сайтов.

Если второй компьютер на Linux — файл будет /etc/hosts, действия — те же.

phpMyAdmin

Если с phpMyAdmin все относительно просто — пишем http://192.168.0.100/phpMyAdmin (регистр тут важен) и все открывается, то с виртуальными хостами придется расковырять пару файлов.

Виртуальные хосты

site.loc , соответственно, живет на виртуальном хосте, который прописан так:

Все прекрасно работает на локалхосте, но при попытке зайти на site.loc cо второго компьютера, нас ждет облом. Откроется страница, находящаяся в папке WWW (по умолчанию там будет написано «It worws!«). Вот тут-то мы и начинаем.

Для начала, апачу нужно сказать, какие порты слушать и на каких интерфейсах (он же не телепат, правильно?). Открываем файл /etc/apache2/listen.conf и видим там нечто следующее (исключая коммментарии, конечно):

К этому всему добру надо указать апачу слушать два интерфейса — локальный ( 127.0.0.1 ), чтобы можно было смотреть сайт на локалхосте как раньше, и внешний ( 192.168.0.100 ), чтобы апач принимал запросы еще и с того интерфейса, который смотрит в локалку.

Можно добавить это в самый конец файла, можно в начало.

Чтобы апач слушал все интерфейсы на 80 порту — вместо того, что выше, добавляем

Этот вариант хорош именно в нашем случае, когда у нас по сути 2 интерфейса (значимых для дела) — 127.0.0.1 и 192.168.0.100

Чтобы все интерфейсы на всех портах (а надо ли?)

В принципе, все это описано в комментариях в этом же файле. Правда, на английском…

Теперь открываем известный нам уже файл /etc/apache2/vhosts.d/site.loc.conf и добавляем в него блок:


Таким образом, должно получиться так:

Собственно, осталось перезапустить апач:

и проверять. Все должно работать на обоих компьютерах.

Apache. Несколько сайтов на одном сервере

Содержание

Эта инструкция основана на статье «Многоликий Apache» из журнала «Системный администратор» №12, 2005г. (http://samag.ru)

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

Веб-сервер Apache, популярный благодаря своей прозрачности для программистов и администраторов и не в последнюю очередь благодаря бесплатности, реализован под все более-менее популярные операционные системы. Его настройки для всех ОС одинаковы, различаются только пути, где хранятся конфигурационные файлы. На одном сервере может быть запущено несколько экземпляров Apache, прослушивающих разные адреса и/или порты. Один экземпляр может обслуживать несколько сайтов (подробнее об этом ниже). Проект настолько популярен, что постоянно обрастает новой функциональностью. О степени популярности можно судить либо по статистике, что, на мой взгляд, довольно опрометчиво, либо по конкретным фактам. Фактов популярности Apache мы приведём два. Во-первых, его наличие в качестве веб-сервера по умолчанию в большинстве UNIX-подобных операционных систем. Во-вторых, такой гигант в области ИТ как компания Oracle приняла его в состав своего продукта Oracle Application Server 10g, где он играет одну из ключевых ролей.

  1. Компьютер с установленным пакетом Apache 1.3 или 2.0
  2. Адрес сервера в интернете: 10.0.10.15 и имя: teo.mynetwork.ru
  3. Адрес сервера в локальной сети: 192.168.100.18
  4. Несколько сайтов.
  5. Несколько имён для одного сайта

Задача

  1. Разместить все сайты на одном сервере
  2. Сделать доступ к каждому сайту по отдельному URL
  3. Ограничить доступ к некоторым сайтам
  4. Сделать перенаправление нескольких имён на один сайт

Решение

Создаём два сайта (виртуальные хосты)

Предположим, что у нас два различных сайта teo.mynetwork.ru и logos.mynetwork.ru. Эти имена должны быть доступны, т.е. держатель зоны mynetwork.ru должен прописать в ней узлы teo и logos

— Для каждого сайта создаём каталог в корневом каталоге документов Apache (teo и logos, соответственно). Для некоторых Linux по умолчанию /var/www/html, но чтобы убедиться, где он расположен на нашем сервере, смотрим значение директивы DocumentRoot в /etc/httpd/conf/httpd.conf. Итак, создаём:

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

— Если у нас уже был создан сайт, то всё его содержимое переносим в созданный для него каталог, т.е. из /var/www/html в /var/www/html/teo. Новый сайт logos.mynetwork.ru размещаем в /var/www/html/logos. Теперь настраиваем Apache. Добавляем в конец файла /etc/httpd/conf/httpd.conf (некоторые ОС создают для каждого виртуального хоста отдельный конфигурационный файл, тог):

Все настройки не заданные для сайта явным образом в директиве VirtualHost, наследуются от глобальных настроек Apache, указанных выше в этом же файле.

— Теперь, обращаясь по DNS именам, мы будем получать разные сайты. Если обратиться по IP адресу, то получим сайт teo.mynetwork.ru, т.к. он подключен первым.

Топ-пост этого месяца:  Взаимодействие JavaScript и CSS использование пользовательских атрибутов

Создаём ссылки с нескольких DNS адресов на один сайт

Это можно осуществить двумя способами: созданием синонимов, или перенаправлением всех обращений с другого сайта.

1) Синонимы задаются директивой ServerAlias, могут содержать маску, и разделяются пробелом. Вот несколько примеров создания синонимов:

Синоним — это DNS-имя. Имена могут быть абсолютно любыми, в том числе и из разных доменов, но все они должны разрешаться в IP-адреса, то есть их предварительно нужно зарегистрировать в DNS.

2) Перенаправление задаётся директивой Redirect. Создаём новый пустой сайт pantheon.ru. Как и для предыдущих сайтов, это делается в три шага: создание каталога для документов, для журналов и добавление конфигурации в httpd.conf:

Можно перенаправлять не со всего сайта, а только с определённого каталога или даже документа:

При этом Apache воспринимает первый параметр директивы Redirect не как URL, а как набор символов, при совпадении с которым происходит перенаправление. Отсюда следует, что он НЕ проверяет наличие указанных каталогов и файлов, а ссылки /samag и /samag/ НЕ считает одинаковыми.

Перенаправление с помощью файла .htaccess выглядит так:

  • 1-я строка: включаем возможность менять URL
  • 2-я строка: перенаправляем запрос к странице http://old.site.ru/wiki/Что-то на другой сайт, передавая параметры ($1)
  • 3-я строка: любые другие запросы к старому сайту перенаправляем на новый.

Ограничиваем доступ к сайтам

Теперь, если пользователь обратится к нам по IP-адресу, либо по имени, на которые наш сервер откликается (см. Приложение), то Apache сначала определяет, не удовлетворяет ли запрос описанным директивами VirtualHost сайтам и если не находит ни один из них, то выдаёт сайт по умолчанию, который находится в каталоге, заданном глобальной директивой DocumentRoot, т.е. уровнем выше остальных. Таким образом, получается, что пользователь может попасть на любой из виртуальных сайтов не тем путём, какой мы для него приготовили, т.е. http://logos.mynetwork.ru/. Например, набрав в адресной строке браузера «http://192.168.100.18/logos/», он получит сайт logos.mynetwork.ru. Правда в этом случае документы, использующие ссылки на ресурсы этого же сайта, будут некорректно отображаться, потому что ссылки делаются относительно корня сайта и, если это была ссылка /img/picture.jpg, то во втором случае этот же файл уже нужно искать по ссылке /logos/img/picture.jpg, этого же браузер не знает. Таким образом, здесь все зависит от того, догадывается ли пользователь, в каких каталогах мы храним наши сайты. В принципе, в этом нет ничего плохого, ведь мы в любом случае выложили сайты, чтобы их посещали (правила по ограничению доступа к ресурсу всё равно будут действовать, о них мы поговорим чуть позже), но как-то это выглядит не красиво (для того и двери, чтоб в окна не лазить). Чтобы устранить эту некрасивость можно поместить сайт по умолчанию на тот же уровень, что и остальные сайты, т.е. создать каталог /var/www/html/default и указать его в двух директивах глобальных настроек (т.е. до описания виртуальных сайтов)

Теперь перейдём непосредственно к раздаче прав доступа. Существует два способа указания прав доступа к каталогу веб-сайта средствами Apache:

1) поместить в каталог файл .htaccess,

2) использовать директиву в файле конфигурации.

В обоих случаях правила распространяются и на вложенные каталоги. Мы рассмотрим оба способа и изменим права доступа к двум каталогам сайта logos.

файл .htaccess

Какие параметры можно переписать в файлах .htaccess определяется директивой AllowOverride. Для разрешения переопределения всех деректив нужно добавить в конфигурацию сайта строку:

Перечислим преимущества использования файла .htaccess:

  1. при его изменении не нужно перезапускать Apache;
  2. при одинаковом уровне доступа к разным ресурсам можно пользоваться ссылками на один файл .htaccess;
  3. можно предоставить пользователю право редактирования этого файла, что удобно, если у нас сервер с множеством клиентских сайтов.

Есть и недостатки:

  1. для того, чтобы ответить на вопрос: «какие ограничения доступа существуют на сайте?» — администратору необходимо помнить, в каких каталогах лежат эти файлы и ссылки;
  2. если сайт будет переноситься на другой сервер, и, что очень вероятно, будет размещён в другом каталоге, то для корректировки ссылок уйдёт много времени;
  3. повышается нагрузка сервера, т.к. при каждом запросе на ресурс он обращается к .htaccess в этом каталоге и всех верхних по иерархии, наследуя их настройки т.е. запрос на ресурс http://teo.mynetwork.ru/olimp/staff/zeus.htm инициирует проверку .htaccess файлов в каталогах
  • ./
  • ./olimp/
  • ./olimp/staff/

Пример

Предоставим права с помощью файлов .htaccess, нужно создать соответственно файл /var/www/html/logos/info1/.htaccess:

и файл /var/www/html/logos/info2/.htaccess:

«> директива

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

  1. можно быть уверенным, что ничего не пропустим, если вдруг нужно изменить уровень доступа к какому-нибудь ресурсу;
  2. повышаем скорость реакции сервера на запросы, т.к. все настройки загружаются при старте Apache.

Ну а мириться придётся с тем, что для каждого каталога необходимо описывать права отдельно (помним, что для подкаталогов права наследуются), даже если они одинаковые. Правда, есть поддержка масок, например:

будет соответствовать именам каталогов в /www/ состоящим из трёх цифр, но это не всегда может облегчить ситуацию.

Пример

Описываем те же права в главном конфигурационном файле Apache httpd.conf или в файле настройки виртуального хоста:

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

Доступ к ресурсу http://logos.mynetwork.ru/info1/ смогут получить только два пользователя из локальной сети с указанными IP адресами (хотя такие ресурсы лучше хранить на внутренних веб-серверах), ещё мы дали разрешение Apache, в случае отсутствия в каталоге начальной страницы, генерировать html документ с содержимым каталога.

Для доступа к ресурсу http://logos.mynetwork.ru/info2/ будут запрошены имя пользователя и пароль, которые будут сверены с данными в файле /var/www/main_users. Создадим этот файл:

Добавим в него пользователя chef:

В некоторых дистрибутивах команда может называться без цифры, т.е. htpasswd, находится она в пакете с утилитами Apache, в Debian это apache2-utils

Остальных пользователей добавляем аналогичным способом. Такие файлы создаём для каждой группы пользователей с одинаковыми правами доступа к ресурсу. Одни и те же группы можно использовать во всех сайтах.

Для удаления пользователя chef из списка, используем комманду:

— Если возникли проблемы, то смотрим в логах /var/log/apache2/error_log. Можно их сделать более детальными указав в /etc/httpd/conf/httpd.conf или в конфигурации определённого виртуального хоста:

Последние штрихи

В заключении можно для изящности выделить настройку каждого сайта в отдельный файл, и подключить их в httpd.conf:

Кроме изящности мы получаем удобство в быстром подключении и отключении сайта, путём добавления/снятия символа комментария “#” в начале строки. Это особенно актуально, когда настройка каждого сайта раздувается на несколько десятков строк.

Также нелишне будет настроить ротацию журналов с помощью logrotate.

Приложение

Особенности директив Listen и NameVirtualHost

Директива Listen имеет больший приоритет чем, NameVirtualHost. Она говорит, откуда принимать запросы. В то время как последняя определяет, как обрабатывать полученный запрос. Это значит, что если указано значение

то Apache будет прослушивать порт 80 на всех IP адресах и директива

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

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

Локальный сервер на LINUX (Apache + PHP + MySQL)

Вы не знаете как создать локальный сервер на LINUX? Тогда эта статья для вас. В ней я доступно расскажу как создать и настроить локальный сервер на LINUX.

В последнее время популярность свободного программного обеспечения, и в том числе операционных систем семейства LINUX растет быстрыми темпами. Сегодня linux уже совсем не тот, что раньше. Для того, чтобы начать работать с ним, достаточно лишь базовых знаний о компьютере. «Из коробки» уже доступны большинство программ, необходимых неискушенному пользователю. Однако если вы являетесь веб-разработчиком, или просто создаете для себя сайт, вам, скорее всего, понадобится локальный сервер. И полистав некоторые форумы, я заметил, что пользователи, перешедшие с windows систем в linux сталкиваются с некоторыми проблемами при создании сервера у себя на компьютере.

Нам нужно чтобы наш сервер поддерживал не только статические сайты, но и большинство современных CMS, таких как WordPress, Joomla, Drupal и др. Для этого нам будут нужны следующие компоненты:

  • apache (веб-сервер);
  • php (язык, на котором написаны многие CMS);
  • mysql (сервер баз-данных).

Сочетание Apache + PHP + MySQL является достаточно популярным. В windows среде его обычно называют WAMP (об этом я писал в статье о локальном сервере Open Server). В linux же, как вы уже, неверное, догадались, существует аналогичное название — LAMP (Linux + Apache + PHP + MySQL).

Итак, первым делом мы установим пакет программ LAMP, для чего в терминале введем следующие команды

sudo apt-get update
sudo apt-get install tasksel
sudo tasksel install lamp-server

Первой командой мы обновляем информацию с репозиториев, далее устанавливаем команду tasksel, необходимую для установки пакетов, и последней командой устанавливаем именно пакет LAMP.

В процессе установки вам порекомендуют установить пароль для административного пользователя MySQL «root», что я советую сделать

и установка продолжится далее

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

Настройка веб-сервера Apache

У apache очень много настроек, которые, как и большинство настроек различных программ на linux хранятся в текстовых файлах. Но для начала мы обойдемся лишь изучением некоторых из них. Для комфортной работы нам этого вполне хватит.

Конфигурационные данные веб-сервера apache расположены в папке /etc/apache2/ .

В папках mods-available и sites-available находятся все доступные модули и сайты. А в папках mods-enabled и sites-enabled только те из них, которые включены в данный момент. Apache2.conf — основной конфигурационный файл apache. Ports.conf — список прослушиваемых портов.

Управление сервером осуществляется через терминал:

sudo /etc/init.d/apache2 start — запуск локального сервера

sudo /etc/init.d/apache2 stop — остановка сервера

sudo /etc/init.d/apache2 restart — перезапуск apache.

sudo a2enmod rewrite
sudo a2enmod userdir

включаем модули rewrite и userdir, позволяющий создавать пользовательские пути для сайтов.

После любого действия по включению-выключению модулей или сайтов, для применения изменений требуется перезапуск apache.

Теперь займемся созданием площадок для локальных сайтов. Я для примера создам два локальных сайта. Большее их количество создается аналогично.

Сначала создаем два файла с названиями будущих сайтов в директории /etc/apache2/sites-available/

1
sudo gedit /etc/apache2/sites-available/test1

и прописываем в нем следующие строки

ServerAlias test1 www.test1
DocumentRoot /home/user/sites/test1

AllowOverride All

2
sudo gedit /etc/apache2/sites-available/test2

ServerAlias test2 www.test2
DocumentRoot /home/user/sites/test2

AllowOverride All

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

В них создаем по одному файлу index.html. Для первой папки — с текстом «Страница первого сайта», для второй — «Страница второго сайта».

Для того чтобы в браузере при наборе в строке адреса названий наших сайтов test1 и test2 переход осуществлялся на локальных сервер редактируем файл hosts

sudo gedit /etc/hosts .

В первою строчку дописываем имена создаваемых сайтов.

У вас должно получиться следующее

127.0.0.1 localhost test1 test2
127.0.1.1 comp

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

comp — это имя вашего компьютера, поэтому оно будет другим.

В терминале вводим команды для включения сайтов

sudo a2ensite test1
sudo a2ensite test2

не забываем перезапустить apache.

Все готово! Можно проверить, набрав в браузере имена только что созданных сайтов.

Если у вас что-то не вышло или вышло не так — задавайте вопросы, постараюсь ответить.

Если вы все-таки остановились на Windows, то советую почитать статью «Локальный сервер Denwer».

В следующий раз я расскажу как работать с базами данных на локальном сервере в LINUX.

Установка локального веб-сервера на подсистему Windows для Linux

В этой статье рассмотрим процесс настройки локального веб-сервера (Apache, MySQL и PHP) на подсистеме Windows для Linux (Windows Subsystem Linux).

Что такое подсистема Windows для Linux?

Microsoft Windows 10 имеет новую дополнительную функцию, которая называется «Подсистема Windows для Linux (WSL)». Данная функция была добавлена в систему, начиная с обновления «Anniversary Update» и доступна она только в 64-битных редакциях Windows 10.

WSL представляет собой подсистему для ОС Windows 10, через которую можно запускать Linux приложения. В этой статье рассмотрим, как на данной подсистеме можно настроить веб-сервер (Apache, MySQL, PHP) для локальной разработки веб-проектов.

Основные этапы настройки веб-сервера на WSL

Процесс установки веб-сервера на WSL можно разбить на следующие шаги:

  • включение через панель управления дополнительной функции Windows 10 «Подсистема Windows для Linux»;
  • установки приложения «Ubuntu» из магазина приложений Microsoft Store;
  • установка программного обеспечения в ОС Ubuntu и его настройка;
  • редактирование файла hosts в Windows 10;
  • создания bash скриптов для запуска и остановки веб-сервера;
  • проверки работоспособности веб-сервера, посредством установки на сайт, например, CMS MODX Revolution.

Включение подсистемы Windows для Linux

Для включения компоненты «Подсистема Windows для Linux» в Windows 10 необходимо выполнить следующие действия:

  • открыть «Панель управления» (Пуск -> Служебные -> Windows -> Панель управления);
  • открыть окно «Компоненты Windows» (пункт «Программы» в «Панели управления» -> Включение и отключение компонентов Windows);
  • установить галочку напротив опции «Подсистема Windows для Linux» и нажать «ОК»;
  • перезагрузить операционную систему.


Установка приложения «Ubuntu»

Установку приложения «Ubuntu» на компьютер осуществим через магазин приложений Microsoft Store. Для этого необходимо открыть данный магазин приложений, найти приложение «Ubuntu» и установить его.

Создание директории для веб-проекта

Создадим в Windows 10, например, с помощью проводника, директорию для сайта (проекта) test.ru:

Установка программного обеспечения в ОС Ubuntu

Запустим операционную систему «Ubuntu».

Введём новое UNIX имя пользователя (username) и пароль (password).

Обновим локальный индекс apt пакетов в операционной системе Ubuntu:

Обновим установленное программное обеспечение:

Установим MySQL сервер:

Установим php и другие пакеты, необходимые для веб-разработки:

Включим модуль Mod rewrite в Apache:

Изменение метода аутентификации MySQL пользователя root

Для изменения метода аутентификации MySQL пользователя root выполним следующие действия:

1. Запустим службу mysql.

2. Подключимся к серверу MySQL под стандартным пользователем root, который создаётся при установке MySQL на компьютер:

3. Нажмём на Еnter , т.к. по умолчанию пользователь root, созданный при установке, не имеет пароля.

4. Проверим метод аутентификации, который используется для пользователя root.

Если пользователь использует аутентификацию с помощью плагина auth_socket, то изменим эту настройку на использование пустого пароля. Для этого введём команду:

Выполним команду FLUSH PRIVILEGES, которая применит внесённые изменения:

Создание базы данных

Создадим базу данных для веб-проекта test.ru. Для этого введем в командной строке MySQL введём следующую команду:

Если в базу данных testru необходимо загрузить дамп некоторой базы, находящийся, например, в файле backup.sql, то можно воспользоваться следующими инструкциями:

Для завершения работы с командной строкой MySQL выйдем из неё:

Настройка виртуальных хостов в Apache

В Ubuntu файлы настроек виртуальных хостов Apache распологаются в /etc/apache2/sites-available/*.conf. По умолчанию в Apache уже настроен один виртуальный хост. Его настройки лежат в файле 000-default.conf. Данный файл будем использовать в качестве примера.

Создадим копию файла 000-default.conf:

Отредактируем файл test.ru.conf, для этого можно воспользоваться, например, редактором nano:

Итоговое содержимое файла test.ru.conf:

Включим новый виртуальный хост с помощью утилиты a2ensite:

Перенаправление test.ru на локальный веб-сервер

Для того чтобы доменное имя test.ru было связано с локальным веб-сервером необходимо открыть файл hosts, расположенный по адресу C:\Windows\System32\drivers\etc и добавить в него строчку:

Команды для запуска и остановки веб-сервера

Для запуска Apache и MySQL необходимо ввести следующие команды:

Для остановки веб-сервера:

Для упрощения запуска и остановки веб-сервера можно создать bash скрипты start.sh и stop.sh.

Содержимое файла start.sh:

Содержимое файла stop.sh:

Вместо password необходимо ввести пароль, который установили для UNIX пользователя.

Запуск веб-сервера (./start.sh):

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

Длы проверки работоспособности веб-сервера установим на test.ru систему управления контентом, например, MODX Revolution.

Для этого скачаем со страницы Download MODX Revolution архив системы и распакуем его в директорию d:\Projects\test.ru\public_html\.

Для установки системы необходимо открыть мастер. Осуществляется это посредством ввода в строку поиска браузера адреса http://test.ru/setup. После этого ответим на все вопросы мастера и нажмём на кнопку «Установить».

Дождёмся окончания процесса установки и получим отчет об установке CMS MODX Revolution.

Статья Установка Apache, PHP, MySQL, phpMyAdmin

Pirnazar

Well-known member

Теперь доступна инструкция “Установка и настройка сервера Apache, PHP, MySQL, phpMyAdmin на Windows 10“. Она заменяет инструкцию, размещённую на этой странице. Инструкцию на этой странице следует считать устаревшей и больше неподдерживаемой (т.е. я больше не буду отвечать на вопросы, возникшие при использовании устаревшего мануала). Пожалуйста, пользуйтесь новым материалом, даже если у вас не Windows 10 (на все версии Windows веб-сервер устанавливается одинаково).

Локальный сервер необходим любому Web-разработчику. Существует довольно много пакетов “всё в одном”, включающих Apache, PHP, MySQL и другие элементы. Можно пользоваться ими, но, например, создатели PHP рекомендуют самостоятельно устанавливать и настраивать все компоненты, это позволяет исключить попадание на ваш компьютер злонамеренного кода. От себя добавлю, что самостоятельная установка и настройка компонентов позволяет использовать самые новые версии программ, не дожидаясь их добавления в пакеты.

Установка сервера включает в себя установку и настройку нескольких элементов:

  • сам сервер (Apache);
  • скриптовый язык PHP;
  • система управления базами данных MySQL;
  • веб-интерфейс для администрирования СУБД MySQL phpMyAdmin.

На самом деле самостоятельная установка и настройка не должна вызывать особых трудностей, но имеется ряд неочевидных моментов, которые могут отнять время. Данная статья расскажет о подробностях установки и возможных трудностях. Каталоги, в которые ставятся элементы сервера, отличаются от дефолтных (ниже есть объяснение, почему так сделано). Если вы будете точно придерживаться этой инструкции, то у вас всё обязательно заработает и это не займёт много времени.

Кстати, установка производиться на Windows 8.1, но, на самом деле, на других версиях Windows процесс абсолютно ничем не отличается.

1. Подготовительная стадия – скачивание дистрибутивов.

Будем устанавливать самые новые версии программ, скаченные с официальных сайтов.

Начнём мы с PHP и в дальнейшем станет ясно почему. Переходим на

Нас интересуют zip-архивы. Первое, что бросается в глаза, это то, что есть 32-битная (x86) и 64-битная (x64) версии. Если у Вас 64-битная версия ОС Windows, то можете выбрать любую из этих версий. Если у вас Windows 32-битная, то можно поставить только 32-битную версию PHP.

Я выбрал 64-битную версию. Хотя она и носит статус «экспериментальная», но никаких проблем со стабильностью или с дополнительными ошибками это не вызывает.

Выбираем версию VC11 x64 Thread Safe (на самом деле, разница для локального сервера между VC11 x64 Thread Safe и VC11 x64 Non Thread Safe несущественна, но с VC11 x64 Non Thread Safe у меня возникали проблемы при настройке сервера).

Пока происходит скачивание, смотрим на левую часть страницы и читаем буквально следующее:

Там можно поменять язык (язык влияет только на отображение сайта, а не на скачиваемые файлы) и выбрать файл 64- или 32-битный – точно такой же битности, какой вы хотите установить PHP.

Я выбрал 64-битный, т.е. VSU4vcredist_x64.exe

Что означает, что современные версии PHP не будут работать с Apache с официального сайта, который скомпилирован на старом компиляторе. Единственный выход для работы новых версий PHP, это Apache с сайта Apache Lounge.

Для скачивания Apache переходим по

Опять видим 32- и 64-битные версии. Я выбрал 64-битную.

Переходим к скачиванию MySQL.

Нас интересуют следующие файлы:

Windows (x86, 64-bit), ZIP Archive
Windows (x86, 32-bit), ZIP Archive

Они различаются битностью, скачиваем подходящий для вашей ОС.

Практически обязательным элементом сервера стал phpMyAdmin, его скачиваем с

При попытке запуска, Apache пожалуется на отсутствие файла MSVCP100.dll и запускаться откажется. Этот файл является частью C++ Redistributable Package 2010, поэтому заблаговременно скачиваем его по

(выбираем 32- или 64-битную версию).

Загружаемый файл будет иметь имя vcredist_x64.exe – точно такое же, как Visual C++ Redistributable for Visual Studio 2012 – тем не менее, это разные файлы.

Итог: мы имеем следующие файлы:

  • php-5.5.15-Win32-VC11-x64.zip
  • httpd-2.4.10-win64-VC11.zip
  • mysql-5.6.20-winx64.zip
  • phpMyAdmin-4.2.7.1-all-languages.zip
  • vcredist_x64.exe – 2 разных файла с одинаковым именем

Запустите и установите файлы vcredist_x64.exe – к ним мы возвращаться больше не будем.

2. Выбор структуры сервера.

Теперь всё готово, можно начинать.

Несколько слов о структуре нашего сервера.

На диске C создаём каталог Server, в нём создаём каталоги bin (сюда будем устанавливать Apache, PHP, MySQL) и data (здесь будет наш сайт и база данных).

Казалось бы, для чего это нужно? На самом деле, это упрощает бэкап. Например, папка binменяется очень редко и бэкапить её каждый день нет смысла. Напротив же, содержимое нашего сайта и баз данных может меняться ежедневно и имеет смысл бэкапить папку dataчасто. Когда мы обновляем файлы сервера, например, ставим новую версию PHP, то мы можем принудительно сделать копию bin и, в случае ошибок, без проблем откатиться на более старую версию.

Продолжим наши приготовления. В каталоге data создадим две папки:

  • DB (здесь будут храниться базы данных)
  • htdocs (здесь будут наши сайты)

3. Установка и настройка Apache.

В каталог bin распаковываем файлы Apache (из архива httpd-2.4.10-win64-VC11.zip), точнее нас интересует только папка Apache24.

После распаковки переходим в каталог c:ServerbinApache24conf и открываем файл httpd.conf любым текстовым редактором.

на
ServerName localhost

меняем
ServerRoot “c:/Apache24”

на
ServerRoot “c:/Server/bin/Apache24”

меняем
DocumentRoot “c:/Apache24/htdocs”

на
DocumentRoot “c:/Server/data/htdocs/”

и меняем
DirectoryIndex index.html

на
DirectoryIndex index.html index.php index.htm

Сохраняем и закрываем файл. Всё, настройка Apache завершена!

Переходим в каталог c:ServerbinApache24bin и запускаем httpd.exe

Теперь в браузере набираем

и видим следующее:

Это означает две вещи:

1. Apache работает

2. в каталоге c:Serverdatahtdocs нет ни одного файла.

Можете поиграться – добавить в каталог любые html-файлы – полноценный сервер работает.

Но, на самом деле, хотя Apache работает в данный момент, он ещё не установлен. Т.е. при закрытии консольного окна, служба Apache остановится. Чтобы этого не произошло необходимо провести установку.

Нам нужно открыть Командную строку в режиме администратора. Для этого:

1. Нажмите кнопку Пуск.

2. В поле поиска введите “командная строка”.

3. В списке результатов щелкните правой кнопкой “Командная строка” и выберите команду “Запуск от имени администратора”. Введите пароль администратора или подтверждение пароля, если появится соответствующий запрос.

В открывшееся досовское окно копируем:

Теперь служба MySQL будет запускаться при каждом запуске Windows, но в данный момент она ещё не запущена. Чтобы это сделать, в командной строке нужно набрать

или просто перезагрузить компьютер.

5. Установка и настройка PHP.

В папке c:Serverbin создаём каталог PHP и копируем в него содержимое архива php-5.5.15-Win32-VC11-x64.zip

В файле c:ServerbinApache24confhttpd.conf в самый конец добавляем строчки

И перезапускаем Apache

В каталоге c:Serverdatahtdocs создаём файл с названием i.php

Копируем в этот файл:

. Если вы видите тоже самое, что на картинке, значит PHP работает.

Настройка PHP происходит в файле php.ini. В zip-архивах, предназначенных для ручной установки и для обновлений, php.ini нет (это сделано специально, чтобы случайно не затереть ваш файл, с вашими уникальными настройками). Зато есть два других, которые называются php.ini-development и php.ini-production. Любой из них, при ручной установке, можно переименовать в php.ini и настраивать дальше. На локалхосте мы будет использовать php.ini-development.

Топ-пост этого месяца:  Google удовлетворен результатами продвижения HTTPS в своей выдаче

Открываем файл php.ini любым текстовым редактором, ищем строчку
; extension_dir = “ext”

и заменяем её на
extension_dir=”C:ServerbinPHPext”

т.е. мы разкоментировали строку (убрали точку с запятой в начале)

Теперь разкомментируем целую группу строк:

т.е. должно получиться:

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

6. Установка и настройка phpMyAdmin.

В каталог c:Serverdatahtdocs копируем содержимое архива phpMyAdmin-4.2.7.1-all-languages.zip. Переименовываем phpMyAdmin-4.2.7.1-all-languages в phpmyadmin (для лаконичности)

В каталоге c:Serverdatahtdocsphpmyadmin создаём папку config. В браузере открываем адрес

На вкладке “Обзор” нажимаем кнопку “Новый сервер”. На вкладке “Параметры сервера” ставим галочку в одном единственном пункте “Разрешать подключения без пароля” и нажимаем “Сохранить”

Происходит переход на вкладку “Обзор”, там ещё раз нажимаем «Сохранить».

Теперь из каталога c:Serverdatahtdocsphpmyadminconfig файл config.inc.php перемещаем в каталог c:Serverdatahtdocsphpmyadmin

Каталог config удаляем!

В браузере набираем

В качестве имя пользователя вводим root. Поле пароля оставляем пустым.

Если всё сделано правильно, то всё должно выглядеть так:

7. Использование сервера и бэкап данных.

В каталоге c:Serverdatahtdocs создавайте папки и файлы, например

c:Serverdatahtdocstestajax.php – этот файл, соответственно, будет доступен по адресу

Для создания полного бэкапа всех сайтов и баз данных достаточно скопировать каталог data.

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

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

В них и хранятся все настройки.

8. Дополнительная настройка PHP.

PHP в настоящее время очень мощный, гибкий, удобный инструмент. На локальном компьютере с помощью него можно решать разнообразные задачи, совсем не обязательно связанные с генерацией Web-страниц. При решении неординарных задач можно упереться в ограничения, установленные в настройках. Эти настройки содержаться в файле php.ini(c:ServerbinPHPphp.ini) Рассмотрим некоторые из них:
устанавливает максимальное количество памяти, которое может использовать скрипт

Менять эти настройки совершенно необязательно, но полезно о них знать.

9. Дополнительная настройка phpMyAdmin.

Мы уже настроили phpMyAdmin и большинству вполне достаточно базового функционала. Тем не менее, на стартовой странице phpMyAdmin есть надпись:

«Дополнительные возможности phpMyAdmin не настроены в полной мере, некоторые функции были отключены».

Новыми возможностями являются:

  • показ связей между (связанными) таблицами;
  • добавление информации о таблицах (начиная с версии 2.3.0 вы можете описывать в специальной таблице ‘table_info’ какая колонка будет показана во всплывающей подсказке при движении курсором над связанным ключом);
  • создание PDF-схемы (начиная с версии 2.3.0 вы можете в phpMyAdmin создавать PDF страницы, показывающие связи между вашими таблицами);
  • отображать комментарии столбцов (начиная с версии 2.3.0 вы можете делать комментарий с описанием каждого столбца для каждой таблицы. И они будут видны в «предварительном просмотре для печати». Начиная с версии 2.5.0, комментарии используются на собственных страницах таблиц и в режиме просмотра, показываясь как всплывающие подсказки над колонками (таблицы свойств) или встроены в заголовок таблицы в режиме просмотра. Они также могут быть показаны в дампе таблицы);
  • создавать закладки (начиная с версии 2.2.0, phpMyAdmin позволяет пользователям делать закладки на запросы. Это может быть полезно для часто используемых запросов);
  • история SQL-запросов (начиная с версии 2.5.0 вы можете сохранять вашу историю всех SQL запросов, которые были сделаны через интерфейс phpMyAdmin);
  • дизайнер (начиная с версии 2.10.0, доступен инструмент Дизайнер; он позволяет визуально управлять связями между таблицами);
  • информация о недавно использованных таблицах;
  • настройка интерфейса часто используемых таблиц;
  • слежение (начиная с версии 3.3.x доступен механизм слежения. Он помогает вам проследить каждую SQL команду, которая была выполнена phpMyAdmin’ом. Поддерживается запись работы с данными и запись команд. После включения, вы сможете делать версии таблиц);
  • пользовательские настройки (начиная с версии 3.4.x, phpMyAdmin позволяет пользователям задавать большинство настроек и сохранять их в базе данных);
  • настраиваемые меню (начиная с версии 4.1.0 вы можете создавать группы пользователей, которым будут доступны только назначенные пункты меню. Пользователь может быть определён в группу и будет видеть только пункты меню, доступные для его группы);
  • спрятать/показать пункты навигации (начиная с версии 4.1.0 вы можете спрятать/показать пункты в навигационном дереве).

Сейчас мы настроим эти дополнительные возможности в полной мере. Откройте phpMyAdmin и нажмите кнопку «Импорт». На открывшейся вкладке нажмите кнопку «Выберите файл».

В открывшееся окно браузера скопируйте строчку:


(т.е. мы выбрали файл create_tables.sql, находящийся в каталоге c:ServerdatahtdocsphpMyAdminexamples)

На страничке phpMyAdmin нажмите «ОК».

После успешного завершения импорта должна появиться новая база данных с названием phpmyadmin.

Перейдите на вкладку «Пользователи».

Нажмите «Добавить пользователя». В поле «Имя пользователя:» впишите pma

Вставьте какой-нибудь пароль, я использую простой пароль – цифра 1 (это локалхост!). В привилегиях менять ничего не надо, нажмите «ОК». Мы автоматически переходим на страничку со списком пользователей, где уже есть pma

Нажмите на «Редактирование привилегий» для данного пользователя. Найдите «Привилегии уровня базы данных». И в пункте «Добавить привилегии на следующую базу данных:» выберите базу данных с именем «phpmyadmin». На новой страничке во вкладке «Привилегии уровня базы данных» нажмите «Отметить все» и нажмите «ОК».

Открываем любым текстовым редактором файл config.inc.php (в директории c:ServerdatahtdocsphpMyAdmin) и добавьте туда следующие строчки.

Замечания:

  • в первой строчке пароль замените на свой, который вы вводили, когда создавали пользователя
  • строки можно вставлять в любое место в файле, главное, чтобы после $i++; и до символов ?>

Сохраняете файл. Выходите из phpMyAdmin – именно нажимаете кнопку «Выход» и логинитесь заново, а не просто открываете-закрываете страничку.

Несколько скриншотов новых функций:

Следующим шагом, после настройки и тестирования сайта на локалхосте, является выбор качественного и дешёвого интернет хостинга. Я перебрал довольно много решений и нашёл очень хороший вариант — 100 рублей в месяц! За эти деньги даётся профессиональный хостинг, с отличным аптаймом, с бесплатным доменом второго уровня в подарок (!), с 2 гигабайтами места на SSD диске, с неограниченным количеством баз данных, с возможностью подключать неограниченное количество новых доменов (платить придётся только за каждый новый домен — 139 рублей). Вообще, всего хорошего так много, что проще всего посмотреть это

Кстати, а ведь как здорово иметь собственное доменное имя! Хотя бы для того, чтобы сделать для себя красивый почтовый ящик, вместо чего-нибудь вроде vovan_pupkin_murom1995@mail.ru. Вот

можно найти свой собственный домен. Например, я получил бесплатно домен codeby.net, я могу делать почтовые ящики: admin@codeby.net, alex@codeby.net, al@codeby.net и так далее — количество ящиков ничем не ограничено!

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

, дающий бесплатный месяц, если хотите, можете воспользоваться.

ALEXEY
20.08.2014 в 05:12
Теперь доступна инструкция «Установка и настройка сервера Apache, PHP, MySQL, phpMyAdmin на Windows 10». Она заменяет инструкцию, размещённую на этой странице. Инструкцию на этой странице следует считать устаревшей и больше неподдерживаемой (т.е. я больше не буду отвечать на вопросы, возникшие при использовании устаревшего мануала. Пожалуйста, пользуйтесь новым материалом, даже если у вас не Windows 10 (на все версии Windows веб-сервер устанавливается одинаково).

Самые частые ошибки и вопросы при настройке и установке Apache, PHP, MySQL, phpMyAdmin – крайне рекомендуется к прочтение перед тем, как задать вопрос о своей проблеме.

А также рекомендуется к прочтению статья «Как установить ModSecurity (mod_security) на Apache».

Если у вас возник вопрос, крайне настоятельно рекомендую задать его в нашем с вами форуме, в специализированной ветке

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

ALEXEY
02.09.2014 в 07:10
Я уже не раз устанавливал сервер по вашей статье, но сейчас, ни с того, ни с сего, начались проблемы. А именно, при попытке зайти в phpMyAdmin появляется ошибка: «На этой странице обнаружена циклическая переадресация»; и адрес выглядит так:

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

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

Чтобы разобраться в ситуации, мне нужны ответы на следующие уточняющие вопросы-рекомендации:

1) есть ли в корневой директории (C:Serverdatahtdocs) или в каталоге phpMyAdmin файл .htacess? Если есть, то, скорее всего, проблема в том, что Вы туда записали.

2) Вносились ли изменения в исходный код phpMyAdmin? Пробовали ли Вы устанавливать новую «чистую» версию с сайта?

3) Попробуйте открывать phpMyAdmin в других браузерах, попробуйте почистить кукиз и кеш браузера.

4) Посмотрите файл C:WindowsSystem32Driversetchosts , даже если Вы этот файл не трогали, вирусы могли внести в него изменение.

5) Самый главный вопрос – это (циклическая переадресация) присутствует только при открытии phpMyAdmin? Другие страницы на Вашем сервере открываются нормально?

6) Попробуйте переименовать каталог pma (дайте ему любое другое название, чтобы там не встречалась эта последовательность «pma», например, сделайте имя «phpMyAdmin» или первоначальное «phpMyAdmin-4.2.8-all-languages».

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

ВЛАДИМИР
05.09.2014 в 17:04
1) Этот файл есть только в корневой директории (C:Serverdatahtdocs) и он принадлежит установленной CMS. Его содержимое не влияет на ситуацию, потому что, даже при полностью пустой директории (остается только папка pma), возникает, описанная мной проблема.
В папке с phpMyAdmin такого файла нет и, насколько я знаю, по умолчанию не должно быть.

2) Изменения в исходный код не вносились. Был только создан файл config.inc.php, согласно вашей инструкции.

3) Куки чистил. Открывал в разных браузерах. Проблема остается.

4) В файле hosts все нормально:
127.0.0.1 localhost
::1 localhost
127.0.0.1 rad.msn.com # Это строчка убирает рекламу в Skype. Ее отсутствие не решает проблему.

5) Другие страницы открываются нормально. Причем, если перейти по адресу:

, то проблема не возникает. Проблема только при обращении к каталогу.

6) При переименовании проблема остается.

7) Устанавливался WebMoney Keeper Classic 3.9.9.1, его удаление не помогает. Также, был установлен клиент Bitcoin, удаление которого, тоже не помогает.

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

ALEXEY
05.09.2014 в 17:29
Владимир, я бы заострил внимание на файле .htacess, который находится в корневой директории. У меня возникали ситуации, что действие этого файла не прекращалось, если его просто убрать из каталога (однотипные запросы кешировал то ли браузер, то ли сервер). Т.е. попробуйте его убрать и перезагрузите компьютер.

ВЛАДИМИР
05.09.2014 в 17:53
Да, действительно, после удаления файла .htaccess и перезагрузки компьютера все заработало. Но этот файл нужен для работы CMS.
Вот его содержимое:

.
Посмотрите, что может быть не так?

ALEXEY
05.09.2014 в 18:19
Владимир, регулярные выражения – это моё слабое место, но попробую.
Всё дело вот в этих строчках
RewriteCond % -d
RewriteCond % (.*)
RewriteRule (.+)[^/] %1/ [R=301,L]
Эти строки ко всем запросам каталогов добавляются слеши. В комментарии к этим строкам сказано, что они борются с неким багом mod_rewrite’s trailing slash. Я погуглил, но ничего внятного про этот баг не нашёл, кроме того, что ему 10 лет. У меня есть подозрения, что этот баг давно пофиксили и можно попробовать закомментировать эти строки.

ВЛАДИМИР
05.09.2014 в 18:30
Без этих строчек, при переходе по ссылке: localhost/pma/, происходит переход на страницу 404, самой CMS.

Попробую написать автору CMS.

ВЛАДИМИР
14.09.2014 в 13:08
Короче, если кому будет интересно. Блоговый движок Эгея (

) не воспринимает в корневой директории посторонние папки. На реальном хостинге PMA обычно находится в другой директории, поэтому все работает.

NIK
13.09.2014 в 20:20
Добавляю

вместо панели управления вижу код:
-> чистая страница,

то на странице так и отображается:

т.е. php не выполняется.

Все делал по инструкции.

В чем может быть проблема? Буду рад помощи

ALEXEY
17.11.2014 в 14:07
АЛЕКСАНДР, сервер Apache работает без PHP, это ошибка номер два из Списка самых частых ошибок.

Такого результата можно добиться, например, если в файл httpd.conf забыть добавить строчки:

PHPIniDir «C:/Server/bin/PHP»
AddHandler application/x-httpd-php .php
LoadModule php5_module «C:/Server/bin/PHP/php5apache2_4.dll»

Т.е. вернитесь к шагу Установка Apache, PHP, MySQL, phpMyAdmin и проделайте всё ещё раз внимательней.

АЛЕКСАНДР
18.11.2014 в 10:05
Alexey, я все делаю по инструкции:

В папке c:Serverbin создал каталог PHP и скопировал в него содержимое архива php-5.6.3-Win32-VC11-x64.zip (в инструкции php-5.5.15-Win32-VC11-x64.zip (не смог найти), но я пробовал и php-5.5.19-Win32-VC11-x64.zip).

В файле c:ServerbinApache24confhttpd.conf в самый конец добавил 3 строки.

В каталоге c:Serverdatahtdocs создал файл i.php (содержимое:

Но когда перехожу на страницу

Делал все это несколько раз.

Результат один: php не работает

Какие могут быть этому причины?

P.S. спасибо за помощь

ALEXEY
18.11.2014 в 10:37
АЛЕКСАНДР, Вы всё верно делаете, когда выбираете самые последние версии PHP.
У Вас Apache тоже 64-битный? Apache и PHP должны быть одной битности. После внесения изменений, не забывайте сохранить конфигурационный файл httpd.conf, а сервер обязательно перезапускайте.

В инструкции это есть, но на всякий случай скопирую сюда ещё раз с оф. сайта:

The VC11 builds require to have the Visual C++ Redistributable for Visual Studio 2012 x86 or x64 installed.

Т.е. у Вас должен быть установлен распространяемый Visual C++ для Visual Studio 2012 x86 или x64

Если всё-всё это сделано, то пишите сюда опять – будем разбираться дальше.

СЕРГЕЙ
03.12.2014 в 22:50
Подскажите как быть с этим? mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:Server

ALEXEY
05.12.2014 в 05:16
СЕРГЕЙ, это не ошибка сервера. Это предупреждение со стороны PHP. Во-первых, это означает, что и сервер и PHP работают нормально, и версия PHP у Вас свежая.

Во-вторых, само предупреждение вызвано тем, что в скриптах, которые Вы запускаете на своём локальном сервере, используется устаревшая функция mysql_connect().

Чтобы убрать это предупреждение нужно: а) обновить ваши скрипты до последней версии; б) если Вы сами написали этот скрипт, то прочитайте документацию по PDO и перепешите скрипты в той части, где они обращаются к базам данных без использования устаревших функций.

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

АДАМ
06.12.2014 в 12:06
Когда вставляю «c:Serverbinmysql-5.6binmysqld» –install в командную строку, пишет: системе не удается найти данный путь.

АДАМ
06.12.2014 в 12:19
Извиняюсь, нашел решение. Собственная невнимательность(

АДАМ
06.12.2014 в 13:10
А вообще спасибо за инструкцию! Единственное, что помогло создать локальный сервер. Наверн потому,что у меня Win 8.1, а в инете находил всё на др. версиях Win.

ALEXEY
06.12.2014 в 14:05
На всех версиях Windows последовательность действий абсолютно одинаковая. Всё дело в инструкциях.

ВЛАДИМИР
20.12.2014 в 23:46
Здравствуйте.

У меня при установке phpMyAdmin возникла проблема:

Что это и, как с этим бороться?

P.S. Делал все по инструкции.

ВЛАДИМИР
21.12.2014 в 00:06

И Капитан Очевидность предлагает следующие решения:

1) пользоваться phpMyAdmin из ветки 4.2,

2) подождать пока починят.

ВЛАДИМИР
21.12.2014 в 06:51
Спасибо. Понятно.

Непонятно только, как они могли пустить в релиз версию, которую даже установить нереально?

Или реально? Может есть какие-то обходные пути?

ALEXEY
21.12.2014 в 07:02
Владимир, функцией по настройке phpMyAdmin через графический интерфейс пользуются, пожалуй, один раз в жизни. После этого просто сохраняют файл config.inc.php и, при обновлении версий, просто заменяют папку phpMyAdmin на новую и добавляют туда сохранённый файл config.inc.php – очень быстро, занимает, примерно, секунду.

Именно поэтому такая ошибка и проскочила, и, обратите внимание, тикет уже пять дней висит без ответа – никому не интересно, и вообще мало кто сталкивася с этой проблемой.

Начать пользоваться phpMyAdmin 4.3.2 очень легко:

1) распакуйте содержимое архив с phpMyAdmin;

2) добавьте туда файл с настройками config.inc.php. Если Вы не сохранили свой файл, то вот держите мой.

ВЛАДИМИР
21.12.2014 в 07:09
Спасибо. Сейчас попробую.

ВЛАДИМИР
21.12.2014 в 07:30
Спасибо. Работает.

Подскажите. А, как я все таки могу поставить пароль на root?

Прописал его здесь:

Запретил вход без пароля:

Ввожу логин и пароль, но вылезает ошибка: «Невозможно подключиться к серверу MySQL».

ALEXEY
21.12.2014 в 07:55
Владимир, Вы имеете ввиду пароль для MySQL? Или Вы имеете ввиду, чтобы пользователь root в MySQL был без пароля, а для входа в phpMyAdmin нужен был пароль?

Мне кажется, Вы неправильно понимаете смысл этой конфигурационной строки:

Пара user/password, которую phpMyAdmin использует для соединения с MySQL-сервером. Эта пара user/password не нужна, если используется HTTP или cookie-аутентификация – в этом случае она должна быть пустой
Т.е. в этой строке:

пароль для MySQL, а не для phpMyAdmin. И, как следует из документации, всё-равно туда писать ничего не нужно.

Если задача в том, чтобы вход в PMA без пароля был невозможен, то нужно:

1) задать пароль для пользователя root в MySQL.

2) перейти к настройке PMA, т.к. мой конфигурационный файл не подойдёт. Для настройки Вы можете скачать предыдущую версию PMA, сохранить файл с настройками и уже установить последнюю версию PMA для работы.

Предупреждение, на всякий случай: если сейчас на вашем локальном сервере уже работают сайты или скрипты, то в их конфигурацию, возможно, придётся вносить изменения – нужно будет прописывать пароль, который Вы установите для сервера MySQL.

ВЛАДИМИР
21.12.2014 в 08:41
Да, мне нужно, чтобы вход в PMA без пароля был невозможен.

Поэтому вопрос. Как задать пароль для пользователя root в MySQL? Остальное вроде пока понятно.

ВЛАДИМИР
21.12.2014 в 09:06
Отбой. Вроде все получилось.

Уведомление: Самые частые ошибки и вопросы при настройке и установке Apache, PHP, MySQL, phpMyAdmin | WebWare.biz
TOOUUR
30.01.2015 в 00:07
Добрый вечер,

а куда копать, если после установки и настройки апачи локалхост не работает вообще? вместо этого автоматически скачивается файл «download»

ЕКАТЕРИНА
30.01.2015 в 17:30
Огромное Вам спасибо! Если бы сама искала, почему не настраивается или не устанавливается, то сутки бы потратила, а так все быстро получилось установить и настроить.

ALEXEY
30.01.2015 в 20:59
Екатерина, спасибо на добром слове – мне каждый раз очень приятно.

РУСЛАН
17.02.2015 в 15:02
Добрый день, Алексей.

Когда устанавливал всё по инструкции, при входе в phpmyadmin, вставил в поле «пользователь» – root, а «пароль» оставил пустым. Но, когда нажимаю на «далее» (или что там было, забыл), пишет, что не доступен PHP, вроде так.

Удалил всё, пытался установить всё заново, теперь, при:

c:ServerbinApache24binhttpd.exe -k install

в командной строке, пишет, что он уже установлен.

Ладно, не обратил на это внимание, затем, когда запускаю ApacheMonitor и нажимаю на «Start» сервера «Apache 2.4», он мне выдает, мол:

The requet operation has failed!

Что не так? Версии всего необходимого у меня другие:

если это имеет значения. Помогите, пожалуйста.

ALEXEY
17.02.2015 в 16:23
Руслан, здравствуйте! Ошибка в конфигурационном файле Apache (httpd.conf).

Если Вы устанавливали в те папки, как сказано в инструкции, значит что-то пропустили при настройке httpd.conf. Вы правильно делаете, что выбираете самые последние версии, главное, чтобы они все были одной битности. Например, у Вас все программы 32-битные, т.е. всё нормально.

Попробуйте делать поэтапно, с проверками после каждого шага. Например, установили Apache. Не нужно сразу ставить PHP. Проверьте, запускается ли сервер и открывается ли

. Если всё впорядке, то продолжайте. Если нужно, я могу выложить здесь все конфигурационные файлы.

РУСЛАН
17.02.2015 в 18:38
Спасибо, но, ещё вопрос.

Если я ставлю всё не на диск «C», а на «D», и в конфигурационных файлах везде, вместо «С», ставлю «D» – это не влияет на работоспособность?

ALEXEY
17.02.2015 в 18:52
Теоретически – нет. Apache и остальным компанентам всё-равно где быть установленными: любой диск, любые каталоги. Для запуска Apache есть только одно условие – правильно настроенный httpd.conf.

А на практике – Вы сами видите. Причём ошибка именно в тех директивах, о которых говорится в этой инструкции.

РУСЛАН
17.02.2015 в 19:03
Я вроде везде правильно заменяю строки в httpd.conf, но всё равно, выходи ошибка:

The requet operation has failed!

при «Start» в «ApacheMonitor».

Можете, пожалуйста, скинуть свои конфигурации httpd.conf.

РУСЛАН
17.02.2015 в 19:06
Можно ли удалить всё, что устанавливал. Ну, имею ввиду, удалить даже то, что устанавливал командой:

c:ServerbinApache24binhttpd.exe -k install

(Ставил httpd.exe на авто-запуск).

ALEXEY
17.02.2015 в 19:10
Все конфигурационные файлы.

c:ServerbinApache24binhttpd.exe -k uninstall

РУСЛАН
17.02.2015 в 20:31
С этим разобрался. Делаю всё по инструкции, но, как описывал кто-то выше, при входе в phpmyadmin вписал логин «root», пароль оставил пустым, нажимаю на «Вперёд» – выдает:


Невозможно подключиться к серверу MySQL

Уже не раз переустанавливал всё.

А, кстати, при установке MySQL в командной строке, когда вводил:

Выдал, что он уже установлен, после чего прописал:

net start mysql

На что он мне выдал:

Системная ошибка 2.

Не удается найти указанный файл.

Решил попробовать удалить MySQL путем:

На что он снова мне выдал, что он уже установлен…

В чем дело? Замучился уже…

ALEXEY
17.02.2015 в 20:37
Удаляется MySQL так:

Вы говорили, что только меняли диск – но ведь у Вас и ещё и в каталог Web поставлено.

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

РУСЛАН
17.02.2015 в 20:44
Ура, спасибо!

Удаление и установка MySQL заново решила данную проблему.

ТИМУР
01.03.2015 в 18:09
Здравствуйте, я установил сервер по вашей инструкции, но у меня возникла проблема.

Когда-то у меня стоял сервер Appserv, его характеристики таковы:
AppServ 2.5.10
Apache 2.2.8
PHP 5.2.6
MySQL 5.0.51b
phpMyAdmin-2.10.3
Тогда я экспортировал базу с phpmyadmin, и сейчас, когда установил более новые версии, при импорте выдает ошибку:

Топ-пост этого месяца:  Как связать типы постов «product» (от woocommerce) и «club» (свой кастомный)

SQL запрос:
T SQL_MODE=»NO_AUTO_VALUE_ON_ZERO»;

Ответ MySQL:
#1064 — You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘T SQL_MODE=»NO_AUTO_VALUE_ON_ZERO»‘ at line 1

Сейчас версия mysql 5-я, phpmyadmin 4-я.

ALEXEY
01.03.2015 в 18:18
Что-то похожее бывало и у меня, но деталей не припомню. Попробуйте так:

1) сделайте резервную копию Вашей базы данных;

2) откройте резервный файл любым текстовым редактором (там обычный текстовый файл в виде MySQL-запросов. Конечно, если он не в архиве. Если в архиве, то предварительно распакуйте. После окончания процедуры запаковывать снова необязательно);

3) Удалите самую первую строчку. Сохраните и закройте файл.

4) Попробуйте импортировать.

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

ТИМУР
02.03.2015 в 19:50
Сделал, как вы и сказали. Удалил первую строку: SET SQL_MODE=»NO_AUTO_VALUE_ON_ZERO»; Далее импортировал, после чего он мне выдает, мол ошибка с: CREATE TABLE IF NOT EXISTS `admins` ( И его удалил, но снова ошибка, выдает строку за строкой… Вот всё, что находится в бд.

ALEXEY
02.03.2015 в 20:10
Я убрал отсюда содержимое базы, файл, который я сделал из Ваших данных и который успешно смог импортировать в базу данных я отправил Вам на почту.

ТИМУР
03.03.2015 в 13:10
База импортировалась успешно, спасибо вам большое!

У меня ещё один вопрос.

Как можно проверить битность phpmyadmin? Я скачал, вроде бы, последнюю верию с

, но всё равно возникают некие проблемы. Когда регистрирую нового пользователя как рут администратора, или же обычного пользователя, данные не заносятся в базу…

ALEXEY
03.03.2015 в 13:43
phpMyAdmin – это просто PHP-скрипт (точнее, множество PHP-скриптов). Как и у любого PHP-скрипта, к phpMyAdmin не применимо такое понятие как «битность». Проще говоря, у Вас точно сказалась правильная версия, поскольку других не бывает.

Про пользователей в базе данных я не понял. Посмотреть список пользователей в phpMyAdmin можно во вкладке «Пользователи» (нужно перейти на главную страницу и там будет видна эта вкладка). Чтобы настроить права разных пользователей нужно на них кликнуть – там дальше всё довольно понятно.

Физически, конечно, данные о пользователях хранятся в базе данных. Я подозреваю, что Вы смотрите не там. Нужно смотреть БД под названием mysql, а в ней есть две таблицы user (здесь пользователи с полными привилегиями) и таблица db (здесь пользователи с ограниченными привилегиями).

Меня только что посетила догадка, что Вы создаёте пользователей через панель phpMyAdmin, и ожидаете их появления в тех таблицах, которые Вы импортировали (т.е. пользователей и администраторов игры). Если это так, то это очень неверно и это выходит за рамки установки и настройки сервера. За помощью обратитесь к автору скрипта, который работает с базой данных.

ТИМУР
03.03.2015 в 14:17
При установке скрипта сайта, которую я устанавливаю, есть пункт, где нужно указать имя рут администратора. Я ввел имя, пароль и е-майл, и после установки пытаюсь залогиниться на сайте, на что он мне пишет, что пользователь с данным именем не найден. Вот и задумываюсь, из-за чего он криво установился и не записывает ничего в базу…

Когда у меня стояла Вин хп х86, я поставил себе аппсерв 2.5.10. Он работал отлично, не было никаких проблем. Недавно перешел на Вин 7 х86 и поставил новые версии апаче, пхп, мускул и пхпмайадмин, после чего начался весь этот бред.

ALEXEY
03.03.2015 в 17:19
Эта проблема для специализированного форума по игре – ни сервер, ни ОС здесь не при чём.

Самые распространённые ошибки, из-за которых не работают готовые скрипты:

неверно прописаны имя и (или) пароль и (или) хост пользователя для подключения базы данных
вышеуказанные имя/пароль/хост вообще не прописаны
неверно указано название базы данных
Почти всегда что-то из первых трёх пунктов. Если «раньше работало, а теперь не работает», значит сейчас при установки сервера, например, задали новый пароль рута для подключения к БД, или импортировали в БД с другим названием и т.д.

«Экзотическими» причинами неработы скриптов могут быть отсутствие необходимого модуля PHP, не подходящая версия PHP и т.д.

ТИМУР
06.03.2015 в 15:45
Ещё кое что хотел спросить.

– Влияет ли то, что нет пароля root в phpmyadmin на данную проблему?

– Влияет ли расположение сервера на другом диске, кроме диска С, на проблему?

Проблема остается, все же… Сотни раз переустанавливал всё, и решил залезть в логи.

Вот что было в логах Apache (Error):

[Fri Mar 06 00:00:32.986032 2015] [mpm_winnt:notice] [pid 1784:tid 368] AH00455: Apache/2.4.12 (Win32) PHP/5.6.5 configured — resuming normal operations
[Fri Mar 06 00:00:32.986032 2015] [mpm_winnt:notice] [pid 1784:tid 368] AH00456: Apache Lounge VC11 Server built: Jan 28 2015 16:48:40
[Fri Mar 06 00:00:32.986032 2015] [core:notice] [pid 1784:tid 368] AH00094: Command line: ‘D:\Server\bin\Apache24\bin\httpd.exe -d D:/Server/bin/Apache24’
[Fri Mar 06 00:00:32.986032 2015] [mpm_winnt:notice] [pid 1784:tid 368] AH00418: Parent: Created child process 1996
PHP Warning: PHP Startup: in Unknown on line 0
PHP Warning: PHP Startup: in Unknown on line 0
PHP Warning: PHP Startup: in Unknown on line 0
PHP Warning: PHP Startup: in Unknown on line 0
PHP Warning: PHP Startup: in Unknown on line 0
PHP Warning: PHP Startup: in Unknown on line 0
PHP Warning: PHP Startup: in Unknown on line 0
PHP Warning: PHP Startup: in Unknown on line 0
PHP Warning: PHP Startup: in Unknown on line 0
PHP Warning: PHP Startup: in Unknown on line 0
PHP Warning: PHP Startup: in Unknown on line 0
[Thu Jan 01 00:00:33.875234 2015] [mpm_winnt:notice] [pid 1996:tid 304] AH00354: Child: Starting 64 worker threads.
[Fri Mar 06 13:48:38.026815 2015] [core:error] [pid 1996:tid 836] [client 94.141.70.136:55769] AH00126: Invalid URI in request vTxc5tyxa6x8axd0x98xa0xccxf0xb7xb2x14xf0x01x10xa9x0fv dir.txt
В домашнем каталоге появится файл dir.txt, загрузите его на любой файлообменник, а ссылку сюда.

Если все файлы на месте, то значит дело в том, что в инструкции что-то уже устарело. Как минимум, нужно поставить Visual C++ Redistributable for Visual Studio 2015 RC, а ещё лучше пользоваться актуальной инструкцией Установка и настройка сервера Apache, PHP, MySQL, phpMyAdmin на Windows 10, про которую красными буквами в нескольких местах написано.

YURI
07.07.2015 в 20:19
У меня стоит Visual C++ Redistributable for Visual Studio 2015 RC

И я все снес, что было и стал делать по новой инструкции. Та же фигня.

WEBWARE TEAM
06.07.2015 в 06:42
Здравствуйте! Эта инструкция считается устаревший. Есть новая инструкция здесь: https://codeby.net/blogs/?p=3215. Но причина ошибки не в этом.

Ошибка вызвана тем, что каталог с PHP Вы положили в какую-то другую папку, а не ту, которая рекомендуется в инструкции (C:ServerbinPHP).

YURI
07.07.2015 в 19:28
Нет. Именно C:SerberbinPHP

YURI
07.07.2015 в 19:41
т.е. Server, конечно

YURI
07.07.2015 в 20:39
Все, я нашел проблему. Заработало.

WEBWARE TEAM
07.07.2015 в 20:41
Напишите, пожалуйста, для всех – в чём была проблема?

YURI
07.07.2015 в 20:46
Я каким-то образом не заметил в новой статье, что нужен еще Visual C++ Redistributable for Visual Studio 2012

Проморгал глазом, подумал, что 2010, как и в этой статье. У меня стоял 2015 и 2010, а 2012 не было. Только поставил — сразу пашет.

Локальный веб сервер Linux-Apache2-MySQL-PHP(LAMP)

Возникло острое желание создать локальный веб сервер с сайтом на Ubuntu, до этого был опыт использования open server для Windows, но он не портирован на Linux. Не теряя ни минуты залез в гугл, и что я увидел? Инструкций сотни, одна краше другой, но вот беда — не работает. Либо написаны для более ранних версий операционной системы, либо авторы просто копировали друг друга даже не проверяя. И каждую проблему приходилось решать часами.

Пройдя через все круги ада настройки, я нашел более универсальное и легкое в установке средство — xampp. Устанавливается в два клика, скачать можно отсюда . Устанавливайте лучше его.

Но раз я уже поставил себе отдельно lamp и phpmyadmin, то расскажу, как я это сделал, поехали!
Система: linux Ubuntu 16.04 LTS
Дата: Июль 2020 года

Для локального веб сервера нужны три главных компонента — Apach, MySQL и PHP.

Версии программного обеспечения на момент написания инструкции:
Apache2 — 2.4.18
MySQL — 5.7.12
PHP — 7.0

Проще всего будет установить lamp — Linux, Apache, MySQL, PHP пакет с помощью утилиты tasksel. Все в одном, очень приятно.

1) Устанавливаем tasksel, если его нет в системе.

2) Теперь непосредственно сам lamp.

Во время установки MySQL предложит нам выбрать имя пользователя и пароль, стандартная процедура аутентификации.
После завершения можно проверить работоспособность, в браузере заходим на адрес локального сервера: localhost и видим стартовую страницу Apache — дело сделано.

Команды управления сервером Apache:

Минимум для локального сервера у нас готов, есть Apache и база данных. Можно создавать базу, цеплять к ней сайт и заниматься любимым делом. Ее можно создать напрямую в MySQL через консоль, а можно подсластить себе жизнь и воспользоваться графическим интерфейсом. Их на выбор целая куча, но мы будем ставить самый модный — phpmyadmin.

3) Установка phpmyadmin.

Версия на момент написания инструкции: PhpMyAdmin — 4.5.4.1

Во время установки:
— выбираем apache2 и жмакаем enter;
— на вопрос «настроить базу данных phpmyadmin с помощью dbconfig-common?» отвечаем «да»;
— запрашивается пароль от базы данных — вводим пароль от MySQL, который выбрали в пункте 2;
— перезагружаем апач — sudo service apache2 reload

4) Создание базы данных для сайта.

Заходим в админку localhost/phpmyadmin. Перед нами список баз данных и обширные возможности по их администрированию, они нам пока не интересны. Вводим имя новой базы, например siteDB и жмем create. В принципе, все. Этого достаточно, переходим к настройке WordPress.

5) Настройка WordPress.

Версия на момент написания инструкции: WordPress — 4.5.3

Давайте сразу за компанию установим CMS. Чтобы появился локальный сайт нужно создать директорию /var/www/html/site , т.к. это область защищена от записи, это нужно сделать с помощью наутилуса, открытого с правами администратора.

Создаем директорию и распаковываем туда WordPress, скачанный с официального сайта . Заходим на наш сайтик localhost/site — видим приветствие от вордпреса, отвечаем на вопросы. В качестве базы данных выбираем созданную в 4 пункте, аккаунт и пароль от MySQL из 2 пункта. Вордпресс пожалуется, что директория с сайтом защищена от записи и предложит нам самим создать файлик wp-config.php, при этом предложит его содержимое. Копируем и создаем файл.

Возвращаемся на сайт продолжаем отвечать на вопросы и совсем скоро попадаем в админку вордпрес, поздравляю, наш сайт готов!

Возможные проблемы:
— При переходе по адресу localhost/phpmyadmin ошибка «Not found»
Решение:
Внесите в файл /etc/apache2/apache2.conf строчку Include /etc/phpmyadmin/apache.conf
Перезагрузите апач — sudo service apache2 restart

— Пустая страница по адресу localhost/phpmyadmin
Решение:
Убедитесь, что установлены пакеты php-mbstring и php-gettext .

Заключение

На этом все, локальный веб сервер установлен и готов к работе! А мы в свое очередь готовы к покорению новой дисциплины: веб-программирование. Спасибо за внимание!

Apache локальный сайт

Для настройки Apache необходимо отредактировать файл httpd.conf , который является основным конфигурационным файлом Web-сервера.

Файл httpd.conf расположен в каталоге C:\Program Files\Apache Group\Apache2\conf\ . Его необходимо открыть в текстовом редакторе Блокнот и внести следующие поправки:

Усвойте сразу: чтобы та или иная строка или блок кода в файле httpd.conf оказывали влияние на работу Web-сервера или вносили в нее те или иные изменения, необходимо, чтобы в начале строки отсутствовал символ # (решетка).

Если символ # стоит в начале строки, то она закомментированна, и, следовательно, не активна.

Если же символ # отсутствует, то строка раскомментированна, и код вносит ту или иную поправку в работу Web-сервера Apache .

В поле ServerAdmin следует указать адрес электронной почты администратора сервера:

Он будет показываться в окне браузера в сообщениях об ошибке сервера.

В поле ServerName (имя сервера) следует ввести имя сервера.

DocumentRoot «C:/Program Files/Apache Group/Apache2/htdocs»

И укажите директорию управления сайтами. В ней будут храниться HTML- и PHP-файлы:

Options FollowSymLinks
AllowOverride None

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

Options Includes Indexes FollowSymLinks
AllowOverride All

Найдите строки (они следуют друг за другом)

Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all

И замените их на нижеследующие:

Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all

После директивы Drectorylndex к уже существующим:

DirectoryIndex index.html index.html.var

необходимо добавить имена следующих так называемых индексных файлов:

DirectoryIndex index.html index.html.var index.phtml index.php

Если предполагается хранение CGI-скриптов в директории, отличной от установленной по умолчанию, то следует изменить директиву:

ScriptAlias /cgi-bin/ «C:/Program Files/Apache Group/Apache2/cgi-bin/»

ScriptAlias /cgi-bin/ «d:/main/cgi-bin»
ScriptAlias «/php_dir/» «C:/Program Files/php/»

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

По умолчанию это следующий блок:

AllowOverride None
Options None
Order allow,deny
Allow from all

AllowOverride None
Options ExecCGI

Параметр AddHandler server-parsed следует установить следующим образом:

AddHandler server-parsed .shtml

На этом основной этап установки и настройки Web-сервера Apache завершен!

Теперь необходимо перезапустить сервер Apache и проверить его работоспособность.

Для этого в директории d:/main/html следует создать файл index.html , поместив в него текст html-страницы. Для создания html-файла можно воспользоваться текстовым редактором Блокнот:

Если при наборе в адресной строке браузера запроса http://localhost/index.html отображается содержимое тестовой страницы — настройка конфигурационного файла прошла успешно .

После настройки основных параметров Apache следует настроить виртуальные хосты, которые обычно расположены в конце файла httpd.conf:

Следует раскомментировать строку:

Далее следует заменить код, который находится между тегами

и на тот, который приведен ниже (в комментариях над параметрами приведены их описания):

Apache локальный сайт

Продолжаем тему сайтостроя. Чем дальше, тем сложнее 🙂 Полное содержание серии — в конце статьи.

Напоминаю, Apache – это веб-сервер. Он слушает определенные порты, и получив корректный запрос посылает контент просящему. Это очень общее описание работы мощной программы. За всеми подробностями – в инет. Могу добавить по минимуму следующее: http-протокол работает по 80-ому порту, так принято по умолчанию. Вот его веб-сервер и слушает. Могут использоваться другие порты для передачи http-трафика, их обычно настраивают для работы с прокси-серверами.

Прежде чем грузить вас техническими дебрями веб-сервера, стоит упомянуть о таких переходных решениях, как Денвер и XAMPP. К сказанному в Википедии добавить почти нечего. Скачали, поставили — пользуемся. Ничего сложного. Готовые пакеты — это неплохо, но я считаю эти решения переходными, потому как нормальный веб-мастер должен уметь сам разворачивать окружение и управлять им. Это мое мнение.

Обратно к теме. Apache изначально написан под Linux и на Windows мы имеем портированное приложение. Поэтому все его настройки описаны в текстовых conf-файлах, а не в реестре. И тут мы как бы плавно переходим к вопросу, какой дистрибутив Apache качать. По логике, нужна та же версия, что и вашего хостера, чтобы не было потом вопросов, почему не так работает сервер. Но «порты» делаются с задержкой после выхода новой версии, поэтому найдите на странице знакомое слово «Windows» и скачайте что-нибудь 🙂

Предположим, скачать и установить Apache вам удалось. У сервера множество настроек, которые описаны в нескольких конфигурационных файлах. Обычно всеми настройками за пределами сайта ведает хостер, а внутри сайта – админ сайта.

Настройки сервера

Если вы поднимаете свой веб-сервер (заботы хостера), вам следует изучить тему, как настроить Apache для этой работы. В статье возьмем простой вариант разработки сайта на локальной машине (localhost), т.е. веб-сервер и сайт у вас на одном компе, работать с сайтом вы будете тоже на нем. Тогда настройка для сайта в Apache будет выглядеть так:

В строках начинающихся с # записаны комментарии (согласно синтаксиса конфигов Linux). Обратите внимание на регистр букв и куда слешы в путях направлены. Это тоже правила Линухи. Внимательно изучите этот пример. Он простой, но много объясняет по части работы веб-сервера.

После внесения изменений нужно перезапустить сервер. Под Видной это делается либо через консоль управления Службами либо через маленькую программулину ApacheMonitor, которая идет в пакете с сервером. Если сервак не запустится, значит скорее всего ошибка в конфиге, посмотрите логи в [..\Apache2.2\logs\] .

Если все правильно, то через браузер обращаемся на http://localhost и получаем главную страницу сайта из каталога [d:\web\site] или содержимое этого каталога, если страницы нет.

Если вы хотите указать отличное от localhost имя сайта, например «site.ru», тогда в Виндовском hosts пропишите соответствие «127.0.0.1 site.ru«. Таким образом все обращения браузера к «site.ru» пойдут на «местный» адрес (127.0.0.1 – это служебный адрес сетевой карты на любом компе). Поднятый на компе веб-сервер получит запрос и ответит браузеру. Если вы здесь ничего не поняли, то либо в инет за ликбезом либо просто сделайте так, как указано во вставке, и ходите на localhost.

Видите разницу: DNS-имя сайта — «localhost», хотя каталог сайта «site»? Разберитесь самостоятельно, что к чему, или почитайте в статье «О доменах и сайтах. Виртуальный хостинг». Это все, что я могу сказать вам о настройке веб-сервера за пределами сайта. Более подробно о настройках ядра Apache читайте здесь и на просторах интернета.

Настройки сайта

Настройки каталогов сайта описываются в .htaccess. Родительский .htaccess распространяется на вложенные каталоги. Т.о. чтобы отменить какую-то настройку родителя, нужно создать свой .htaccess в каталоге и описать в нем новое значение. Главным файлом настроек считается .htaccess в корне сайта. При обращении к какому-либо каталогу, Apache ищет в нем файл настроек или читает родительский. Внесенные изменения применяются сразу, сервер/браузер перезапускать не надо.

Некоторые настройки сайта:

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

Так вы указываете веб-серверу, что html-файлы нужно прогонять через PHP-препроцессор. Сейчас это вам мало что говорит, просто запомните настройку, возможно она пригодится. Учтите, что такая директива в главном .htaccess замедлит ответ сервера, т.к. все html-файлы сайта будут проходить через PHP.

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

Можно/нельзя выдать содержимое каталога, если нет главной страницы. Пишется либо «+» либо «-«. Эту опцию можно задать в настойках ядра Apache. И если разрешена ее перезапись (директива AllowOverride, см. выше), то значение опции можно так же задавать в настройках сайта. Чтобы не гадать, что задано в настройках ядра, лучше явно ее описывать в настройках сайта.

C этой опцией вы уже знакомы, разрешаем включения на стороне сервера (SSI) посредством mod_include. Допускается запись опций в одной строке, типа: «Options -Indexes Includes«

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

Пароль на каталог. Защита админки

Админский каталог должен быть защищен обязательной аутентификацией. Запрос пароля можно намутить через скрипт с выдачей в браузер или просто использовать HTTP-аутентификацию средствами веб-сервера. Для этого в защищаемом каталоге создаем свой .htaccess:

Собственно пояснять тут нечего, последняя строка закоментирована, это пример. Другой вопрос, как создать сам файл пароля, .password. Кстати, имя файла может быть любым. Через консоль Windows запустите файл [..\Apache2.2\bin\ htpasswd.exe] . Запуск без параметров выдаст инструкцию по применению 🙂

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

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

Всем, кого нет в списке, сервер ответит «403 Forbidden«. Практический плюс: такой подход позволит снизить нагрузку на сервер во время брутфорсной атаки на пароль админа. Минус защиты в том, что у вас должен быть белый (постоянный) ip-ник, иначе при каждой смене адреса придется лазить в файл конфига. Еще следует учесть, что ваш реальный ip-адрес может быть скрыт за NAT, следовательно разрешение будет дано любой машине за тем же NAT. Но это все равно лучше, чем ничего.

Бонус

Есть некоторые тонкости в настройках сайта. Вы знаете, что главный .htaccess распространяется на вложенные каталоги. Допустим в нем описано:

DirectoryIndex index.php
Options -Indexes

Что дает следующее: попытка зайти через браузер во вложенный каталог, например [../images], закончится ошибкой «403: Доступ запрещен«. Во вложенном каталоге нет ни своего .htaccess, ни index.php, а чтение каталога запрещено «-Indexes».

Если переписать директиву на «DirectoryIndex /index.php», тогда обращение к любому каталогу будет перенаправляться на главный index.php. Это решает проблему с подкаталогами и ошибкой 403, но тогда игнорируются индексные страницы во всех подкаталогах. К примеру, админка может иметь свой index.php но вы его не увидите. Выход, в главном .htaccess описать:

Слеш в конце – это указание искать индексную страницу на уровень выше. Тогда если каталог не имеет своей главной страницы, в браузер будет выдана страница родителя.. или родителя родителя %) Короче, ближайший index.php. Конечно, можно так не заморачиваться, пусть юзер видит «403: Forbidden«, если залез не туда, и пусть логи забиваются ненужной информацией. Дело ваше 🙂

Еще бонус

deny from all
(конфиг в том же каталоге, где и файл)

можно запретить обращение через бродилку к указанному файлу. Где это использовать, решайте сами. Скажу лишь, что в настройках веб-сервера скорее всего запрещен доступ к любым . htaccess, но вдруг ваш хостер – раздолбай? Делайте выводы 🙂

Бонус 3

Где-то в 10.x версиях Оперы был глюк – браузер по ссылке открывал rar-файл, выдавая крякозяблы, вместо того, чтобы загрузить его на диск. Это лечилось настройкой браузера со стороны пользователя, но есть и другой вариант, «админский»:

# настройка принудительного сохранения файлов, которые не должны открываться в браузере
AddType application/octet-stream .rar .avi .pdf

Можно дописать свои расширения. Я экспериментировал в Opera 11.0 с расширением jpg — не сработало, а FF18 принял указание корректно. Вывод: использовать на свой страх и риск 😉

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