Веб-сервер (Web Server): для чего он нужен, как устроен и как работает. Apache: установка и настройка веб-сервера
Читайте также
Как правило, у рядового пользователя такие понятия, как «веб-сервер» или «хостинг», ассоциируются с чем-то абсолютно непонятным. Между тем, ничего сложного в этом вопросе нет. Попытаемся объяснить, что собой представляет web server, зачем он нужен и как работает, особо не вдаваясь в технические подробности, а, так сказать, на пальцах. Отдельно остановимся на вопросе о том, как создать и настроить такой сервер на домашнем компьютерном терминале или ноутбуке.
Что такое веб-сервер?
Самое главное в данном вопросе - понять, что сервер такого типа является не чем иным, как компьютером в интернете с соответствующим установленным программным обеспечением.
Но это абсолютно не значит, что в домашних условиях нельзя создать собственную конфигурацию. Поскольку у нас более распространенными являются операционные системы Windows, вопросы о том, как создать веб-сервер на Ubuntu (Linux), рассматриваться не будут.
Для чего нужны web-серверы?
На серверах этого типа в интернете хранится много информации. При этом те же антивирусы для обновления собственных баз данных обращаются именно к ним. Пользователь также имеет непосредственное отношение к таким серверам, оформляя запросы в браузере (поиск информации, обращение к какой-то странице и т. д.).
Вот и получается, что все страницы, присутствующие в интернете, хранятся именно на веб-серверах, к которым с одной стороны производится пользовательский запрос или обращение установленной программы, а с другой - выдается результат тем самым сервером, к которому производится попытка доступа.
Как это все работает?
Все пользователи привыкли, что для входа на какой-то ресурс в интернете (веб-страницу), на котором располагается информация определенного типа, в адресной строке просто вводится префикс www (или http) и последующее имя. Но никто не задумывается о том, каким образом web server понимает запрос и выдает результат.
На самом деле здесь нужно различать понятия сервера и клиента. В нашем случае страница, размещенная в интернете, сохранена именно на удаленном сервере. Пользовательский компьютер выступает в роли клиента, от которого и производится обращение.
Для доступа в интернет применяются программы, называемые веб-браузерами. Они переводят пользовательский запрос в цифровой код, распознаваемый веб-сервером. Сервер его обрабатывает и выдает ответ в соответствующем коде, а браузер уже преобразует миллионы нулей и единиц в нормальный вид с текстовой, графической, звуковой или видеоинформацией, которая размещается на странице.
Самые популярные web-серверы
Из всего серверного программного обеспечения, как считается, самыми распространенными являются Apache и Microsoft IIS. Первый является более популярным и в большей степени используется в UNIX-подобных системах, хотя и может устанавливаться в среду Windows. Кроме того, сервер Apache является абсолютно бесплатным программрным обеспечением и совместим практически со всеми известными операционными системами. Однако, как отмечается, предназначено это ПО в основном для профессиональных программистов и разработчиков.
Программный продукт от Microsoft рассчитан на среднестатистического пользователя, который установить и настроить такой веб-сервер для Windows сможет без дополнительной помощи квалифицированного специалиста.
Тем не менее, если исходить из официальной статистики, программное обеспечение Apache использует порядка 60% всех существующих серверов, поэтому вопрос установки и настройки начальной конфигурации рассмотрим именно на его примере.
Веб-сервер на домашнем компьютере: установка
Для инсталляции потребуется скачать специальный серверный пакет, сокращенно обозначаемый как WAMP, в который входит три основных компонента:
- Apache - программная оболочка сервера, которая может работать самостоятельно, но только в случае отсутствия на размещаемых страницах динамического контента.
- PHP - язык программирования, используемый надстройками для управления серверами с динамическим содержимым вроде WordPress, Joomla, Drupal.
- MySQL - унифицированная система управления базами данных, используемая, опять же, при создании сайтов с динамическим контентом.
Инсталляцию можно произвести из пакета WampServer. Для этого достаточно следовать указаниям «Мастера», который на одной из стадий предложит выбрать интернет-браузер, который будет использоваться по умолчанию.
Для этого нужно будет перейти в папку с исполняемым файлом браузера (если это не Internet Explorer, обычно она располагается в директории Program Files). Попутно сам браузер следует добавить в список исключений брэндмауэра Windows. На финишной стадии ставится галочка напротив пункта немедленного запуска, после чего в системном трее появится соответствующий значок, на который нужно нажать и изменю выбрать запуск локального хоста (localhost).
Если все сделано правильно, появится домашняя страница сервера. Далее будет предложено инсталлировать дополнительные компоненты (если этого не сделать, система выдаст ошибку). В основном инсталляция касается дополнительных надстроек, элементов и компонентов, которые будут использоваться сервером в дальнейшем.
Пример настройки и тестирования сервера
Настройка веб-сервера несколько сложнее. Сначала в меню системного трея выбирается переход в папку WWW (место хранения надстроек или файлов HTML). После этого прописать следующий текст в «Блокноте»:
Привет!
"; ?>Можете просто скопировать текст в «Блокнот» и сохранить файл под именем index.php в той самой папке WWW (хотя можно обойтись и без того, поскольку этот шаг применяется исключительно для проверки локального хоста). Вместо приветствия можете вставить любой другой текст или фразу.
Затем в браузере нужно обновить страницу (F5), после чего на экране отобразится содержимое. Но для других компьютеров страница будет недоступна.
Чтобы открыть доступ, нужно изменить файл httpd.conf, прописав в разделе, который начинается с
Order Allow,Deny
Вместо послесловия
Конечно, что касается понимания сути функционирования или настроек домашнего веб-сервера, здесь приведена только самая начальная и краткая информация, так сказать, для общего понимания. На самом же деле все процессы являются намного более сложными, особенно в части преобразования запросов и выдачи ответов, не говоря уже о настройках сервера в домашних условиях. Если у пользователя есть желание разобраться в этих вопросах, тут не обойтись хотя бы без начальных знаний той же надстройки WordPress и языка PHP. С другой стороны, для публикации примитивных страниц, содержащих в основном только текстовую информацию, можно использовать и эти начальные сведения.
). Кто-то начнет сразу кричать о легкости и бесплатности Linux, и я не буду спорить, но мне нравится эта ОС. Она надежная и легкая в администрировании. На мой субъективный взгляд у нее один недостаток — цена. Кроме того, я не утверждаю, что представленная ниже конфигурация сервера для хостинга является самой лучшей и удобной. Я просто опишу последовательность действий, который я предпринял, чтобы мой сайт заработал. Итак:
1. Что потребуется
- Подключенный к сети Интернет, постоянно работающий компьютер, под управлением Windows Server 2008 R2 (О том как установить Windows Server 2008 я писал ).
- Выделенный IP-адрес на текущем подключении.
- Зарегистрированное доменное имя (О том как это сделать можно прочитать ).
- Доменное имя должно быть привязано к текущему выделенному IP (И об этом я тоже писал )
2. Запуск веб-сервера IIS
Для начала нашему серверу необходимо добавить роль Web-сервера. В Windows Server 2008 эта роль называется Internet Information Services или IIS . Для добавления заходим в «Пуск » — «Администрирование » — «Диспетчер сервера». Раскрываем вкладку «Роли » и нажимаем «Добавить роли » .
Запустится «Мастер добавления ролей », нажимаем «Далее » и в списке выбираем «Веб-сервер (IIS) » .
Нажимаем 2 раза «Далее » и попадаем на страницу выбора служб ролей. Помимо уже отмеченных служб, отмечаем «ASP.NET », «Расширяемость.NET », «CGL », «Расширения ISAPI », «Фильтры ISAPI », нажимаем «Далее » и «Установить » .
После завершения установки в Ролях появилась вкладка «Веб-сервер (IIS) », в которой содержится «Диспетчер служб IIS » (Также он доступен через «Пуск » — «Администрирование » — «Диспетчер служб IIS »)
В диспетчере мы видим наш сервер, и вкладку «сайты », по умолчанию содержащую «Default Web Site ». Этот сайт состоит из приветственной страницы IIS. Мы можем просмотреть ее открыв Internet Explorer и в строке адрес введя http://localhost
Можно сразу удалить эту страницу, кликнув в «Диспетчере служб IIS » по ней правой кнопкой и выбрав «Удалить » .
На этом подготовка операционной системы закончена. Далее надо установить PHP и MySQL.
3. Установка PHP
Нам необходимо реализовать поддержку языка PHP. Для этого нужно установить и запустить соответствующую службу. Скачиваем с http://windows.php.net/download/ установщик php-сервера. На момент написания статьи актуальной была версия 5.3.6 . После скачивания устанавливаем PHP-сервер, следуя инструкциям инсталлятора не меняя настроек и выбрав режим «IISFastCGI » . Более подробно об установки PHP можно прочитать в статье « ».
Теперь нужен плагин PHP Manager for IIS для управления PHP из из диспетчера IIS. Скачиваем его здесь: http://phpmanager.codeplex.com/releases/view/69115 . После загрузки также устанавливаем его следуя инструкциям инсталятора. Если все сделано правильно в Диспетчере служб IIS должна появиться оснастка «Администратор PHP »
Запускаем ее, и нажимаем на «Зарегистрировать новую версию PHP », указываем путь к исполняемому файлу php и нажимаем «ОК »
Все, на этом регистрация PHP завершена.
4. Установка MySQL
Для хранения базы данных будем использовать бесплатный MySQL. Скачиваем установщик на официальной странице http://www.mysql.com/downloads/installer/ . Последняя версия на момент написания статьи 5.5.13 . После загрузки запускаем установку, соглашаемся с лицензионным соглашением, выбираем режим «Typical » и нажимаем «Install ». После завершения установки, оставляем галочку «Launch the MySQL Instance Configuration Wizard » и нажимаем «Finish ».
Запустится вышеназванный мастер. Нажимаем «Next » и выбираем режим «Standart Configuration ».
Нажимаем «Next », ничего не меняя еще раз «Next » и вводим пароль на учетную запись «root». Советую сразу записать пароль на листок. Как говорится, тупой карандаш лучше острой памяти. А лучше всего использовать специальные . Еще раз жмем «Next » и «Execute ». Если все прошло хорошо, то мы должны увидеть следующее:
Жмем «Finish
». Установка завершена.
Для управления MySQL я использую простую бесплатную утилиту HeidiSQL
, которую можно скачать с http://www.heidisql.com/download.php . На момент написания статьи последней была версия 6.0
. Установив программу, следуя инструкциям инсталлятора и запустив ее, мы увидим окно «Session manager
», где нужно добавить подключение к нашему MySQL серверу.
Нажимаем «New » и оставляем все поля нетронутыми, введя лишь тот самый пароль, который мы записали на предыдущем шаге.
Жмем «Open » и соглашаемся с сохранением настроек. Теперь нам надо создать новую базу, для нашего сайта. Для этого в окне слева с наименованием баз кликаем правой кнопкой, выбираем «Create new Database ».
Заполняем параметры следующим образом:
- Name: Любое имя нашей базы (может совпадать с именем домена)
- Character set: utf8
- Collation: utf8_unicode_ci
и жмем «ОК », после чего наша база должна появиться в списке:
После чего настройка MySQL тоже закончена. Более подробно про установку и настройку MySQL можно прочитать в статье « ».
5. Установка WordPress
Ну вот, можно приступать и к самому сайту. Мой сайт сделан на движке WordPress . На дату статьи последней бала версия 3.1.3. Создадим на диске С папку WEB. С официального сайта http://ru.wordpress.org/ скачиваем архив, который нужно извлечь с созданную папку. В папке WEB появится каталог wordpress, который переименуем в соответствии с нашем доменным именем.
Теперь в корне этого каталога найдем файл «wp-config-sample.ph
p» и откроем его любым текстовым редактором, например блокнотом. Найдем и изменим в нем только следующие параметры:
В строке
- define(‘DB_NAME’, ‘database_name_here’); — вместо database_name_here пишем имя созданной нами базы данных. (В моем случае должно получиться define(‘DB_NAME’, ‘tavalik);
- define(‘DB_USER’, ‘username_here’); — вместо username_here пишем имя пользователя root .
- define(‘DB_PASSWORD’, ‘password_here’); — вместо password_here пишем сохраненный нами пароль.
и сохраняем под именем wp-config.php.
Теперь опять заходим в «Диспетчер служб IIS
», находим вкладку «Сайты
», кликаем по ней правой кнопкой и выбираем «Добавить веб-сайт
»
Вводим имя нашего сайта, указываем физический путь к сайту (в моем примере это C:\WEB\tavalik ) и нажимаем «ОК ».
После этого открываем Internet Explorer, в строке адреса вводим http://localhost и попадаем на страницу установки WordPress. Вводим заголовок сайта, имя пользователя и пароль для входа на сайт, адрес электронной почты и нажимаем «Установить WordPress ».
После сообщения об успешной установке нажимаем на «Войти », вводим только что придуманные логин и пароль и попадаем на консоль управления сайтом. Находим в нижнем левом углу «Параметры » .
Вводим краткое описание сайта, и в поля «Адрес WordPress (URL) »и «Адрес сайта (URL) » вводим имя нашего домена. Нажимаем «Сохранить изменения » и….
Все, наш сайт готов. Можно пользоваться. Для проверки вводим в строке браузера имя сайта и, если все сделано правильно, попадаем на начальную страничку.
Помогла ли вам данная статья?
Установка веб-сервера IISОткрываем Панель управления -> Программы -> Включение или отключение компонентов Windows. Находим в списке раздел Службы IIS. Раскрываем его и выбираем нужные компоненты:
Базовый набор:
- Безопасность. Выбираем все компоненты кроме «Проверка подлинности с сопоставлением сертификата …».
- Компоненты разработки приложений. Мне нужна только компонента CGI, для последующей установки PHP.
- Общие функции HTTP. Отмечаем все пункты.
- Проверка работоспособности и диагностика. Выбираем «Ведение журнала HTTP» и «Монитор запросов».
- Функции повышения быстродействия. Отмечаем все пункты.
- Средства управления веб-сайтом. Отмечаем только «Консоль управления IIS».
Когда все пункты выбраны, нажимаем Ок. После завершения установки обязательно перезагружаемся!
Теперь переходим к созданию веб-сайта. Открываем Панель управления -> Система и безопасность -> Администрирование -> Управление компьютером (можно быстрее: меню Пуск -> правый клик на Компьютер -> в меню выбрать пункт Управление). В открывшемся окне раскрываем группу «Службы и приложения» и открываем «Диспетчер служб IIS». В окне Подключения выбираем папку Сайты, затем в правом окне Действия нажимаем на ссылку «Добавить веб-сайт».
Нажимаем OK. На этом базовая настройка завершена. Нужно проверить работоспособность только что созданного сайта. Открываем браузер и в адресной строке вводим: http://localhost. Если все работает правильно, вы увидите похожую страницу:
Последний штрих. Чтобы сайт был доступен из вне, необходимо открыть 80-й порт для входящих соединений. Как это сделать на примере штатного брандмауэра Windows 7:
Откройте Панель управления -> Система и безопасность -> Брандмауэр Windows -> Дополнительные параметры. В списке необходимо найти и включить правило Службы Интернета (входящий трафик HTTP) :
В этом режиме базовой установки веб-сервер способен отображать только статические страницы (обычный HTML + JavaScript). Чтобы расширить его возможности, можно установить поддержку ASP, ASP.NET или PHP. Сам я занимаюсь программированием пока только на PHP, поэтому далее расскажу только об установке PHP на IIS в режиме FastCGI.
Установка PHP (FastCGI)
Конечно, оптимальный веб-сервер для PHP — это Apache, но все же бывают случаи когда требуется установить PHP на IIS. Тем более, в последнее время разработчиками была проделана большая работа, чтобы производительность PHP на IIS улучшилась.
Перед началом установки необходимо скачать релиз PHP с сайта http://windows.php.net/download/ . Там предлагается несколько вариантов. Нам необходим релиз VC9 x86 Non Thread Safe . Для работы в режиме FastCGI это наиболее быстрый и стабильный вариант. Я рекомендую скачивать релиз с установщиком (installer), а не zip-архив (это для любителей ручной установки).
Теперь запускаем установщик. После нескольких не особо информативных окон нам предложат выбрать веб-сервер и режим работы PHP:
IISFastCGI — да, сейчас это единственный стабильный вариант установки PHP на IIS.
После завершения работы установщика, переходим к настройкам IIS. В принципе здесь надо сделать только одно действие — поднять приоритет php-файлов, чтобы они обрабатывались в первую очередь. В диспетчере служб IIS нажимаем по названию нашего сайта и в окне справа выбираем раздел «Документ по умолчанию». В появившемся списке необходимо переместить index.php в начало:
Пользователи Windows 7 64-бит, внимание! Вам необходимо произвести одно дополнительное действие. Откройте раздел «Пулы приложений». Выделите DefaultAppPool и откройте «Дополнительные параметры» (через правый клик или в крайней правой колонке). В разделе Общие необходимо найти опцию «Разрешить выполнение 32-битных приложений» (Enable 32-bit Applications) и установить в положение True. Если уже созданы дополнительные пулы для уже существующих сайтов, то для каждого из них нужно проделать ту же операцию.
Теперь необходимо провести тестирование PHP. В корневую папку веб-сайта (c:\inetpub\wwwroot) необходимо поместить файл index.php со следующим содержанием:
Открываем сайт в браузере (http://localhost). Если все работает правильно, вы увидите страницу с информацией об установке PHP:
Установка MySQL
Вынесена в отдельную статью.
- При запуске сайта возникает ошибка: «Процесс не может получить доступ к файлу, так как он используется другим процессом. (Исключение из HRESULT: 0×80070020)
».
Эта ошибка говорит о том, что порт, к которму осуществлена привязка сайта (по умолчанию 80-й), уже занят другим приложением. Очень часто такая ошибка возникает, если установлен другой веб-сервер (например Apache).
Чтобы выяснить какой процесс занимает 80-й порт, в командной строке введите: netstat -ano -p tcp
В колонке «Локальный адрес» ищем запись вида 0.0.0.0:80, далее смотрим какой «PID» соответствует этой записи. В «Диспетчере задач» открываем вкладку Процессы (опцию «Отображать процессы всех пользователей» должна быть отмечена). Далее переходим в меню Вид -> «Выбрать столбцы» отметь «ИД проесса (PID)». Теперь с помощью PID можно выяснить какой процесс занимает порт.
Еще одним из решений этой проблемы является привязка сайта к альтернативному порту (например 8080). - При запуске php-скрипта появляется ошибка: Warning: fopen(путь_к_файлу): failed to open stream: Permission denied in путь_к_файлу
.
Проблема в том, что группа пользователей IIS_IUSRS имеет права только на чтение. Открыть свойства папки, в которой распологаются файлы веб-сайта (по умолчанию wwwroot), закладка Безопасность. В списке находим группу IIS_IUSRS и даем ей права полного доступа. - Как установить кодировку сайта
.
Откройте «Диспетчер служб IIS», выберите нужный веб-сайт.В настройках сайта откройте раздел «Заголовки ответов HTTP». Нажмите ссылку Добавить. В открывшемся окне в поле Имя введите: Content-type, в поле Значение введите: text-html; charset=windows-1251 (см. скриншот). Вместо windows-1251 можно прописать любую другую кодировку.
В связи с тем, что мой блог абсолютно лишен какой-либо хронологии, я решил исправить это. Следующая серия статей будет посвящена созданию своего сайта.
В этой статье рассмотрим: что такое локальный сервер
, где его скачать
, как установить
, как настроить
, как сделать локальный сервер доступным в интернете
.
Что такое локальный сервер?
Локальный сервер – программное обеспечение, позволяющее сделать отладку сайта на локальном (домашнем) компьютере, без выхода в интернет. Локальный сервер полностью имитируют работу хостинга и имеет аналогичный функционал.
Те, кто занимался сайтостроением с использованием лишь html и css знают, что необходимости в локальном сервере нет, так как браузер прекрасно обрабатывает и понимает язык гипертекстовой разметки и таблицы каскадных стилей. Но, стоит добавить какой-нибудь PHP скрипт и Вас тут же ждет конфуз – браузер не выдаст результат работы PHP. А происходит это потому, что браузеры не понимают PHP. И чтобы пользователь увидел страницу сайта в том виде, в котором эта страница должна быть, необходимо, чтобы сервер обработал и преобразовал PHP код в html.
Все CMS а-ля WordPress и Joomla содержат в себе PHP скрипты. Соответственно, чтобы сайты, созданные с помощью систем управления содержимым, могли работать на домашнем компьютере, необходим локальный сервер.
Мой сайт создан с помощью WordPress, постоянно приходится тестировать какие-то плагины, расширения, копаться в PHP коде. Вполне логично, что рано или поздно, такие действия могут привести к утрате работоспособности сайта, из-за допущенной ошибки. Само собой большинство хостингов поддерживает восстановление (бек ап) сайта и базы данных. Да и грамотные веб мастера держат, на всякий случай, запасную на своем компьютере. Я вообще параноик, кроме хостинга и моего компьютера, еще и на флешку записал. Надо будет еще куда-нибудь на облачный сервис закинуть =).
Да и не стоит забывать, что не все разработчики плагинов заботятся о корректном удалении своих продуктов, и часто, даже удалив продукт, можно наблюдать следы не до конца стертого плагина в базе данных. И чем дольше сайт живет, тем больше подобного хлама будет висеть в базе.
Собственно говоря, с перечисленными задачами и проблемами (и не только) поможет справиться локальный сервер.
Как создать локальный сервер?
На самом деле создавать сервер не нужно, все и так уже создано, достаточно просто скачать и установить готовый набор необходимых компонентов. Установку и настройку одного из популярных локальных серверов рассмотрим ниже.
Как установить локальный сервер?
Один из самых популярных и стабильных локальных серверов – Денвер (Denwer) . Название расшифровывается как: джентльменский набор веб разработчика – Д. н. в. р. Его установку мы то и рассмотрим.
Базовый пакет содержит:
- Инсталлятор.
- Сервер Apache.
- PHP 5.
- MySQL5, поддерживающая транзакцию.
- phpMyAdmin - система управления MySQL, позволяющая работать с базами данных через браузер.
- Эмулятор sendmail и SMTP-сервера – имитация функции отправки почты. Все отправленные письма будут расположены в директории Z:\tmp\!sendmail в формате.eml, а не отправляться на указанную почту.
Одним из плюсов можно назвать то, что сервер можно установить на флеш-накопитель. И где бы вы ни оказались, вы сможете работать над своими проектами.
Ну и, конечно же, самый главный плюс – Denwer абсолютно бесплатен.
Установка Denwer
- 1. Запускаем скачанный файл и соглашаемся с установкой базового пакета.
- 2. Затем, откроется окно браузера, которое необходимо закрыть для продолжения или отмены установки.
- 3. Для продолжения установки нажимаем Enter.
- 4. Затем, необходимо указать директорию, в которой будут расположены файлы. По умолчанию: C:\WebServers. Смело жмем Enter и продолжаем.
- 5. Следуя инструкции, жмем Enter.
- 6. Далее, инсталлятор предложит выбрать букву виртуального диска. По умолчанию предлагается буква Z. Если на компьютере нет диска с таким именем, то можно смело продолжать установку, нажав Enter, если же есть – то выбираем другую.
- 7. После того как все файлы дистрибутива будут скопированы, предложат на выбор 2 варианта создания виртуального диска:
- Виртуальный диск создавать при включении компьютера.
- Создавать виртуальный диск только при явном вызове, то есть – при клике ярлыка старта на рабочем столе (я выбрал этот вариант).
Вот собственно и все, на этом установка Денвера окончена.
Теперь можно протестировать работу локального сервера. Если все сделано верно, то на рабочем столе появятся 3 ярлыка: Start Denwer, Stop Denwer, Restart Denwer.
Нажимаем Start Denwer для запуска. Если зайти в мой компьютер, то можно увидеть, что появился выбранный локальный диск. А в трее (возле часов) появятся 2 значке в виде шляпы и пера.
Откройте окно браузера и в адресную строку введите следующее: http://localhost/
Откроется окно с сообщением: «Ура, заработало!», символизирующее, что все сделано правильно и можно смело приступать к роботе с локальным сервером.
Открывшаяся страничка содержит много полезного:
- Можно найти необходимую документацию по PHP, MySQL, Apache, Perl, PostgreSQL, воспользовавшись соответствующим поиском.
- Так как Денвер – бесплатный софт, то для поддержания проекта, создатели принимают от благодарных пользователей пожертвования. Ну, и я заметил партнерскую ссылку на хостинг «Джино».
- Можно проверить работу компонентов, перейдя по следующим ссылкам:
subdomain.localhost/ssl.php - проверяем активен ли SSL.
subdomain.localhost/ - проверяем "не-Интернет" домены второго уровня, а также SSI
test1.ru/ - проверка доменов второго уровня.
subdomain.test1.ru/ - проверка поддоменов (субдоменов)
localhost/Tests/phpnotice/index.php - можно проверить перехват PHP Notice.
localhost/Tests/PHP5/index.php5 - информация по PHP 5.
localhost/Tools/phpMyAdmin - доступ к phpMyAdmin и MySQL.
custom-host:8648 - проверяем хост с другим IP-адресом и портом (127.0.0.2:8648)
localhost/Tests/sendmail/index.php - проверяем работу sendmail (отправка почты).
Сайт в Денвере отображается иероглифами
Проблема с иероглифами иногда случается, если используется кодировка utf-8. В Опере и Хроме, вместо моего текста выводились жуткие наскальные надписи. А Internet Explorer, как ни странно, все показывал как надо. Но как бы там ни было, проблему надо решать. И сделать это можно следующим способом:
Создать в корневой директории сайта (в папке www) файл.htaccess и прописать там следующее: AddDefaultCharset UTF-8
Если же файл уже есть, то просто добавляем туда эту строчку.
Как удалить Денвер?
Удалить через панель управления – удаление программ Денвер не получится, так как он не пишет файлы в директорию Windows и не оставляет записей в реестре, соответственно деинсталлятор не нужен. Поэтому, просто удаляем папку с файлами локального сервера (предварительно остановив работу Денвера с помощью ярлыка на рабочем столе): C:\WebServers, удаляем ярлыки с рабочего стола и из Автозагрузки.
Как сделать локальный сервер Denwer доступным в сети интернет.
Прежде всего, стоит усвоить, что Денвер предназначен для локального использования. И разработчики предупреждают, что сделав локальный сайт видимым в интернете, можно подвергнуть локальную машину опасности быть взломанной, так как Denwer – не есть надежный и полноценный сервер.
Денвер запускается с правами администратора, поэтому недоработанные скрипты могут представлять потенциальную опасность, а именно - открыть «дыру», через которую хакер может навредить компьютеру.
Если же вы грамотный администратор и полностью понимаете, что вы делаете, то что бы открыть доступ к локальному сайту следует:
- Прежде всего, необходимо иметь статический ip адрес. Динамические айпишники будут меняться при перезагрузке машины (роутера).
- В Windows есть встроенный антивирус - брандмауэр, который блокируют доступ с внешних компьютеров. Для того, чтобы сделать локальный сайт доступным, эту блокировку необходимо отключить в Пуск - брандмауэр Windows. Следует понимать, что это так же снизит защиту компьютера.
- Ну, и последнее, что нужно сделать – создать на виртуальном диске Денвера такую иерархическую структуру из папок: /home/192.168.0.1/www
Вместо указанного в предыдущем пункте ip адресе, необходимо указать свой, выданный вашим интернет провайдером.
В случае если провайдер предоставляет, кроме айпишника, еще и привязанный к нему домен, то сайт будет доступен по нему.
В следующей статье рассмотрим установку WordPress на локальный сервер.
ВСЕХ С НАСТУПАЮЩИМ 2014 НОВЫМ ГОДОМ!!!
Установка веб-сервера на Linux:
- Если у вас Ubuntu, то вам подойдёт статья "Как установить веб-сервер Apache с PHP 7, MariaDB/MySQL и phpMyAdmin (LAMP) на Ubuntu 16.10 ".
- Если у вас Arch Linux, то вам подойдёт статья "Установка LAMP (Linux, Apache, MySQL/MariaDB, PHP7 и phpMyAdmin) в Arch Linux / BlackArch ".
Локальный сервер очень полезный инструмент. Он точно пригодиться веб-мастерам, программистам на PHP, тестерам на проникновение. Все программы, входящие в типичную установку веб-сервера, являются бесплатными, у всех у них открыт исходный код. Локальный веб-сервер потребляет минимум ресурсов и, на самом деле, его совсем нетрудно установить и настроить.
Эта инструкция расскажет о том, как установить локальный веб-сервер без использования готовых сборок. Этот способ имеет свои преимущества. Самыми важными из них являются: полный контроль на тем, что вы устанавливаете; возможность использовать самые последние версии программного обеспечения.
Если вы будете в точности следовать инструкции, то у вас обязательно всё заработает! Кроме тех, у кого Windows XP - если лу вас эта операционная система, то для вас сделана специальная инструкция .
Я покажу пример установки на Windows 10, но если у вас другая версия Windows, то пусть вас это не смущает - процедура везде идентичная. Я буду скачивать последние (самые свежие) на момент написания версии программ. Если к тому времени, когда вы читаете, выйдут новые версии, то скачивайте именно их.
Этапы установки:
Вам также может пригодиться:
1. Подготовка (скачивание программ, входящих в сервер, создание структуры сервера)
Нам нужны:
- Apache (непосредственно веб-сервер)
- PHP - среда для работы PHP программ (требуется практически всеми веб-сайтами)
- MySQL - система управления базами данных (требуется большинством веб-сайтов)
- phpMyAdmin - очень удобный инструмент для управления базами данных
Официальный сайт разработчиков Apache это httpd.apache.org . Можно скачать Apache с этого сайта. Но официальная версия собирается с использованием старого компилятора, по этой причине она не работает с новыми версиями PHP. Авторы PHP рекомендуют Apache с сайта apachelounge.com/download . Поэтому для этой инструкции скачиваем Apache именно с сайта apachelounge.com/download .
Если у вас 64-битная версия Windows, то вы можете выбрать как 64-битную, так и 32-битную версию компонентов. Главное правило - все компоненты должны быть одной битности. Если у вас 32-битная версия Windows, то все компоненты должны быть 32-битными. Это не относится к phpMyAdmin, который написан на языке PHP. Для PHP программ понятие битности неприменимо.
Бесплатная версия MySQL называется MySQL Community Server . Её можно скачать на странице . На этой же странице есть установщик в виде исполнимого файла, но я рекомендую скачать ZIP-архив. На странице скачивания нам предлагают зарегистрироваться или войти в существующую учётную запись - но это делать необязательно. Достаточно нажать на ссылку «No thanks, just start my download ». Обратите внимание на битность.
Ещё нам нужен файл C++ Redistributable Visual Studio 2017, т.е. Распространяемый компонент Visual C++ для Visual Studio 2017 (или любой другой более поздний), скачать его можно на официальном сайте Microsoft по ссылке (прямая ссылка на скачивание 64-битной версии; прямая ссылка на скачивание 32-битной версии). Этот файл нужен для веб-сервера. А для MySQL необходим Распространяемые пакеты Visual C++ для Visual Studio 2015. Его можно скачать по .
Итак, у меня скачались следующие файлы:
- httpd-2.4.29-Win64-VC15.zip
- php-7.2.0-Win32-VC15-x64.zip
- mysql-8.0.11-winx64.zip
- phpMyAdmin-4.7.6-all-languages.zip
- vc_redist.x64.exe
- vcredist_x64.exe
Установите файлы vc_redist.x64.exe и vcredist_x64.exe .
2. Создание структуры веб-сервера
Создадим структуру каталогов нашего сервера. Главная идея - разделить исполнимые файлы и файлы сайтов с базами данных. Это удобно для обслуживания сервера, в том числе для резервного копирования.
В корне диска C:\ создайте каталог Server . В этом каталоге создайте 2 подкаталога: bin (для исполнимых файлов) и data .
Перейдите в каталог data и там создайте подпапки DB (для баз данных) и htdocs (для сайтов).
Перейдите в каталог C:\Server\data\DB\ и создайте там пустую папку data .
3. Установка Apache 2.4
Содержимое скаченного архива (точнее говоря, только каталог Apache24 ), распакуйте в C:\Server\bin\ .
Перейдите в каталог c:\Server\bin\Apache24\conf\ и откройте файл httpd.conf любым текстовым редактором.
В нём нам нужно заменить ряд строк.
Define SRVROOT "c:/Apache24"
Define SRVROOT "c:/Server/bin/Apache24"
#ServerName www.example.com:80
ServerName localhost
DocumentRoot "${SRVROOT}/htdocs"
DocumentRoot "c:/Server/data/htdocs/"
DirectoryIndex index.html
DirectoryIndex index.php index.html index.htm
# AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # AllowOverride FileInfo AuthConfig Limit # AllowOverride None
# AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # AllowOverride FileInfo AuthConfig Limit # AllowOverride All
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule rewrite_module modules/mod_rewrite.so
Сохраняем и закрываем файл. Всё, настройка Apache завершена! Описание каждой изменённой директивы вы найдёте на этой странице .
Откройте командную строку (это можно сделать нажав одновременно клавиши Win+X). Выберите там Windows PowerShell (администратор) и скопируйте туда:
C:\Server\bin\Apache24\bin\httpd.exe -k install
Если поступит запрос от файервола в отношение Apache, то нажмите Разрешить.
Теперь вводим в командную строку:
C:\Server\bin\Apache24\bin\httpd.exe -k start
И нажмите Enter.
В качестве имя пользователя вводим root. Поле пароля оставляем пустым. Если всё сделано правильно, то всё должно выглядеть так:
7. Использование сервера и бэкап данных
В каталоге c:\Server\data\htdocs\ создавайте папки и файлы, например:
c:\Server\data\htdocs\test\ajax.php - этот файл, соответственно, будет доступен по адресу http://localhost/test/ajax.php и т.д.
Для создания полного бэкапа всех сайтов и баз данных достаточно скопировать каталог C:\Server\data\ .
Перед обновлением модулей, делайте бэкап папки bin - в случае возникновения проблем, можно будет легко откатиться к предыдущим версиям.
При повторной установке сервера или при его обновлении, необходимо заново настраивать конфигурационные файлы. Если у вас есть копии этих файлов, то процесс можно значительно ускорить. Желательно забэкапить следующие файлы:
- c:\Server\bin\Apache24\conf\httpd.conf
- c:\Server\bin\mysql-8.0\my.ini
- c:\Server\bin\PHP\php.ini
- c:\Server\data\htdocs\phpMyAdmin\config.inc.php
В них и хранятся все настройки.
8. Дополнительная настройка PHP
PHP в настоящее время очень мощный, гибкий, удобный инструмент. На локальном компьютере с помощью него можно решать разнообразные задачи, совсем не обязательно связанные с генерацией Web-страниц. При решении неординарных задач можно упереться в ограничения, установленные в настройках. Эти настройки содержаться в файле php.ini (c:\Server\bin\PHP\php.ini) Рассмотрим некоторые из них:
Memory_limit = 128M
устанавливает максимальное количество памяти, которое может использовать скрипт
Post_max_size = 8M
устанавливает максимальное количество данных, которые будут приняты при отправке методом POST
;default_charset = "UTF-8"
устанавливает кодировку (по умолчанию, строка закомментирована)
Upload_max_filesize = 2M
максимальный размер загружаемого на сервер файла. Изначально установлен очень маленький размер - только два мегабайта. Например, при загрузке базы данных в phpMyAdmin, не получится загрузить файл больше 2 мегабайт до тех пор, пока не будет изменён этот пункт настройки.
Max_file_uploads = 20
максимальное количество файлов для загрузки за один раз
Max_execution_time = 30
максимальное время выполнения одного скрипта
Менять эти настройки совершенно необязательно, но полезно о них знать.
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 вы можете спрятать/показать пункты в навигационном дереве).
- и другие
Сейчас мы настроим эти дополнительные возможности в полной мере. Перейдите по ссылке http://localhost/phpmyadmin/chk_rel.php и кликните "Создать базу данных". После этого все новые функции будут активированы.
Несколько скриншотов новых функций:
1) Дизайнер
2) Слежение
10. Установка почтовой заглушки
В каталоге C:\Server\bin\ создайте новый каталог с названием Sendmail. Теперь в этом каталоге создайте файл sendmail.php со следующим содержимым:
#!/usr/bin/env php
Откройте конфигурационный файл PHP, он размещён здесь C:\Server\bin\PHP\php.ini . И добавьте туда одну строчку:
Sendmail_path = "C:\Server\bin\PHP\php.exe C:\Server\bin\Sendmail\sendmail.php --dir C:\Server\bin\Sendmail\emails"
Сохраните файл и перезапустите сервер. Отлично, теперь все отправленные письма будут сохраняться в каталоге C:\Server\bin\Sendmail\emails\
Письма будут иметь расширение .eml и их можно открывать, например, программой Thunderbird . Либо обычным текстовым редактором.
11. Добавление PHP директории в PATH на Windows
Если этого не сделать, то могут быть проблемы с некоторыми модулями PHP, в том числе с php_curl.dll, php_intl.dll, php_ldap.dll, php_pdo_pgsql.dll и php_pgsql.dll. По крайней мере, при запуске сервера каждый раз в логах появляется следующее:
PHP Warning: PHP Startup: Unable to load dynamic library "C:\\Server\\bin\\PHP\\ext\\php_curl.dll" - \xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd.\r\n in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library "C:\\Server\\bin\\PHP\\ext\\php_intl.dll" - \xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd.\r\n in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library "C:\\Server\\bin\\PHP\\ext\\php_ldap.dll" - \xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd.\r\n in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library "C:\\Server\\bin\\PHP\\ext\\php_pdo_pgsql.dll" - \xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd.\r\n in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library "C:\\Server\\bin\\PHP\\ext\\php_pgsql.dll" - \xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd.\r\n in Unknown on line 0
Чтобы избежать этих предупреждений, нужно добавить в системные переменные среды путь до PHP.
Нажмите кнопку Пуск (или как там она называется на Windows 10?), начните набирать «Изменение системных переменных среды » и откройте соответствующее окно настроек.
Там нажмите «Переменные среды »:
В окне «Системные переменные » найдите и кликните на Path , потом нажмите «Изменить »:
Поднимите запись в самый вверх:
Закройте все окна с сохранением сделанных изменений.
Перезапустите сервер.
12. Зависание, замедление трафика и/или ошибка сервера Asynchronous AcceptEx failed
Если ваш сервер даже без нагрузки «зависает» - не показывает веб-страницы до перезапуска, а в логах сервера ошибки Asynchronous AcceptEx failed:
AH00455: Apache/2.4.9 (Win64) PHP/5.5.13 configured -- resuming normal operations AH00456: Apache Lounge VC11 Server built: Mar 16 2014 12:42:59 AH00094: Command line: "c:\\Server\\bin\\Apache24\\bin\\httpd.exe -d C:/Server/bin/Apache24" AH00418: Parent: Created child process 4952 AH00354: Child: Starting 64 worker threads. (OS 64)Указанное сетевое имя более недоступно. : AH00341: winnt_accept: Asynchronous AcceptEx failed. (OS 64)Указанное сетевое имя более недоступно. : AH00341: winnt_accept: Asynchronous AcceptEx failed. (OS 64)Указанное сетевое имя более недоступно. : AH00341: winnt_accept: Asynchronous AcceptEx failed. (OS 64)Указанное сетевое имя более недоступно. : AH00341: winnt_accept: Asynchronous AcceptEx failed. (OS 64)Указанное сетевое имя более недоступно. : AH00341: winnt_accept: Asynchronous AcceptEx failed. (OS 64)Указанное сетевое имя более недоступно. : AH00341: winnt_accept: Asynchronous AcceptEx failed.
То в конфигурационный файл Apache добавьте:
AcceptFilter http none AcceptFilter https none EnableSendfile off EnableMMAP off
13. Настройка cURL в веб-сервере Apache на Windows
Если вы не знаете, что такое cURL, значит это вам не нужно. Т.е. смело пропускайте этот шаг.
cURL - это консольная утилита, которая позволяет обмениваться данными с удалёнными серверами, используя очень большое количество протоколов. cURL может использовать кукиз и поддерживает аутентификацию. Если для веб-приложения требуется cURL, то это должно быть указано в зависимостях. Для многих популярных приложений cURL не требуется, например, для phpMyAdmin и WordPress нет необходимости настраивать cURL.
Если cURL настроена неправильно, то вы будете получать ошибки:
Fatal error: Call to undefined function curl_multi_init() in …
Ошибка curl: SSL certificate problem: unable to get local issuer certificate
Чтобы cURL работала в Apache на Windows вам нужно:
1) Обязательно добавить PHP директорию в PATH (системные переменные среды). Как это сделать сказано чуть выше:
2) В файле C:\Server\bin\PHP\php.ini должна быть раскомментирована строка extension=curl
Обычно это не требуется, но при желании вы можете сделать резервную копию бинарных (исполнимых) файлов сервера. Все эти файлы находятся в папке C:\Server\bin\ . Это Apache, MySQL и PHP - т.е. программы, которые отвечают за работу сервера, но которые мы в любой момент можем скачать с официальных сайтов и вновь настроить.
Если вы хотите сделать их резервную копию (например, перед обновлением сервера), то остановите службы:
C:\Server\bin\Apache24\bin\httpd.exe -k stop net stop mysql
И скопируйте в безопасное место папку C:\Server\bin\ .
Кстати, вы можете скопировать весь сервер целиком, т.е. папку C:\Server\ - в этом случае одновременно получиться резервная копия и исполняемых файлов, и данных (базы данных, сайты).
Когда копирование завершено, вновь запустите службы:
C:\Server\bin\Apache24\bin\httpd.exe -k start net start mysql
15. Обновление сервера
Все компоненты, составляющие веб-сервер, активно развиваются и регулярно выходят новые версии. При выходе новой версии вы можете обновить один какой-то компонент (например, PHP), или сразу несколько.
Удаление сервера
Если сервер вам больше не нужен , либо вы хотите установить его заново, остановите службы и удалите их из автозапуска последовательно выполнив в командной строке:
C:\Server\bin\Apache24\bin\httpd.exe -k stop c:\Server\bin\Apache24\bin\httpd.exe -k uninstall net stop mysql c:\Server\bin\mysql-8.0\bin\mysqld --remove
Удалите файлы сервера, для этого удалите папку C:\Server\ . Внимание, это удалит все базы данных и ваши сайты.
Как защитить веб-сервер Apache от взлома в Windows
С PHP (с выбором версий), с MySQL и phpMyAdmin. Данный сайт размещён именно на нём: отзывчивая и квалифицированная техническая поддержка, установка WordPress и других веб-приложений в одни клик,