Установка веб-сервера (Apache 2.4, MySQL 8.0, PHP 7, phpMyAdmin) на Windows 10 - HackWare.ru
- 1. Підготовка (скачування програм, що входять в сервер, створення структури сервера)
- 2. Створення структури веб-сервера
- 3. Установка Apache 2.4
- 4. Встановлення та налаштування MySQL 8.0
- 5. Встановлення та налаштування PHP 7
- Налаштування PHP 7
- 6. Встановлення та налаштування phpMyAdmin
- 7. Використання сервера і бекап даних
- 8. Додаткова настройка PHP
- 9. Додаткова настройка phpMyAdmin
- 10. Установка поштової заглушки
- 11. Додавання PHP директорії в PATH на Windows
- 12. Звісно, уповільнення трафіку і / або помилка сервера Asynchronous AcceptEx failed
- 13. Налагодження cURL в веб-сервері Apache на Windows
- 14. Створення резервної копії даних (сайти і бази даних) Apache в Windows
- 15. Оновлення сервера
- 16. Додатковий матеріал по налаштуванню веб-сервера в Windows:
Джерело (деякі моменти): " How to install web server on Windows 10 (Apache 2.4, PHP 7, MySQL 5.7 and phpMyAdmin) "
Установка веб-сервера на Linux:
Локальний сервер дуже корисний інструмент. Він точно в нагоді веб-майстрам, програмістам на PHP, тестерам на проникнення. Всі програми, що входять в типову установку веб-сервера, є безкоштовними, у всіх у них відкритий вихідний код. Локальний веб-сервер споживає мінімум ресурсів і, насправді, його зовсім неважко встановити і налаштувати.
Ця інструкція розповість про те, як встановити локальний веб-сервер без використання готових збірок. Цей спосіб має свої переваги. Найважливішими з них є: повний контроль на тим, що ви встановлюєте; можливість використовувати найостанніші версії програмного забезпечення.
Якщо ви будете в точності слідувати інструкції, то у вас обов'язково все запрацює! Крім тих, у кого Windows XP - якщо лу вас ця операційна система, то для вас зроблена спеціальна інструкція .
Я покажу приклад установки на Windows 10, але якщо у вас інша версія Windows, то нехай вас це не бентежить - процедура всюди ідентична. Я буду завантажувати останні (найсвіжіші) на момент написання версії програм. Якщо до того часу, коли ви читаєте, вийдуть нові версії, то завантажуйте саме їх.
Етапи установки:
- Підготовка (скачування програм, що входять в сервер, створення структури сервера)
- Створення структури веб-сервера
- Установка Apache 2.4
- Установка і настройка MySQL 8.0
- Установка і настройка PHP 7
- Установка і настройка phpMyAdmin
- Використання сервера і бекап даних
- Додаткова настройка PHP
- Додаткова настройка phpMyAdmin
- Установка поштової заглушки
- Додавання PHP директорії в PATH на Windows
- Звісно, уповільнення трафіку і / або помилка сервера Asynchronous AcceptEx failed
- Налаштування cURL в веб-сервері Apache на Windows
Вам також може стати в нагоді:
- Резервне копіювання даних (сайти і бази даних) Apache в Windows
- сервер оновлення
- Додатковий матеріал по налаштуванню веб-сервера в 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 програм поняття битности не застосовується.
PHP 7 скачайте зі сторінки https://windows.php.net/download/ . Виберіть версію Thread Safe, зверніть увагу на бітность. Якщо вам важко, який саме файл скачати, то подивіться цю замітку .
Безкоштовна версія MySQL називається MySQL Community Server. Її можна завантажити на сторінці. На цій же сторінці є установник у вигляді виконуваного файлу, але я рекомендую скачати ZIP-архів. На сторінці скачування нам пропонують зареєструватися або увійти в існуючу обліковий запис - але це робити необов'язково. Досить натиснути на посилання «No thanks, just start my download». Зверніть увагу на бітность.
Сайт для скачування phpMyAdmin.
Ще нам потрібен файл 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 /"
міняємо
<Directory "$ {SRVROOT} / htdocs">
на
<Directory "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.
Тепер в браузері набираємо http: // localhost / і бачимо наступне:
Це означає дві речі:
- Apache працює
- в каталозі c: \ Server \ data \ htdocs \ немає жодного файлу.
Можете погратись - додати в каталог будь-які html-файли - повноцінний веб-сервер працює.
4. Встановлення та налаштування MySQL 8.0
В каталог bin розпаковуємо файли MySQL (з архіву mysql-8.0.11-winx64.zip). Перейменовуємо папку mysql-8.0.11-winx64 в mysql-8.0 (для стислості). До речі, розпаковані папка mysql-8.0 займає близько гігабайти!
Заходимо в цю папку і створюємо там файл my.ini Тепер відкриваємо цей файл будь-яким текстовим редактором.
Додайте туди наступні рядки:
[Mysqld] sql_mode = NO_ENGINE_SUBSTITUTION, STRICT_TRANS_TABLES datadir = "c: / Server / data / DB / data /" default_authentication_plugin = mysql_native_password
Збережіть і закрийте його.
Налаштування завершено, але потрібно ще виконати ініціалізацію і установку, для цього відкриваємо командний рядок від імені адміністратора і послідовно вводимо туди:
C: \ Server \ bin \ mysql-8.0 \ bin \ mysqld --initialize-insecure --user = root C: \ Server \ bin \ mysql-8.0 \ bin \ mysqld --install net start mysql
По закінченню цього процесу в каталозі C: \ Server \ data \ DB \ data \ повинні з'явитися автоматично згенерували файли:
Тепер служба MySQL запускатиметься при кожному запуску Windows.
Якщо ініціалізація завершилася невдачею і в папці C: \ Server \ data \ DB \ data \ бракує файлів, а в балці помилок C: \ Server \ data \ DB \ data \ *. Err ви бачите приблизно такі записи:
[ERROR] InnoDB: Operating system error number 87 in a file operation [ERROR] InnoDB: File. \ Ib_logfile101: 'aio write' return OS error 187. [ERROR] InnoDB: Can not continue operation
Те для вирішення цієї проблеми видаліть весь вміст папки C: \ Server \ data \ DB \ data \ і в файл my.ini додайте ще один рядок:
innodb_flush_method = normal
Тепер Ініціалізуйте MySQL ще раз:
C: \ Server \ bin \ mysql-8.0 \ bin \ mysqld --initialize-insecure --user = root C: \ Server \ bin \ mysql-8.0 \ bin \ mysqld --install net start mysql
5. Встановлення та налаштування PHP 7
В папці c: \ Server \ bin \ створюємо каталог PHP і копіюємо в нього вміст архіву php-7.0.0RC6-Win32-VC14-x64.zip.
У файлі c: \ Server \ bin \ Apache24 \ conf \ httpd.conf в самий кінець додаємо рядки
PHPIniDir "C: / Server / bin / PHP" AddHandler application / x-httpd-php .php LoadModule php7_module "C: /Server/bin/PHP/php7apache2_4.dll"
І перезапускаємо Apache
c: \ Server \ bin \ Apache24 \ bin \ httpd.exe -k restart
У каталозі c: \ Server \ data \ htdocs \ створюємо файл з назвою i.php
Копіюємо в цей файл:
<? Php phpinfo ();
У браузері відкрийте посилання http: //localhost/i.php . Якщо ви бачите те ж саме, що на зображенні, значить PHP працює:
Налаштування PHP 7
Налаштування PHP відбувається в файлі php.ini. У zip-архівах, призначених для ручної установки і для оновлень, php.ini немає (це зроблено спеціально, щоб випадково не затерти ваш файл, з вашими унікальними налаштуваннями). Зате є два інших, які називаються php.ini-development і php.ini-production. Будь-який з них, при ручній установці, можна перейменувати в php.ini і налаштовувати далі. На локалхосте ми буде використовувати php.ini-development.
Відкриваємо файл php.ini будь-яким текстовим редактором, шукаємо рядок
; extension_dir = "ext"
і замінюємо її на
extension_dir = "C: \ Server \ bin \ PHP \ ext \"
Тепер знайдіть групу рядків:
; Extension = bz2; extension = curl; extension = fileinfo; extension = gd2; extension = gettext; extension = gmp; extension = intl; extension = imap; extension = interbase; extension = ldap; extension = mbstring; extension = exif; Must be after mbstring as it depends on it; extension = mysqli; extension = oci8_12c; Use with Oracle Database 12c Instant Client; extension = openssl; extension = pdo_firebird; extension = pdo_mysql; extension = pdo_oci; extension = pdo_odbc; extension = pdo_pgsql; extension = pdo_sqlite; extension = pgsql; extension = shmop
і замініть її на:
extension = bz2 extension = curl extension = fileinfo extension = gd2 extension = gettext extension = gmp extension = intl extension = imap; extension = interbase extension = ldap extension = mbstring extension = exif; Must be after mbstring as it depends on it extension = mysqli; extension = oci8_12c; Use with Oracle Database 12c Instant Client extension = openssl; extension = pdo_firebird extension = pdo_mysql; extension = pdo_oci extension = pdo_odbc extension = pdo_pgsql extension = pdo_sqlite extension = pgsql extension = shmop
тепер розкоментуйте цю групу рядків:
; Extension = soap; extension = sockets; extension = sqlite3; extension = tidy; extension = xmlrpc; extension = xsl
повинно вийти:
extension = soap extension = sockets extension = sqlite3 extension = tidy extension = xmlrpc extension = xsl
Цими діями ми включили розширення. Вони можуть знадобитися в різних ситуаціях для різних скриптів. Зберігаємо файл і перезапускаємо Apache.
6. Встановлення та налаштування phpMyAdmin
В каталог c: \ Server \ data \ htdocs \ копіюємо вміст архіву phpMyAdmin-4.5.1-all-languages.zip. Перейменовуємо phpMyAdmin-4.5.1-all-languages в phpmyadmin (для лаконічності)
У каталозі c: \ Server \ data \ htdocs \ phpmyadmin \ створюємо файл config.inc.php і копіюємо туди:
<? Php / * Servers configuration * / $ i = 0; / * Server: localhost [1] * / $ i ++; $ 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] [ 'user'] = 'root'; $ Cfg [ 'Servers'] [$ i] [ 'password'] = ''; $ Cfg [ 'Servers'] [$ i] [ 'nopassword'] = true; $ Cfg [ 'Servers'] [$ i] [ 'AllowNoPassword'] = true; / * End of servers configuration * / $ cfg [ 'blowfish_secret'] = 'kjLGJ8g; Hj3mlHy + Gd ~ FE3mN {gIATs ^ 1lX + T = KVYv {ubK * U0V'; $ Cfg [ 'DefaultLang'] = 'ru'; $ Cfg [ 'ServerDefault'] = 1; $ Cfg [ 'UploadDir'] = ''; $ Cfg [ 'SaveDir'] = ''; ?>
У браузері набираємо http: // localhost / phpmyadmin /
Як ім'я користувача вводимо 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 / * PHP.INI * [mail function] *; SMTP = localhost *; smtp_port = 25 *; sendmail_from = [email protected] * sendmail_path = php.exe sendmail.php --dir C: \ mail --open * / $ is_windows = stristr (PHP_OS, 'WIN'); $ Options = getopt ( "", [ 'open', 'prepend', 'file:', 'dir:']); $ Is_open = isset ($ options [ 'open']); $ Is_prepend = isset ($ options [ 'prepend']); $ Is_onefile = isset ($ options [ 'file']); $ Mail_dir = isset ($ options [ 'dir'])? $ Options [ 'dir']: sys_get_temp_dir (). '/ Mail'; $ File_name = isset ($ options [ 'file'])? $ Options [ 'file']: mkname (); $ File_path = $ mail_dir. '/'. $ File_name; if (! is_dir ($ mail_dir)) {mkdir ($ mail_dir, 0777, TRUE); if (! is_dir ($ mail_dir)) {die ( 'Mail folder ['. $ mail_dir. '] not created'); }} $ Stream = $ is_onefile? PHP_EOL. str_repeat ( "- =", 10). date ( 'Ymd H: i: s'). str_repeat ( "- =", 10). PHP_EOL: ''; while (false! == ($ line = fgets (STDIN))) {// $ stream. = ($ is_windows? str_replace ( "\ n", PHP_EOL, $ line): $ line); $ Stream. = $ Line; } If ($ is_prepend && file_exists ($ file_path)) {$ file_contents = file_get_contents ($ file_path); $ Stream. = $ File_contents; } File_put_contents ($ file_path, $ stream, $ is_prepend? 0: FILE_APPEND); if ($ is_open && $ is_windows) {pclose (popen ( "start / B notepad". $ file_path, "r")); } Function mkname ($ i = 0) {global $ mail_dir; $ Fn = 'mail_'. date ( 'Ym-d_H-i-s_'). $ I. '.Eml'; return file_exists ($ mail_dir. '/'. $ fn)? mkname (++ $ i): $ fn; }
Відкрийте конфігураційний файл 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 \ xb d \ 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, потім натисніть «Змінити»:
Далі «Створити» і впишіть туди «C: \ Server \ bin \ PHP \»:
Підніміть запис в самий вгору:
Закрийте всі вікна зі збереженням зроблених змін.
Перезапустіть сервер.
12. Звісно, уповільнення трафіку і / або помилка сервера Asynchronous AcceptEx failed
Якщо ваш сервер навіть без навантаження «зависає» - не показує веб-сторінки до перезапуску, а в балках сервера помилки Asynchronous AcceptEx failed:
[Thu Jun 05 року 07: 24: 55.747090 2014] [mpm_winnt: notice] [pid 1784: tid 444] AH00455: Apache / 2.4.9 (Win64) PHP / 5.5.13 configured - resuming normal operations [Thu Jun 05 року 07: 24: 55.747090 2014] [mpm_winnt: notice] [pid 1 784: tid 444] AH00456: Apache Lounge VC11 Server built: Mar 16 2014 12:42:59 [Thu Jun 05 року 07: 24: 55.747090 2014] [core: notice] [ pid тисячі сімсот вісімдесят чотири: tid 444] AH00094: Command line: 'c: \\ Server \\ bin \\ Apache24 \\ bin \\ httpd.exe -d C: / Server / bin / Apache24' [Thu Jun 05 7:24: 55.748090 2014] [mpm_winnt: notice] [pid +1784: tid 444] AH00418: Parent: Created child process 4952 [Thu Jun 05 року 07: 24: 55.957978 2014] [mpm_winnt: notice] [pid 4952: tid 388] AH00354: Child: Starting 64 worker threads. [Thu Jun 05 року 07: 26: 16.695036 2014] [mpm_winnt: warn] [pid 4952: tid 1112] (OS 64) Зазначене мережеве ім'я вже недоступне. : AH00341: winnt_accept: Asynchronous AcceptEx failed. [Thu Jun 05 року 07: 26: 16.695036 2014] [mpm_winnt: warn] [pid 4952: tid 1112] (OS 64) Зазначене мережеве ім'я вже недоступне. : AH00341: winnt_accept: Asynchronous AcceptEx failed. [Thu Jun 05 року 07: 26: 48.250710 2014] [mpm_winnt: warn] [pid 4952: tid 1112] (OS 64) Зазначене мережеве ім'я вже недоступне. : AH00341: winnt_accept: Asynchronous AcceptEx failed. [Thu Jun 05 року 07: 26: 48.250710 2014] [mpm_winnt: warn] [pid 4952: tid 1112] (OS 64) Зазначене мережеве ім'я вже недоступне. : AH00341: winnt_accept: Asynchronous AcceptEx failed. [Thu Jun 05 року 07: 29: 27.137784 2014] [mpm_winnt: warn] [pid 4952: tid 1112] (OS 64) Зазначене мережеве ім'я вже недоступне. : AH00341: winnt_accept: Asynchronous AcceptEx failed. [Thu Jun 05 року 07: 29: 27.137784 2014] [mpm_winnt: warn] [pid 4952: tid 1112] (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 (системні змінні середовища). Як це зробити сказано трохи вище: https://hackware.ru/?p=21#11
2) У файлі C: \ Server \ bin \ PHP \ php.ini повинна бути розкоментованим рядок extension = curl
3) Необхідно завантажити файл, потім в папці C: \ Server \ створити нову папку з ім'ям certs і в цю нову папку (C: \ Server \ certs \) перемістіть скачав файл.
4) У файлі C: \ Server \ bin \ PHP \ php.ini знайдіть рядок
; Curl.cainfo =
І замініть її на
curl.cainfo = C: \ Server \ certs \ cacert.pem
5) Перезавантажте сервер.
14. Створення резервної копії даних (сайти і бази даних) Apache в Windows
Вся значуща інформація, тобто файли сайтів і їх бази даних зберігаються в папці C: \ Server \ data \. Резервну копію на той випадок, якщо початкові дані зіпсувалися, можна робити двома способами.
Перший спосіб полягає в тому, що ми просто робимо копію всіх файлів (сайти + бази даних) в безпечне місце. Це простий метод і для більшості він буде найзручнішим.
Потрібно почати з того, що зупинити MySQL, оскільки поки вона не зупинена, деякі файли баз даних відкриті і не можуть бути правильно скопійовані:
net stop mysql
Тепер просто скопіюйте в будь-який надійне місце папку C: \ Server \ data \. Вона вже містить і бази даних (підпапка C: \ Server \ data \ DB \) і всі сайти (підпапка C: \ Server \ data \ htdocs \). Коли копіювання буде завершено, знову запустіть службу MySQL:
net start mysql
Якщо вам знадобитися відновити всі сайти, або окремі сайти, або тільки окремі файли сайту, то це можна робити без зупинки веб-сервера.
Якщо потрібно буде відновити бази даних, то знову потрібно буде зупинити MySQL і повернути вихідні файли C: \ Server \ data \ DB \.
Зверніть увагу, що якщо ви повністю повертаєте вихідну папку C: \ Server \ data \, то відбувається повний відкат всіх даних, тобто всі зміни, зроблені після створення резервної копії, зникнуть!
Другий метод резервного копіювання полягає в експорті баз даних (це робиться при запущеної службі MySQL) і створенні бекапа тільки папки сайтів C: \ Server \ data \ htdocs \. Цей спосіб трохи складніше, але ви можете контролювати, які саме бази даних ви бажаєте експортувати. Також в такому вигляді (бази даних у вигляді файлів .SQL і файли сайтів) зручно переносити сайти на інший веб-сервер або хостинг. Подробиці про те, як виконувати експорт баз даних тут .
Зазвичай це не потрібно, але при бажанні ви можете зробити резервну копію бінарних (здійсненних) файлів сервера. Всі ці файли знаходяться в папці 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), або відразу кілька.
оновлення Apache
скачайте архів з новою версією Apache.
Скопіюйте в безпечне місце файл c: \ Server \ bin \ Apache24 \ conf \ httpd.conf.
Зупиніть та видаліть службу Apache:
c: \ Server \ bin \ Apache24 \ bin \ httpd.exe -k stop c: \ Server \ bin \ Apache24 \ bin \ httpd.exe -k uninstall
Видаліть папку C: \ Server \ bin \ Apache24 \ (це не торкнеться ваші сайти і бази даних).
Розпакуйте новий архів в C: \ Server \ bin \. Скопіюйте збережений раніше файл httpd.conf в c: \ Server \ bin \ Apache24 \ conf \ httpd.conf.
Запустіть службу Apache:
c: \ Server \ bin \ Apache24 \ bin \ httpd.exe -k install c: \ Server \ bin \ Apache24 \ bin \ httpd.exe -k start
оновлення PHP
скачайте архів з новою версією PHP.
Скопіюйте в безпечне місце файл c: \ Server \ bin \ PHP \ php.ini.
Видаліть папку C: \ Server \ bin \ PHP \.
Розпакуйте новий архів в C: \ Server \ bin \ PHP.
Скопіюйте збережений раніше файл php.ini в c: \ Server \ bin \ PHP \ php.ini.
Перезапустіть службу Apache:
c: \ Server \ bin \ Apache24 \ bin \ httpd.exe -k restart
оновлення MySQL
Увага: при оновленні з MySQL 5 до MySQL 8 потрібні додаткові дії. Дивіться подробиці в статті: « Як оновитися з MySQL 5 до MySQL 8 ».
архів з новою версією MySQL.
Скопіюйте в безпечне місце файл c: \ Server \ bin \ mysql-8.0 \ my.ini.
Зупиніть та видаліть службу MySQL:
net stop mysql c: \ Server \ bin \ mysql-8.0 \ bin \ mysqld --remove
Видаліть папку C: \ Server \ bin \ mysql-8.0 \ (це не торкнеться ваші сайти і бази даних).
Розпакуйте новий архів в C: \ Server \ bin \. Перейменуйте папку в mysql-8.0.
Скопіюйте збережений раніше файл my.ini в c: \ Server \ bin \ mysql-8.0 \ my.ini.
Запустіть службу MySQL:
C: \ Server \ bin \ mysql-8.0 \ bin \ mysqld --install net start mysql
оновлення phpMyAdmin
скачайте архів з новою версією phpMyAdmin.
Скопіюйте в безпечне місце файл c: \ Server \ data \ htdocs \ phpMyAdmin \ config.inc.php.
Видаліть папку C: \ Server \ bin \ phpMyAdmin \ (це не торкнеться ваші сайти і бази даних).
Розпакуйте новий архів в C: \ Server \ data \ htdocs \. Перейменуйте папку в phpMyAdmin.
Скопіюйте збережений раніше файл config.inc.php в c: \ Server \ data \ htdocs \ phpMyAdmin \ config.inc.php.
16. Додатковий матеріал по налаштуванню веб-сервера в Windows:
17. У мене нічого не працює
Дана інструкція регулярно перевіряється і тестується з найновішими компонентами. Оскільки інструкція об'ємна, то виникнення помилок може бути пов'язано з тим, що ви щось пропустили або зробили неправильно. Для початку спробуйте все видалити і зробити все заново.
Буває рідкісна помилка, пов'язана з тим, що якась інша програма вже прослуховує 80й порт. Щоб визначити, чи зайнятий вже порт 80 зробіть так:
1) натисніть клавіші WIN + x
2) з списку виберете «Windows PowerShell (адміністратор)»
3) виконайте там:
cmd for / f "tokens = 1,2,3,4,5 *"% i in ( 'netstat -aon ^ | findstr ": 80" ^ | findstr / i listening') do echo% j% l & @tasklist | findstr% m
Якщо якась програма вже висить на 80м порту, то ви її побачите.
Я зібрав архів, який включає в себе всі описані тут компоненти веб-сервера для Windows, які вже правильно налаштовані. Тобто вам досить просто розпакувати цей архів, і ви отримаєте готовий Apache. Подробиці тут: apache-windows.ru
з PHP (з вибором версій), з MySQL і phpMyAdmin. Даний сайт розміщений саме на ньому: чуйна і кваліфікована технічна підтримка, установка WordPress і інших веб-додатків в одні клік, в подарунок при оплаті за рік, безкоштовний перенесення сайту. При замовленні хостингу по + 1 місяць безкоштовно (промокод b33e0e2f).
Пов'язані статті:
Usr / bin / env php <?Mail'; $ File_name = isset ($ options [ 'file'])?
File_name; if (! is_dir ($ mail_dir)) {mkdir ($ mail_dir, 0777, TRUE); if (! is_dir ($ mail_dir)) {die ( 'Mail folder ['. $ mail_dir. '] not created'); }} $ Stream = $ is_onefile?
Is_windows?
File_path, $ stream, $ is_prepend?
Eml'; return file_exists ($ mail_dir. '/'. $ fn)?
Або як там вона називається на Windows 10?
Ru/?