Позднее Ctrl + ↑

Windows веб-сервер (WAMP) — Php 7

Для работы PHP на Windows необходимы установленные в ОС библиотеки Visual C++. Версия Php и Apache должны соответствовать единой среде VC (в данном цикле — VC15)


Загружаем последний релиз Php с официального сайта. Важно помнить о разрядности и потоках. Нас интересует версия TS — модульная, многопоточная.

Распаковываем архив и размещаем его содержимое в папке C:\Server\Php

Теперь необходимо отредактировать конфигурацию Apache в файле C:\Server\Apache\conf\httpd.conf. Привожу только изменённые директивы.

PHPIniDir "C:/Server/Php"
LoadModule php7_module "C:/Server/Php/php7apache2_4.dll"
DirectoryIndex index.php index.html

<IfModule mime_module>
    ...
    TypesConfig conf/mime.types
    AddType application/x-httpd-php .php

В папке C:\Server\Php переименовываем php.ini-development в php.ini, вносим изменения:

short_open_tag = On
extension_dir = "C:/Server/Php/ext"

extension=php_bz2.dll
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysqli.dll
extension=php_xmlrpc.dll

date.timezone = Europe/Moscow

Перезапускаем службу Apache

Теперь для проверки работы Php переходим в каталог нашего сайта C:\Server\WWW\site.my, переименовываем index.html в index.php и открываем его текстовым редактором. Удаляем всё, что написано и пишем:

<?
phpinfo();

Теперь по адресу http://site.my можно увидеть все сведения о Php

Но в сведениях нет расширения cURL. В журнале ошибок C:\Server\Apache\logs\error.log соответствующая запись

PHP Warning:  PHP Startup: Unable to load dynamic library 'curl'

Это связано с особенностью архитектуры Windows. Для решения этой проблемы нужно добавить каталог Php в системную переменную PATH:
Переходим в Панель управления->Система->Дополнительные параметры и во вкладке Дополнительно кликаем «Переменные среды». Альтернативно в меню поиска Widows 10 можно написать «переменн» и сразу выбрать «Изменение системных переменных среды»
В нижней части окна находим переменную Path и кликаем «Изменить». Далее «Создать» и добавляем путь C:\Server\Php.
Закрываем все окна (ОК) и перезапускаем Apache. Для некоторых ОС может потребоваться перезагрузка.

Теперь cURL исполняется. И базовая настройка Php завершена.

2018   php   server

Windows веб-сервер (WAMP) — Apache

Для запуска Apache на Windows необходимы установленные в ОС библиотеки Visual C++. Ссылки на загрузку библиотек были даны в первом посте цикла.


Загружаем последний релиз Apache с официального сайта. Важно помнить о разрядности. Я загружаю версию 2.4 Win64.

Распаковываем архив и размещаем содержимое папки Apache24 в папке C:\Server\Apache

Теперь необходимо отредактировать конфигурацию в файле C:\Server\Apache\conf\httpd.conf. Привожу только изменённые директивы.

ServerRoot "C:/Server/Apache"
ServerName localhost:80
...
DocumentRoot "C:/Server/WWW"

<Directory "C:/Server/WWW">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
...
<IfModule alias_module>
    ScriptAlias /cgi-bin/ "C:/Server/Apache/cgi-bin/"
</IfModule>
...
<Directory "C:/Server/Apache/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

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

cd C:\Server\Apache\bin

Проверяем конфигурацию, ошибок быть не должно

httpd -t

Устанавливаем службу Apache

httpd -k install

И запускаем её

httpd -k start

Теперь можно перейти в браузере по адресу http://localhost

Но мы изменили путь к файлам в настройках, поэтому переходим в C:\Server\WWW и создаем файл index.html c содержимым ’Привет, Мир!’ и обновляем страницу в браузере.

Переходим к настройке веб-сервера.
Обычно необходимо использовать несколько сайтов. Пусть один из них будет site.my.

Переходим в C:\Server\WWW и создаем папку site.my. Ранее созданный index.html переносим в неё.

В файле C:\Server\Apache\conf\httpd.conf раскомментируем строки

Include conf/extra/httpd-mpm.conf    
Include conf/extra/httpd-autoindex.conf    
Include conf/extra/httpd-vhosts.conf    
Include conf/extra/httpd-default.conf

В файле C:\Server\Apache\conf\extra\httpd-autoindex.conf заменяем пути

Alias /icons/ "C:/Server/Apache/icons/"    
<Directory "C:/Server/Apache/icons">
        Options Indexes MultiViews
        AllowOverride None
        Require all granted    
</Directory>

В файле C:\Server\Apache\conf\extra\httpd-default.conf изменяем директивы

KeepAliveTimeout 30
    ServerTokens ProductOnly

Содержимое файла C:\Server\Apache\conf\extra\httpd-vhosts.conf удаляем полностью. Здесь мы будем прописывать настройки доменов. Добавим секцию для site.my

<VirtualHost *:80>
        ServerAdmin admin@site.my
        DocumentRoot "C:/Server/WWW/site.my"
        ServerName site.my
        ServerAlias www.site.my
        ErrorLog "C:/Server/WWW/site.my/logs/error.log"    
</VirtualHost>

Важно создать папку C:\Server\WWW\site.my\logs, в противном случае возникнет ошибка.

Перезапускаем веб-сервер

Для того, чтобы можно было обратиться к несуществующему в сети сайту site.my, необходимо отредактировать файл C:\WINDOWS\system32\drivers\etc\hosts, добавив в него строку

127.0.0.1 site.my

Теперь, перейдя по адресу http://site.my можно наблюдать сайт, размещенный в папке C:\Server\WWW\site.my. Аналогично можно добавлять другие сайты.

На этом базовая настройка Apache закончена. Переходим к установке Php.

2018   apache   server

Windows веб-сервер (WAMP) — MySQL

Продолжаем разворачивать свой веб-сервер. Для работы с базами данных я рекомендую использовать форк MySQL — MariaDB.


Переходим на официальный сайт MariaDB ​и загружаем последнюю актуальную версию для Windows в формате MSI соответствующей разрядности операционной системы.

Следуя мастеру, выполняем установку сервера баз данных.

Особое внимание следует уделить расположению каталога баз данных. Как предполагалось в первой части, это C:\Server\MySQL\

Далее можно задать пароль root пользователя и кодировку по-умолчанию.

Остальные настройки следует оставить по умолчанию.

Готово! MySQL развернут и готов к работе. Вместе с сервером БД был установлен клиент для работы с базами — HeidiSQL. Можно его запустить и, создав новое соединение, подключиться к серверу баз данных.

Но сервер не настроен. Он может использоваться для простых сайтов, но базу в несколько десятков гигабайт, например Tecdoc, развернуть будет сложно, а порой — невозможно.

Для настройки открываем файл C:\Server\MySQL\data\my.ini и настраиваем под свою конфигурацию.

Секция mysqld

datadir = C:/Server/MySQL/data путь к файлам баз данных
port = 3306 порт, на котором работает сервер БД
sql_mode=»...» режим работы сервера БД
default_storage_engine=innodb движок таблиц по умолчанию
character-set-server=utf8 кодировка данных
bind-address = 0.0.0.0 слушать все интерфейсы
socket = C:/Server/MySQL/data/mysql.sock путь к сокет-файлу сервера
socket = C:/Server/MySQL/data/mysql.pid путь к pid-файлу процесса
skip-name-resolve не определять доменные имена для ip адресов
skip-log-bin не вести бинарный лог
skip-external-locking не использовать внешние блокировки
skip-slave-start не использовать репликацию
skip-relay-log не вести лог ретрансляции
skip-log-slave-updates не вести лог обновлений подчиненного сервера
low-priority-updates увеличить приоритет для операций select
lower_case_table_names = 1 отключить чувствительность к регистру в названиях
max_allowed_packet = 1024M максимальный размер пакета данных
max-connect-errors = 1000000 количество ошибок до блокировки хоста
sysdate-is-now = 1 синхронизировать текущее и системное время
query-cache-type = 0 не использовать кэширование запросов
query-cache-size = 0 не использовать кэширование запросов
open-files-limit = 65535 ограничение количества открытых файлов
thread_concurrency = 6 Количество ядер *2 + количество жестких дисков
innodb = FORCE включить InnoDB и не запускать сервер при ошибке
innodb_file_format = Barracuda использовать новейший формат файлов данных
innodb_file_per_table = 1 хранить таблицы в отдельных файлах
innodb_large_prefix = 1 увеличенный индекс для сжатых таблиц
innodb_use_trim=ON перераспределять место при сжатии таблиц
innodb_use_fallocate=ON предзагрузка файлов средствами ОС
innodb_use_atomic_writes = 1 использовать атомарные записи вместо буфера
innodb_flush_method = O_DIRECT верифицировать каждый сброс данных на диск
innodb_flush_log_at_trx_commit = 2 сбрасывать буфер транзакций в кэш ОС
innodb_log_files_in_group = 2 количество файлов в журнале транзакций
innodb_log_file_size = 512M размер файла журнала транзакций
innodb_buffer_pool_size = 2G 60-80% всей оперативной памяти
innodb_buffer_pool_instances = 2 1 единица на 1 Гб innodb_buffer_pool_size

Конечно приведённые выше настройки — далеко не все возможные. Кроме того, каждый сервер следует настраивать индивидуально. Но это — необходимы минимум для XtraDB.

После изменения настроек необходимо перейти в Службы и перезапустить MariaDB.

Вероятнее всего, у вас это не получится. Проблема в том, что мы изменили количество файлов и размер журнала транзакций. Для решения этой проблемы переходим в C:\Server\MySQL\data и удаляем файлы, содержащие log, bin, err или data в названии:

Еще одной возможной причиной может стать то, что ваша система не поддерживает innodb_use_atomic_writes, следует просто удалить этот параметр из конфигурации.

После успешного запуска MariaDB можно переходить к разворачиванию Apache.

2018   mysql   server

Windows веб-сервер (WAMP) — Подготовка ОС

Цикл инструкций по быстрому разворачиванию и настройке веб-сервера Apache с php 7 и сервера баз данных MySQL на Windows.

Содержание:

  1. Подготовка ОС (эта статья)
  2. MySQL
  3. Apache
  4. Php
  5. Memcached

Для разворачивания веб-сервера на Windows необходимо подготовить операционную систему:

  1. Устанавливаем доступные обновления
  2. Устанавливаем библиотеки Visual C++ Redistributable Package ( x86 или x64 )
  3. Устанавливаем архиватор 7-zip (для автоматической распаковки дампов проекта)

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

Я установил на виртуальную машину Windows Server 2019 x64 и буду описывать процесс работы на примере этой ОС. Версия операционной системы не играет никакой роли. Это может быть как серверная, так и домашняя ОС. Важно помнить о разрядности при установке пакетов.

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

На этом подготовка ОС закончена и можно переходить к установке MySQL.

2018   apache   mysql   php   server