Установка веб-сервера (Apache 2.4, MySQL 8.0, PHP 8, phpMyAdmin) на Windows 10


Источник (некоторые моменты): "How to install web server on Windows 10 (Apache 2.4, PHP 8, MySQL 5.7 and phpMyAdmin)"

Установка веб-сервера на Linux:

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

Эта инструкция расскажет о том, как установить локальный веб-сервер без использования готовых сборок. Этот способ имеет свои преимущества. Самыми важными из них являются: полный контроль на тем, что вы устанавливаете; возможность использовать самые последние версии программного обеспечения.

Если вы будете в точности следовать инструкции, то у вас обязательно всё заработает! Кроме тех, у кого Windows XP - если лу вас эта операционная система, то для вас сделана специальная инструкция.

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

Этапы установки:

  1. Подготовка (скачивание программ, входящих в сервер, создание структуры сервера)
  2. Создание структуры веб-сервера
  3. Установка Apache 2.4
  4. Установка и настройка MySQL 8.0
  5. Установка и настройка PHP 8
  6. Установка и настройка phpMyAdmin
  7. Использование сервера и бэкап данных
  8. Дополнительная настройка PHP
  9. Дополнительная настройка phpMyAdmin
  10. Установка почтовой заглушки
  11. Добавление PHP директории в PATH на Windows
  12. Зависание, замедление трафика и/или ошибка сервера Asynchronous AcceptEx failed
  13. Настройка cURL в веб-сервере Apache на Windows

Вам также может пригодиться:

  1. Резервное копирование данных (сайты и базы данных) Apache в Windows
  2. Обновление сервера
  3. Дополнительный материал по настройке веб-сервера в Windows
  4. У меня ничего не работает
  5. Удаление сервера
  6. Как защитить веб-сервер Apache от взлома в Windows

1. Подготовка (скачивание программ, входящих в сервер, создание структуры сервера)

Нам нужны:

  • Apache (непосредственно веб-сервер)
  • PHP - среда для работы PHP программ (требуется практически всеми веб-сайтами)
  • MySQL - система управления базами данных (требуется большинством веб-сайтов)
  • phpMyAdmin - очень удобный инструмент для управления базами данных

Официальный сайт разработчиков Apache это httpd.apache.org. Можно скачать Apache с этого сайта. Но официальная версия собирается с использованием старого компилятора, по этой причине она не работает с новыми версиями PHP. Авторы PHP рекомендуют Apache с сайта apachelounge.com/download. Поэтому для этой инструкции скачиваем Apache именно с сайта apachelounge.com/download.

01

Если у вас 64-битная версия Windows, то вы можете выбрать как 64-битную, так и 32-битную версию компонентов. Главное правило - все компоненты должны быть одной битности. Если у вас 32-битная версия Windows, то все компоненты должны быть 32-битными. Это не относится к phpMyAdmin, который написан на языке PHP. Для PHP программ понятие битности неприменимо.

PHP 8 скачайте со страницы https://windows.php.net/download/. Выберите версию Thread Safe, обратите внимание на битность. Если вы затрудняетесь, какой именно файл скачать, то посмотрите эту заметку.

Бесплатная версия MySQL называется MySQL Community Server. Её можно скачать на странице https://dev.mysql.com/downloads/mysql/. На этой же странице есть установщик в виде исполнимого файла, но я рекомендую скачать ZIP-архив. На странице скачивания нам предлагают зарегистрироваться или войти в существующую учётную запись - но это делать необязательно. Достаточно нажать на ссылку «No thanks, just start my download». Обратите внимание на битность.

Сайт для скачивания phpMyAdmin phpmyadmin.net.

Ещё нам нужен файл Visual C++ Redistributable for Visual Studio 2015-2022, т.е. Распространяемый компонент Visual C++ для Visual Studio 2015-2022 (или любой другой более поздний), скачать его можно на официальном сайте Microsoft по ссылке (прямая ссылка на скачивание 64-битной версии; прямая ссылка на скачивание 32-битной версии).

Итак, у меня скачались следующие файлы:

  • httpd-2.4.29-Win64-VC15.zip
  • php-8.0.0-Win32-vs16-x64.zip
  • mysql-8.0.11-winx64.zip
  • phpMyAdmin-4.7.6-all-languages.zip
  • vc_redist.x64.exe

Установите файл vc_redist.x64.exe.

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

Поэтому при создании файлов:


2. Создание структуры веб-сервера

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

В корне диска C:\ создайте каталог Server. В этом каталоге создайте 2 подкаталога: bin (для исполнимых файлов) и data.

Перейдите в каталог data и там создайте подпапки DB (для баз данных) и htdocs (для сайтов).

Перейдите в каталог C:\Server\data\DB\ и создайте там пустую папку data.

Карта важных папок, которые упоминаются в данной инструкции:

C:.
└── Server
    ├── bin
    │   ├── Apache24
    │   │   └─── conf
    │   ├── mysql-8.0
    │   ├── PHP
    │   └── Sendmail
    ├── certs
    ├── data
    │   ├── DB
    │   │   └─── data
    │   └── htdocs
    │       └─── phpmyadmin
    └── manage

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.

02

Теперь в браузере набираем http://localhost/ и видим следующее:

03


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

  • 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

04

По окончанию этого процесса в каталоге C:\Server\data\DB\data\ должны появиться автоматически сгенерированные файлы:

05

Теперь служба MySQL будет запускаться при каждом запуске Windows.

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

В папке c:\Server\bin\ создаём каталог PHP и копируем в него содержимое архива php-8.0.0-Win32-vs16-x64.zip.

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

PHPIniDir "C:/Server/bin/PHP"
AddHandler application/x-httpd-php .php
LoadModule php_module "C:/Server/bin/php/php8apache2_4.dll"

06

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

c:\Server\bin\Apache24\bin\httpd.exe -k restart

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

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

<?php
phpinfo ();

В браузере откройте ссылку http://localhost/i.php. Если вы видите тоже самое, что на картинке, значит PHP работает:

Настройка PHP 8

Настройка 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=ffi
;extension=ftp
;extension=fileinfo
;extension=gd
;extension=gettext
;extension=gmp
;extension=intl
;extension=imap
;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=odbc
;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=ffi
extension=ftp
extension=fileinfo
extension=gd
extension=gettext
extension=gmp
extension=intl
extension=imap
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=odbc
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=sodium
;extension=sqlite3
;extension=tidy
;extension=xsl

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

extension=soap
extension=sockets
extension=sodium
extension=sqlite3
extension=tidy
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]['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. Поле пароля оставляем пустым. Если всё сделано правильно, то всё должно выглядеть так:

08

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) Дизайнер

12

2) Слежение

11

10. Установка почтовой заглушки

В каталоге C:\Server\bin\ создайте новый каталог с названием Sendmail. Теперь в этом каталоге создайте файл sendmail.php со следующим содержимым:

#!/usr/bin/env php
 
<?php
/*  PHP.INI
 *  [mail function]
 *  ;SMTP = localhost
 *  ;smtp_port = 25
 *  ;sendmail_from = me@example.com
 *  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('Y-m-d 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('Y-m-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\

054

Письма будут иметь расширение .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?), начните набирать «Изменение системных переменных среды» и откройте соответствующее окно настроек.

02

Там нажмите «Переменные среды»:

03

В окне «Системные переменные» найдите и кликните на Path, потом нажмите «Изменить»:

04

Далее «Создать» и впишите туда «C:\Server\bin\PHP\»:

05

Поднимите запись в самый вверх:

Закройте все окна с сохранением сделанных изменений.

Перезапустите сервер.

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 1784: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 1784:tid 444] AH00094: Command line: 'c:\\Server\\bin\\Apache24\\bin\\httpd.exe -d C:/Server/bin/Apache24'
[Thu Jun 05 07: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) Необходимо скачать файл https://curl.haxx.se/ca/cacert.pem, затем в папке 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:

Разнообразная информация об Apache в Windows, о настройках и использовании на apache-windows.ru

17. У меня ничего не работает

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

За годы существования этой инструкции было собрано много типичных ошибок, возникающих в веб-сервере, все они вместе с решением проблем описаны на отдельной странице «Ошибки при настройке и установке Apache, PHP, MySQL/MariaDB, phpMyAdmin». Там же написано, как правильно описать свою проблему, чтобы вам помогли с ней разобраться.

Если у вас что-то не работает, то просьба перед тем, как задать вопрос в комментариях, выполнить поиск по данной странице ошибок. Для этого вы можете использовать Ctrl+F в вашем браузере и искать по части строки ошибки.

Бывает редкая ошибка, связанная с тем, что какая-то другая программа уже прослушивает 80й порт. Чтобы определить, занят ли уже порт 80 сделайте так:

1) нажмите сочетание клавиш WIN + x

2) из открывшегося списка выберете «Windows PowerShell (администратор)»

3) выполните там:

Get-NetTcpConnection -State Listen | Where-Object {$_.LocalPort -eq '80'} | Select-Object LocalAddress,LocalPort,OwningProcess,@{Name="Process";Expression={(Get-Process -Id $_.OwningProcess).ProcessName}} | Format-Table

Если какая-то программа уже висит на 80-м порту, то вы её увидите.

Я собрал архив, который включает в себя все описанные здесь компоненты веб-сервера для Windows, которые уже правильно настроены. Т.е. вам достаточно просто распаковать этот архив, и вы получите готовый Apache. Подробности здесь: apache-windows.ru

Удаление сервера

Если сервер вам больше не нужен, либо вы хотите установить его заново, остановите службы и удалите их из автозапуска последовательно выполнив в командной строке:

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

Смотрите статью «Как защитить веб-сервер Apache от взлома в Windows».


Хостинг

Хороший хостинг с PHP (с выбором версий), с MySQL и phpMyAdmin. Данный сайт размещён именно на нём: отзывчивая и квалифицированная техническая поддержка, установка WordPress и других веб-приложений в одни клик, домены в подарок при оплате за год, бесплатный перенос сайта. При заказе хостинга по этой ссылке + 1 месяц бесплатно (промокод b33e0e2f).


Рекомендуется Вам:

662 комментария to Установка веб-сервера (Apache 2.4, MySQL 8.0, PHP 8, phpMyAdmin) на Windows 10

  1. Евгений:

    2 вопроса. 

    1) Зачем нужно менять текст:

    # 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

    Текст не который меняем тот же саймый.

    2) Не получается установить Апачи изначально. Но у меня версия 2.4.18

    • Роман:

      У всех будет пробелма после распаковки phpmyadmin , будет требовать mb string. Авторы статьи допустили ошибку, не до конца указали путь PHPIniDir "C:/Server/bin/PHP", не хватает в конце PHP слеша PHPIniDir "C:/Server/bin/PHP/"

      По это и ругается phpmyadmin и требует mbstring

      • Alexey:

        Вы протестировали (что без слеша не работает, а со слешем работает) или это «в теории»?

        Сейчас я специально перепроверил несколько раз, в том числе удалял PHP директорию из системного PATH (у некоторых этот путь не прописан), результат всегда один – есть слеш или его нет, разницы никакой.

        • Роман:

          именно протестировал. У меня небыло прописано в патч пути и все равно была ошибка, добавив его все равно ошибка. А вот как только дописал слеш сразу myadmin прогрузился и  на странице инфо пхп подтянуло файл ини

    • Михаил:

      При запуске команды "c:Server\bin\Apache24\bin\httpd.exe -k restart" машина выдала следующее:

      httpd.exe: Syntax error on line 537 of C:/Server/Bin/Apache24/conf/httpd.conf: C
      annot load C:/Server/bin/PHP/php7apache2_4.dll into server: \xed\xe5 \xed\xe0
      \xe9\xe4\xe5\xed\xf3\xea \xe0\xe7\xe0\xed\xed\xfb\xe9\xec\xee\xe4\xf3\xeb\xfc.

      Подскажите, что не так в этом мире?

      • Alexey:

        Проверьте, в папке C:/Server/bin/PHP/ есть файл php7apache2_4.dll?

        Чтобы наверняка, выполните в командной строке команду:

        dir C:/Server/bin/PHP/php7apache2_4.dll
        
        • Михаил:

          Как раз этого файла нет, есть "php7.dll" и "php7phpdbg.dll".

          Какого содержания должен быть файл "php7apache2_4.dll"?

          • Alexey:

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

            • Михаил:

              Спасибо, с этой проблемой вроде разобрался. Но всплыла другая: на предыдущем шаге, после редактирования my.ini, инициализации и установки, должны были сгенерироваться файлы в директории C:\Server\data\DB\data\, этого не произошло. Предпринял предписанное добавление строки в my.ini, результат не изменился..

              А при вводе в cmd -k restart выдает

              C:\Windows\system32>c:\Server\bin\Apache24\bin\httpd.exe -k restart
              AH00558: httpd.exe: Could not reliably determine the server's fully qualified do
              main name, using fe80::539:3c4c:9ecd:ef34. Set the 'ServerName' directive global
              ly to suppress this message  

            • Alexey:

              Вы делаете не по инструкции – об этом свидетельствует сообщение Apache. В комментариях уже два раза об этом спрашивали – для поиска по комментариям в веб-браузере нажмите Ctrl+f и ищите по фразе «Could not reliably determine the server».

              Делайте по инструкции, не будьте «сам себе злобный Буратино». А если вам нравится самому себя создавать проблемы из ничего – то не надо в это вмешивать меня и тратить моё время своими вопросами.

              Также смотрите здесь.

              • Alex:

                Сообствено почему было не добавить ссылку в статье на офиц. документацию Apache ??

                https://httpd.apache.org/docs/2.4/

              • Alexey:

                А толку?

                На официальной документации есть следующие языки:

                da | de | en | es | fr | ja | ko | pt-br | tr | zh-cn

                Народ будет туда заходить, плеваться, и писать мне в комментариях, что нафига, если там вообще ничего непонятно?!

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

                Ну и в любом случае — вот теперь эта ссылка есть.

            • Александр:

              Строка datadir="c:/Server/data/DB/data/" должна быть без кавычек

            • Alexey:

              В чём смысл? Из моей строки можно убрать кавычки и ничего не поменяется. Если кто-то размещает файлы с базами данных в другой папке, путь к которой содержит пробелы, то без кавычек просто не будет работать.

  2. Alexey:

    Начнём со второго вопроса, я тоже себе поставил последнюю версию Apache - эта инструкция полностью с ней совместима.

    Ошибки возникают в двух случаях:

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

    Вы напишите, какие у вас ошибки - посторяюсь помочь советом.

    А теперь вернёмся к первому вопросу. Помните про невнимательность?

    меняем

        # 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

  3. Евгений:

    На счет All правда не заметил. Пути и диски и папки все правильно пишу. Несоответсвие идет уже в коммандной строке, а потом нет надписи "Index of /". Кидаю скрин коммандной строки. Спасибо за помощь.

    • Ренат:

      если у вас не первая установка Апач, и вы её уже проводили в командной строке, то вам необходимо деинсталировать изменения внесённые предыдущей установкой.  
      c:\Server\bin\Apache24\bin\httpd.exe -k install
      попробуйте вместо install - uninstall, мне помогло

       

  4. Виталий:

    У меня Windows 10, phpmyadmin не фурычит ошибка http 500, i.php инфу отображает, что я не так делаю, 

    • Alexey:

      Что у вас в файле C:\Server\bin\Apache24\logs\error.log ? Если большой, выложите на какой-нибудь файлообменник. Если не слишком большой, скопируйте содержимое прямо здесь, в комментарий.

      • Дмитрий:

        Алексей, добрый день!

        Ставлю сервер на Windows 7. Apach и MySQL встали нормально по Вашей инструкции. Дошел до PHP. Скачал архив php-7.2.3-Win32-VC15-x64.zip. Добавил в конец файла httpd.conf строки по инструкции. Перезапускаю Apach. Получаю в командной строке сообщение:

        C:\Users\Администратор>c:\Server\bin\Apache24\bin\httpd.exe -k restart

        httpd.exe: Syntax error on line 537 of C:/Server/Bin/Apache24/conf/httpd.conf: C

        annot load C:/Server/bin/PHP/php7apache2_4.dll into server: %1 \xed\xe5 \xff\xe2

        \xeb\xff\xe5\xf2\xf1\xff \xef\xf0\xe8\xeb\xee\xe6\xe5\xed\xe8\xe5\xec Win32.

        В  файле error.log появились строчки:

        [Sun Mar 25 10:22:52.208678 2018] [mpm_winnt:notice] [pid 2608:tid 292] AH00455: Apache/2.4.33 (Win64) configured -- resuming normal operations
        [Sun Mar 25 10:22:52.224278 2018] [mpm_winnt:notice] [pid 2608:tid 292] AH00456: Apache Lounge VC15 Server built: Mar 18 2018 12:58:47
        [Sun Mar 25 10:22:52.224278 2018] [core:notice] [pid 2608:tid 292] AH00094: Command line: 'c:\\Server\\bin\\Apache24\\bin\\httpd.exe -d C:/Server/Bin/Apache24'
        [Sun Mar 25 10:22:52.224278 2018] [mpm_winnt:notice] [pid 2608:tid 292] AH00418: Parent: Created child process 2696
        [Sun Mar 25 10:22:52.583079 2018] [mpm_winnt:notice] [pid 2696:tid 180] AH00354: Child: Starting 64 worker threads.

        (дважды пытался сделать рестарт)

        Не подскажете, что с этим делать?

        С уважением

        Дмитрий

         

         

        • Дмитрий:

          Виноват, мой косяк! То был другой архив:

          php-7.2.3-Win32-VC15-x86.zip.

          Скачал х64 и все заработало!

          Спасибо!

          Продолжаю ставить.

           

  5. Alexandr:

    У меня Windows 10. Ошибка в Apache. В error.log пишется: Starting the 'Apache2.4' service [Sun Sep 11 23:44:18.285669 2016] [mpm_winnt:crit] [pid 7688:tid 496] (OS 2)Не удается найти указанный файл.  : AH00378: Failed to start the 'Apache2.4' service Starting the 'Apache2.4' service (OS 5)Отказано в доступе.  : AH00373: Failed to open the 'Apache2.4' service

    • Alexey:

      Alexandr, вы Виталий? Если вы не Виталий, то начать нужно с объяснения проблемы.

      ДЛЯ ВСЕХ: прежде чем написать комментарий, читайте новый раздел: https://hackware.ru/?p=21#11

  6. Dmitry:

    Выполнил все пункты 1- 6 в итоге вместо показанного на картинке phpMyAdmin вышло вот что:

    Fatal error: Uncaught Error: Call to undefined function mb_detect_encoding() in C:\server\data\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc:177 Stack trace: #0 C:\server\data\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc(282): _encode('The %s extensio…') #1 C:\server\data\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc(289): _gettext('The %s extensio…') #2 C:\server\data\htdocs\phpmyadmin\libraries\core.lib.php(306): __('The %s extensio…') #3 C:\server\data\htdocs\phpmyadmin\libraries\core.lib.php(961): PMA_warnMissingExtension('mbstring', true) #4 C:\server\data\htdocs\phpmyadmin\libraries\common.inc.php(102): PMA_checkExtensions() #5 C:\server\data\htdocs\phpmyadmin\index.php(13): require_once('C:\\server\\data\\…') #6 {main} thrown in C:\server\data\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc on line 177

    • Alexey:

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

      tree C:\Server > C:\Server\tree.txt

      У вас в каталоге C:\Server появится файл tree.txt. Этот файл, а также ещё файлы:

      • C:\Server\bin\Apache24\conf\httpd.conf
      • C:\Server\bin\mysql-5.7\my.ini
      • C:\Server\bin\PHP\php.ini
      • C:\Server\data\htdocs\phpmyadmin\config.inc.php

      запакуйте в архив, выложите на любой файлообменник и разместите здесь ссылку.

      • Dmitry:

        https://yadi.sk/d/OhViYLFvvPskC

        если я правильно понял то это ссылка на архив на яндекс диске.

      • Dmitry:

        Нашел причину. У меня заработало только когда я четко задал путь до модулей

        extension_dir = «C:/server/bin/PHP/ext»

        В Вашей инструкции про это не сказано. Возможно я где то ранее ошибку допустил и у меня так заработало.

        • Alexey:

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

          Сейчас поправлю инструкцию.

  7. Алекс:

    В данной строке скорее всего ошибка? DirectoryIndex index.html index.php index.htm

    • Alexey:

      DirectoryIndex устанавливает индексные файлы, т.е. тот файл, который будет отображён если открывается каталог без указания файла, например, http://localhost/test/ Поскольку файл не указан, то сервер будет искать index.html и если он есть в папке test, то отобразит его. Я к этому файлу добавляю ещё два index.php и index.htm. 

      index.php точно нужен, поскольку если он не указан, и вы откроете, например, http://localhost/phpmyadmin/, то вместо того, что ожидаете, увидите список файлов в каталоге. И чтобы увидеть веб-интерфейс вам придётся перейти по адресу http://localhost/phpmyadmin/index.php

      Аналогично и с index.htm - .htm также популярное расширение.

      Т.е. можно и без изменения этой директивы – сервер будет работать, но это добавит неудобство.

      • Elina:

        Здравствуйте, Алексей!
        Я уже честно-честно замахалась искать ошибки и не находить, чистить и переустанавливать, читать комментарии, и пытаться снова, и опять не получать результата… Затык был на стадии "Не найден mysqli" после установки phpadmin. Стала читать снова комментарии и перешла по Вашей последней ссылке и "о, чудо" страница загрузилась абсолютно нормально. Зашла без пароля, как и положено и тд и тп… Но у меня директория прописана совершенно по инструкции (скрин прилагаю)…. Все пути, имена и тд всё перепроверяла несколько раз, но по ссылке из инструкции так и не смогла зайти, а с этой захожу сразу. Где собака порылась?
        Заранее спасибо большое! Сама инструкция очень понятная и доступная.

        • Alexey:

          Я не уверен, правильно ли понял вопрос. Проблема в том, что ссылка http://localhost/phpmyadmin/ не работает, а ссылка http://localhost/phpmyadmin/index.php работает?

          Какая именно ошибка по «неправильной ссылке», вот эта вот:

          "Не найден mysqli"

          ?

          Если у вас была ошибка "Не найден mysqli", а затем эта ошибка сама по себе исчезла, то ссылки здесь не при чём и директива DirectoryIndex здесь вообще не при чём. Просто значит MySQL при первой попытке не был загружен, а при второй попытке он уже успел загрузиться. В некоторых случаях MySQL загружается довольно медленно.

          • Elina:

            Да, Вы правильно поняли по поводу ссылок) Прошу прощения за  не совсем внятное объяснение.
            Я пыталась запустить MyAdmin гораздо больше, чем 2 раза… Раз 20 наверно)) Все время выскакивала ошибка, да именно "не найден mysqli", сейчас уже не воспроизведу ее точно( Но при переходе по ссылке http://localhost/phpmyadmin/index.php сразу же открылась старница со входом. Такие дела))
            Пы.Сы. Я читала комментарии, потому что искала ошибки и Ваши ответы пользователям 😉
            В любом случае, на данном этапе у меня все работает, буду дальше продвигаться)
            Спасибо еще раз большое!

          • Михаил:

            Не запускался PhpMyAdmin, так как не находил mysqli . Установлен php-7.3.5-Win32-VC15-x64. В папке "ext" нет mysqli.dll, т.к. называется php_mysqli.dll . Поменяв в config.inc.php (конфиг PhpMyAdmin) с $cfg['Servers'][$i]['extension'] = 'mysqli';   на $cfg['Servers'][$i]['extension'] = 'php_mysqli';   - админка запустилась. В инструкции наверное стоит написать о необходимости изменения названия файла.

            • Alexey:

              Приветствую! Спасибо, что обратили внимание на это — видимо, опять что-то обновилось. Как будет время, разберусь в этом и подправлю инструкцию.

        • Alexey:

          P.S.: Чтобы всё работало не надо читать комментарии — здесь в комментариях парад невнимательности, кто во что горазд пытается сделать что-то неправильно и затем здесь пишут каких успехов добились на этом поприще.

          Просто внимательно делайте по инструкции и всё будет работать.

          • Вадим:

            Делаю всё по инструкции. Gри запуске PHPMyAdmin поzвляется ошибка: "Расширение mysqli не найдено. Пожалуйста, проверьте ваши настройки PHP". Версия PHPMyAdmin 5.0.2, ОС Windows10

            • Alexey:

              Значит не всё — что-то пропустили или сделали с ошибкой.

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

              • Вадим:

                Спасибо за ответ. Ошибку нашёл, плохо читал комментари. Нужно было изменить "mysqli" на "php_mysqli". После этого заработало.

            • Alexey:

              Спасибо за ответ. Ошибку нашёл, плохо читал комментари. Нужно было изменить "mysqli" на "php_mysqli". После этого заработало.

              Нет, это бессмыслица. В качестве подтверждения, можете вообще удалить строку $cfg['Servers'][$i]['extension'] = и вы убедитесь, что она вообще ни на что не влияет

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

              Для удачной установки, комментарии читать не только не нужно, но и вредно ))) Какую хрень мне здесь только не пишут, самый адъ я удаляю, конечно.

  8. Игорь:

    Здравствуйте Alexey,

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

    Большое спасибо!

     

  9. Дмитрий:

    Здавсвтуйте Alexey,

    Спасибо, все прекрасно поставилось и заработало, но вопрос такой а как дальше создать свои вир.хосты . Где прописать настйроки и какие ?

  10. Pavel:

    Подскажите, сделал всё так же, всё работает, как теперь прописать хосты можно ? На линуксе прям в hosts прописывается)

  11. Дмитрий:

    А уменя вопрос такой. А как все удалить ? Ведь в рееестре наверно какие то следи остануться после удаления папок. И еще, как можно ускорить быстродействие сайта, а точто wordpress открывается не шибко быстро как сервере в интернете.

    • Alexey:

      Я добавил раздел про удаление сервера: https://hackware.ru/?p=21#12

      В реестр программы ничего не записывают. Всё, что им нужно, они хранят в конфигурационных файлах, настройка которых описана в этой инструкции.

      Что касается скорости открытия, думаю, это связано исключительно с производительностью вашего компьютера. У меня локальный сервер бегает быстро, даже в маломощных виртуальных машинах. Хотя всё равно не понимаю, как сервер может работать медленно: он очень нетребователен к ресурсам, т.е. если на маломощном компьютере запускать браузер, то браузеру понадобиться несколько секунд для открытия. Серверу даже на слабой машине нужны доли секунды, чтобы сформировать страницу. Т.е. если вы открываете ярлык локалхоста и вам кажется, что он открывается долго, то может быть это просто долго запускается браузер?

      Ну или какая-нибудь экзотическая ошибка, о которой я не знаю.

  12. Наталия:

    Добрый день.
    Выполнила 1-6 и также увидела
    Fatal error: Uncaught Error: Call to undefined function mb_detect_encoding() in C:\Server\data\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc:177 Stack trace: #0 C:\Server\data\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc(282): _encode('The %s extensio…') #1 C:\Server\data\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc(289): _gettext('The %s extensio…') #2 C:\Server\data\htdocs\phpmyadmin\libraries\core.lib.php(306): __('The %s extensio…') #3 C:\Server\data\htdocs\phpmyadmin\libraries\core.lib.php(961): PMA_warnMissingExtension('mbstring', true) #4 C:\Server\data\htdocs\phpmyadmin\libraries\common.inc.php(102): PMA_checkExtensions() #5 C:\Server\data\htdocs\phpmyadmin\index.php(13): require_once('C:\\Server\\data\\…') #6 {main} thrown inC:\Server\data\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc on line 177

    При этом  extension_dir = "C:\Server\bin\PHP\ext\" прописано именно так.
    На других форумах пишут, что должно быть активно mbstring. Но мы его раскомментировали. Либо надо еще что-то сделать ?
    Заранее спасибо!

    • Alexey:

      После внесения изменений в файлы настроек нужно перезапустить сервер.

      Если сервер перезапустили, а ошибка осталась, то одним из случаев может быть когда файл php.ini не подхватывается сервером. У меня получается так сделать, если при настройке Apache я добавляю строки

      AddHandler application/x-httpd-php .php
      LoadModule php7_module "C:/Server/bin/PHP/php7apache2_4.dll"

      А строку

      PHPIniDir "C:/Server/bin/PHP"

      не добавляю или пишу её с ошибкой.

      Чтобы убедиться, что дело именно в том, что не подхватывается файл php.ini, выполните phpinfo (); (в статье описано, как это сделать) и найдите там Loaded Configuration File. Если запись такая:

      Loaded Configuration File	(none)

      То дело именно в этом.

      Правильно должно быть так:

      Loaded Configuration File	C:\Server\bin\PHP\php.ini
      
      • Наталия:

        Cпасибо за подсказку. Оказалось, что php.ini-development надо было переименовать в просто php. 
        Но у вас на скриншоте также Loaded Configuration File   (none) . Вот и думала, что все правильно идет)

        • Юлия:

          У меня была эта же проблема. Как только файл переименовала, ошибки mbstring не стало

      • Роман:

        Как раз таки у вас в описании ошибка. Вы не до конца указали путь PHPIniDir "C:/Server/bin/PHP", не хватает в конце PHP слеша PHPIniDir "C:/Server/bin/PHP/"

        По это и ругается phpmyadmin и требует mbstring

  13. Мария:

    Alexey, благодарю Вас за отличную, очень понятную и последовательную инструкцию по настройке сервера. Это лучшая статья, что я находила на просторах Internet.

    Ваше строгое напутствие из пункта 14. "У меня ничего не работает" заставляет думать и самой искать решения на возникшие сложности при установке.

    Итог: все установила, настроила, сервер работает:)

  14. Владимир:

    Уважаемый, Алексей.

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

    База данных test1 > таблица orders >

    Не могу отформатировать поле АМТ тип DECIMAL в закладке "Структура"

    Какое бы значение я ни указал справа от запятой в поле "Длина/Значения", при просмотре SQL кода запроса, выражение DECIMAL(целая часть, дробная часть) принимает ТОЛЬКО целочисленные значения. То есть DECIMAL(10), DECIMAL(6) или DECIMAL(21), но никак не DECIMAL(10,2), DECIMAL(6,3) или DECIMAL(21,5)

    В закладке же "SQL" запрос на изменение формата поля нормально вводится, редактируется и выполняется.

    Если я все правильно понимаю, это либо ошибка настройки phpMyAdmin, либо ошибка в работе самого приложения.

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

    Архив: https://yadi.sk/d/OD3h19-Two3xq

    С уважением, Владимир Корякин.

     

    • Alexey:

      Приветствую! Это исключительно ошибка phpMyAdmin. Она будет исправлена в версии 4.6.5.

      Тикеты: раз, два.

      Патч (нужно уметь пользоваться git, чтобы его применить), если невозможно ждать и исправление нужно прямо сейчас.

      Ещё один вариант обновиться раньше других. Скачайте файл https://raw.githubusercontent.com/phpmyadmin/phpmyadmin/master/libraries/Table.php (это файл из следующей версии, ссылка ведёт на гитхаб, официальный аккаунт разрабочиков phpMyAdmin). Переименуйте его – удалите расширение .txt, чтобы получилось название файла Table.php. И замените им тот, который размещён в C:\Server\data\htdocs\phpmyadmin\libraries\Table.php

      После этого всё будет хорошо:

      11

  15. Владимир:

    Спасибо, Алексей. Заменил Table.php на ваш и все заработало.

  16. Юлиан:

    Установил апач, при заходе на localhost вместо IndexOf, появляется вот это:

    Forbidden

    You don't have permission to access / on this server.

  17. Денис:

    Спасибо большое за инструкцию, в инструкции сказано создать файл config.inc.php в C:\Server\data\htdocs\phpMyAdmin, что являеться не верным. там есть дефолтный конфиг config.****.inc.php который надо переименовать и его редактировать, добавлять строки новые, иначе белый экран в http://localhost/phpMyAdmin обеспечен многим (тем кто не имеет опыта)

    • Иван:

      Так и есть. Столкнулся именно с белым экраном. Если config.sample.inc.php переименовать в config.inc.php, то получим "Добро пожаловать в phpMyAdmin" с запросом логина и пароля (а без него вход - не дает).

    • Иван:

      Потрачено 10 минут на коррекцию config.sample.inc.php с включением параметров, предлагаемых автором в его коде, с последующим пересохранением файла как config.inc.php. Панелька заработала.

  18. Владимир:

    Если Вы уже установили и успешно опробовали Apach+PHP+MySQL на своем компьютере, советую Вам сделать следующее:
    1. Заархивировать папку Server и сохранить её на любом носителе, кроме диска C: вместе с установочными файлами.  (папка на диске занимает 2.10 ГБ, архив - 263 МБ)
    2. Создать в любом текстовом редакторе файл restore.bat со следующим содержимым:
    ---------------------
    c:\Server\bin\Apache24\bin\httpd.exe -k install
    pause 0
    c:\Server\bin\Apache24\bin\httpd.exe -k start
    pause 0
    C:\Server\bin\mysql-5.7\bin\mysqld --initialize-insecure --user=root
    C:\Server\bin\mysql-5.7\bin\mysqld --install
    net start mysql
    pause 0
    c:\Server\bin\Apache24\bin\httpd.exe -k restart
    pause 0

    ---------------------
    В том случае, если вам придется по тем или иным причинам переустанавливать Windows 10 или восстанавливать диск C:, восстановить папку Server на нем будет очень просто. Нужно будет всего лишь:

     

    1. Распаковать содержимое сохраненного архива на диск C:
    2. Установить vc_redist.x64.exe
    3.
    Запустить и выполнить от имени Администратора файл restore.bat

  19. Вячеслав:

    Алексей, спасибо большое за такую подробную инструкцию.
    Может кто-то столкнется с проблемой, которая выявилась у меня при запуске phpmyadmin:
    при входе имя - root, поле с паролем пустое и дальше пишет, что с такой конфигурацией необходим пароль.
    Проблему решил так:
    открыл  …/phpmyadmin/libraries/config.default.php
    нашел в нем   $cfg['Servers'][$i]['AllowNoPassword'] = false;
    и поменял false на true.
    Перезагрузил apachi и в панель запускают без пароля. 
    При создании config.inc.php мы прописывали $cfg['Servers'][$i]['AllowNoPassword'] = true; а вот про корректировку в config.default.php забыли.

     

    • Александра:

      Больше спасибо за подсказку! Застряла на этом месте

    • Татьяна:

      Большое спасибо Алексею за такую подробную инструкция "для блондинок" без каких-либо срашных терминов и аналогий. Все делала по инструкции, но на последнем шаге phpmyadmin отказался принимать root без пароля. Воспользовалась советом Вячеслава - безрезультатно, попробовала поставить простенький пароль $cfg['Servers'][$i]['password'] = '123'; - также безрезультатно. Что можете посоветовать? 

      • Alexey:

        Напишите, какое именно сообщение (какая ошибка) вам показывается при неудачном входе?

        • Татьяна:

          Выходила ошибка [1045] Access denied for user 'root'@'localhost' (using password: NO) 

          проблема решена простой переустановкой mysql 

    • Ваше решение не помогло устранить ошибку

      mysqli::real_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: NO)

  20. Ольга:

    Спасибо, Алексей! С Вашими инструкциями даже у такой блондинки, как я, все получилось))) Хотя пару раз возникли ошибки, но все дело, как Вы и написали, исключительно в невнимательности!

  21. Валентин:

    После распаковки phpmyadmin выдаёт критические ошибки:

    Fatal error: Uncaught Error: Call to undefined function mb_detect_encoding() in C:\Server\data\htdocs\phpMyAdmin\libraries\php-gettext\gettext.inc:177 Stack trace: #0 C:\Server\data\htdocs\phpMyAdmin\libraries\php-gettext\gettext.inc(282): _encode('The %s extensio…') #1 C:\Server\data\htdocs\phpMyAdmin\libraries\php-gettext\gettext.inc(289): _gettext('The %s extensio…') #2 C:\Server\data\htdocs\phpMyAdmin\libraries\core.lib.php(306): __('The %s extensio…') #3 C:\Server\data\htdocs\phpMyAdmin\libraries\core.lib.php(961): PMA_warnMissingExtension('mbstring', true) #4 C:\Server\data\htdocs\phpMyAdmin\libraries\common.inc.php(102): PMA_checkExtensions() #5 C:\Server\data\htdocs\phpMyAdmin\index.php(13): require_once('C:\\Server\\data\\…') #6 {main} thrown in C:\Server\data\htdocs\phpMyAdmin\libraries\php-gettext\gettext.inc on line 177

  22. Алексей:

    Добрый день, Алексей!
    У меня возникли проблемы с кодировкой…
    При вызове:           

    $link = mysqli_connect($host, $user, $pswd, $database) 
    or die("не могу подключитсья к БД " . mysqli_error($link));

    $query ="SELECT * FROM student";
                $result = mysqli_query($link, $query) or die("не могу получить результат " . mysqli_error($link)); 

    if($result)
    {
        echo "Подключение выполнено успешно;\n";
        printf("Кодировка: %s\n", $link->character_set_name());
    }
    while($row=mysqli_fetch_assoc($result)){
                print "<tr>
                <br>
                            <td>".$row['id']."</td>
                            <td>".$row['fio']."</td>
                            <td>".$row['groupp']."</td>
                            <td>".$row['number']."</td>
                            <td><a href='delete_student.php?id=".$row['id']."'>Удалить</a></td>
                        </tr>";
            }

     

     

    Выдает:

    Подключение выполнено успешно; Кодировка: latin1 
    1 kjhfkjcf kjfhkjhf ????????? ???12?? ????12? Удалить 
    2 rger eargg arg jhjlfh???????? dv344rg54 sd23 Удалить 
    3 ??????? 23??? ??2?35 Удалить

    Вопрос такой:

    Как и где необходимо поменять кодировку, чтобы кирилица отображалась правильно, действия в *.ini, *.cfg  не приносили результат. Смена кодировки в phpmyadmin  и в notepad++, не приводили к необходимому результату…
    Хотел сам разобраться в этом, но похоже, что мозг закипел))

  23. Алексей:

    Вот правильная строчка

     <td><a href='delete_student.php?id=".$row['id']."'>Удалить</a></td>

  24. Артем:

    Приветствую)

    Возникла следующая проблема - при установке PHP не перезапускается Apache server, пишет следующее в консоле: "Syntax error in 524 line Cannont load "C:/Server/bin/PHP/php7apache2_4.dll" to server"

    В conf файл добаляю следующее:

    PHPIniDir "C:/Server/bin/PHP"
    AddHandler application/x-httpd-php .php
    LoadModule php7_module "C:/Server/bin/PHP/php7apache2_4.dll"

    Буду благодарен за подсказку)

  25. Артем:

    Спасибо за подробную и хорошую инструкцию!

  26. Дмитрий:

    Установил Apache следуя вашего мануала…Все проверил раз 30,один в один как у вас написано.Не работает.Открываю командную строку ввожу c:\Server\bin\Apache24\bin\httpd.exe -k install...а получаю

    Apache 2.4: Service is already installed.//// Порт 80 освободил Visual c++ установил.////

    • Дмитрий:

      Все заработало чувак)))))спасибо.Я когда на localhost выходил, он мне писал  что страница не найдена.а сейчас все ок))))целых 5 часов мучался с этими проверками

  27. Илья:

    Добрый Алексей 

    зоходя по ссылке http://localhost/i.php место того что PHP установлено у меня появляеться 

    <?php

    phpinfo ();

    спасибо за внимание

  28. Элчин:

    C:\Users\Админ>C:\Server\bin\Apache24\bin\httpd.exe -k install
    [Fri Nov 11 08:40:28.565103 2016] [mpm_winnt:error] [pid 3024:tid 116] AH00433:
    Apache2.4: Service is already installed.

    Порт не занят, все делал по инструкции.

  29. Владимир:

    Извините, Алексей, мой вопрос скорее всего дурацкий, но я только начинаю изучать PHP+MySQL и, думаю, он все же уместен т.к. для мня он не разрешим в рамках имеющихся у меня в данный момент знаний.

    Вся система установилась у меня отлично. Нормально работает и PHP и phpMyAdmin, но только по отдельности.

    Создал в папке C:\Server\data\htdocs файл_test0000.html следующего содержания:

    <html><head>
    <link href="../css/phpMM.css" rel="stylesheet" type="text/css" />
    </head><body>

    <?php
    $link1 = mysql_connect('localhost', 'root');
    ?>
    </body></html>

    и получаю сообщение:

    Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\Server\data\htdocs\_test0000.html:7 Stack trace: #0 {main} thrown in C:\Server\data\htdocs\_test0000.html on line 5

    Может я чего-то не подключил или не прописал какой-нибудь параметр?
    Требуемые файлы находятся в: https://yadi.sk/d/aTz0qt-7yS8UK

    • Alexey:

      Данное расширение — mysql_connect() — устарело начиная с версии PHP 5.5.0 и будет удалено в будущем. Используйте вместо него MySQLi или PDO_MySQL. Альтернативы для данной функции:

      • mysqli_connect()
      • PDO::__construct()

      Т.е. просто смените учебник, по которому учитесь, на более актуальный.

  30. Petr:

    Здравствуйте, не получается запустить phpmyadmin. Я уже не первый, но не нашел ответ на вопрос к решить эту ошибку. Простите за повтор, но помогите понять в чем проблема?  Спасибо 

    Фатальная ошибка : Uncaught Ошибка: Вызов неопределенной функции mb_detect_encoding () в C: \ Data \ Server \ HTDOCS \ PHPMyAdmin \ библиотеки \ PHP-Gettext \ gettext.inc: 177 Стек трассировки: # 0 C: \ Server \ Data \ HTDOCS \ PHPMyAdmin \ библиотеки \ PHP-Gettext \ gettext.inc (282): _encode ( '% S в extensio …') # 1 C: \ Server \ Data \ HTDOCS \ PHPMyAdmin \ библиотеки \ PHP-Gettext \ gettext.inc ( 289): _gettext ( '% S в extensio …') # 2 C: \ Server \ Data \ HTDOCS \ PHPMYADMIN \ библиотеки \ core.lib.php (306): __ ( '% S в extensio …' ) # 3 C: \ Server \ Data \ HTDOCS \ PHPMyAdmin \ библиотеки \ core.lib.php (961): PMA_warnMissingExtension ( 'MBstring', TRUE) # 4 C: \ Server \ Data \ HTDOCS \ PHPMYADMIN \ библиотеки \ Common. inc.php (102): PMA_checkExtensions () # 5 C: \ Server \ Data \ HTDOCS \ PHPMyAdmin \ index.php (13): require_once ( 'C: \\ Data Server \\ \\ …') # 6 {} главный выброшен в C: \ Server \ Data \ HTDOCS \ PHPMyAdmin \ библиотеки \ PHP-Gettext \ gettext.inc на линии 177

  31. Petr:

    И объясните по 6 пункту- нужно создать config.inc.php или переименовать config.SAMPLE.inc.php убрав SAMPLE. Если переименовать то куда код вставить. 

  32. Максим:

    В новой версии php 7 (у меня 7.0.13) в пункте настройки php.ini, где ищем первую группу строк

    После ;extension=php_fileinfo.dll

    Есть строка ;extension=php_ftp.dll

    Её не удалил и не раскомментировал, всё супер работает. Но в статье думаю надо поправить, а то в будущем малоли кто жаловаться будет. В остальном всё супер, спасибо!

    • Alexey:

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

      Спасибо большое, что обратили на это моё внимание – очень ценю такие полезные замечания. Прямо сейчас подправлю статью.

  33. Ольга:

    Здравствуйте! Очень помогла ваша статья, большое спасибо!!! Долго пыталась наладить совместную работу всех программ, пока не встретила эту статью. Все заработало с почти первого раза.))) Очень порадовало, что статья свежая и использованы свежие файлы.

    Хочу рассказать о своей ошибке. Может кому пригодится. После установки Apache, выдавало примерно такую же ошибку как в комментарии выше:

    [Fri Nov 11 08:40:28.565103 2016] [mpm_winnt:error] [pid 3024:tid 116] AH00433:
    Apache2.4: Service is already installed.

    Ошибка была в том, что до удаления ранее установленного Apache, не были остановлены службы. И в службах висел старый Apache. Удалить его можно в командной строке:

    C:\Windows\system32>sc delete ServiceName
    или
    C:\Windows\system32>sc delete "Service Name"

    где ServiceName или "Service Name" имя удаляемой службы

    После этого удаления у меня все заработало.

    Еще раз большое спасибо автору!!!!

     

  34. Виктор:

    Алексей спс за статью но при запуске в командной страке выдаёт ошибку в 244 строке 

    Соответственно не запускается localhost 

    Подскажите , что делать,спс

  35. Кристина:

    Добрый день. на первых этапах, при команде 

     

    c:\Server\bin\Apache24\bin\httpd.exe -k install

     

    появляется такая ошибка (см.принскрин)

    http://uploads.ru/KIjFJ.png

  36. Сыдым:

    у меня появляется вот такая ощибка когда запускаешь phpmyadmin

     The mbstring extension is missing. Please check your PHP configuration.
     

    • Ренат:

      Сыдым, SERG13

      Проверьте файл php.ini, скорее всего не расскоментирована, или неверно указана строка:

      ; extension_dir = "ext"

      В данной строке должен указываться путь к ext на сервере. В статье он указан.

      Lu, а Вы добавили в файле httpd.conf строки, указывающие на php машину ? Внимательно прочитайте статью, там они указаны.

      Статья написана толково, и если все делать так, как описано, должно все получится. А если что-то не так, то имеются уточнения в комментариях, их тоже прочитайте внимательно.

      • Lu:

        в общем мучалась 3 дня, в итоге снесла апач, поставила денвер. все работает без проблем..

      • Lu:

        То что вы говорите это все раскоменчивала и прописывала. Может если  бы с самого начала работала по вашей статье,вышло бы иначе, однако ее я нашла уже в конце, когда моральные силы были на исходе) 

    • Alex:

      Тоже долго мучился 

      Забыл переименовать файл  "php.ini-development" в "php.ini"

    • Аноним:

      Тоже столкнулся с этой проблемой. Причем первый раз делал на одной машине и всё было хорошо.

      А на второй делал, спустя неделю, и вот такую проблему получил. Уже и пути проверил, и наличии самой dll. Оказалось забыл в начале строчке убрать точку запятой

      как писали заменить: "; extension_dir = "ext" на "extension_dir = "C:\Server\bin\PHP\ext\"

  37. Lu:

    У меня выдает вот так, то есть получается не находит php.ini, что делать, я новичок в этом деле

    phpinfo()

    Configuration File (php.ini) Path

    C:\Windows

    Loaded Configuration File

    (none)

  38. SERG13:

    Alexey, подскажите, на этапе установки phpMyAdmin выдаёт ошибку "The mbstring extension is missing. Please check your PHP configuration." как здесь быть?

  39. Ренат:

    Пара уточнений.

    До того, как запустите инсталяцию сервера нужно проинсталлировать С++. В статье указана vc_redist.x64.exe. Для 32 разрядных версий Windows она не подойдет. Понадобится vc_redist.x86, скачать можно там же. Ссылка: https://www.microsoft.com/ru-ru/download/details.aspx?id=53840

    Выберите нужную версию, и скачивайте.

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

    Listen 80

    на

    Listen 127.0.0.1:80

    иначе сервер не сможет запустится, так как будет пытатся запускатся с адресом 0.0.0.0

     

     

    • Alexey:

      Спасибо за полезный комментарий. Про C++ Redistributable Visual Studio 2015 я несколько раз обновлял ссылку по мере выхода новых версий и, судя по всему, в какой-то момент забыл про 32-битные системы.

      С настройкой директивы Listen также согласен – правильно в первую очередь с точки зрения безопасности, чтобы сервер не был виден по внешнему IP. Но такая настройка вызовет проблемы у тех, у кого IPv6, проблемы с доступом по IP вида 127.0.0.*, например, 127.0.0.2. Само собой, веб-сервер не будет доступен ни с какого-либо другого компьютера даже в локальной сети.

      Можно сделать ещё так, Listen оставить без изменений, а в секции Directory убрать Require all granted и вписать туда что-то вроде такого:

      <Directory "c:/Server/data/htdocs/">
      ……………………..
      ……………………..
          Require ip 10.0.0.0/8
          Require ip 127.0.0.0/8
          Require ip 172.16.0.0/12
          Require ip 192.168.0.0/16
          Require ip fc00::/7
          Require ip ::1
      </Directory>

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

      Учитывая редкость IPv6 и простоту вашего варианта, в инструкции я исправил по вашему совету.

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

    • Alexey:

      Опять убрал про Listen 127.0.0.1:80, в Википедии нашёл:

      0.0.0.0/8 - Адреса источников пакетов «этой» («своей») сети.

  40. Алексей, огромное спасибо за статью.

    На VDS с Windows 2008_64 у меня всё прошло без "запинки"..

    Подскажите вот что: как мне теперь сделать так, чтобы вэб-сервер был доступен извне ?

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

    Заранее благодарен.

     

    • Alexey:

      Вы к веб-серверу будете обращаться по IP или хотите привязать к нему доменное имя?

      Если по IP, то всё совсем просто. Найдите в файле c:\Server\bin\Apache24\conf\httpd.conf строку

      Listen 80

      И поменяйте на

      Listen IP_вашего_сервера:80

      Вместо IP_вашего_сервера впишите настоящий IP вашего VDS.

      Если хотите привязать доменное имя, то здесь посложнее. Во-первых, нужно сделать соответствующую DNS запись. Это даже не в вашем VDS – вам нужно проконсультироваться в том месте, где вы покупали домен. Точно нужно настроить виртуальные хосты. Здесь я показывал на примере локальных виртуальных хостов – с реальным всё также.

      После любых изменений настроек не забывайте перезапускать Apache.

      Я сам ни разу не настраивал веб-сервер под Windows на VDS (только под Linux), поэтому точнее подсказать не могу. 

      • Ещё раз огромное спасибо, Алексей.

        У меня всё получилось.

        Сначала подкорректировал рекомендуемую вами строку в файле c:\Server\bin\Apache24\conf\httpd.conf. В боаузере на локальном компьютере вбил IP своего VDS. Увиденное "Страница недоступна немного расстроило". Но тут же в голову пришла мысль о том, что на VDS необходимо открыть 80 порт в брандмауэре Windows. Создал два правила для 80 порта: для входящих и исходящих соединений. В результате всё зарабортало.

        • Alexey:

          Я рад, что получилось, но если сервер открыт всем, то нужно почитать что-нибудь о тонкой настройке безопасности. Как минимум, для MySQL сделать пароль. Вход в phpMyAdmin сделать по паролю. Возможно, создать не-рут пользователей базы данных, а руту запретить удалённый вход и т.д.: это отдельная, намного более сложная тема. В этой инструкции всё делается для удобства, когда я писал, то думал только о локальном сервере.

          • Не могли бы Вы описать упомянутые вами меры по защите VDS подробнее ? Посвятить этим моментам  статьи ?

  41. Привет Алексей! С 98-го года за компьютером, чуть позже в сети. Впервые за всё это время встречаю в Интернете материал, достойный восхищения! Прошел все изложенные шаги по установке и наладке без вопросов и проблем за исключением, моя ОС (Win.10) не воспринимает командную (пробовал разные варианты) строку c:\Server\bin\Apache24\bin\httpd.exe -k restart и я обхожусь просто двумя строками … )  net stop mysql / net start mysql … https://yadi.sk/d/JR4HtLXu34Sg7E
    Ну в общем то пойду дальше … )
    Спасибо Вам дорогой за Ваш труд.
    Vostok3Bit (Виталий)

  42. Виталяс:

    Здравствуйте! Пожалуйста, подскажите! Настроил, установил и запустил apache всё как вы написали, перепроверил каждый символ 10 раз, apache запускается без ошибки, но заходя в браузере в localhost пишет что нет доступа, порты проверял, менял, не помогает

  43. Ренат:

    Спасибо огромное! Виндовс7 поставилось нормально. Тока Апач 2.4.17 уже нету.. 2.4.25,
    Да, ещё… на своём опыте убедился что существует «эхо» предыдущих, неудачных установок, особенно при операциях с командной строкой. Нужно как кто прописать тему деинсталляции внесённых изменений предыдущими установками..

  44. Денис:

    Пожалуйста скиньте архив папку Server где все нормально работает 

  45. Денис:

    Помогите пожалуйста при входе в localhost/i.php у меня нет интерфейса а вот это

    <?php
    phpinfo ();

    Помогите пожалуйста

  46. Евгений:

    Поясните как добавить PHP директории в PATH на Windows 7, там есть два окна переменные пользователя и переменные системные, и там и там есть PATH, где нажимать изменить? При нажатии изменить открывается этот параметр переменной и ее можно только изменить, кнопки создать там нет и списка тоже отдельного не появляется. Мне получается нужно переменные изменять или создать новые, но даст ли Windows создать переменные с одинаковыми именами?

  47. Александр Б.:

    Большое спасибо за интсрукцию. Все получилось и все работает.

    Единственное, что для полноты информации, можно добавить инструкцию по добавлению виртуальных хостов. Мелочь, но очень нужная штука.

  48. Сергей:

    Все хорошо, но еще лучше бы напомнить "администраторам" о необходимости установки собственных паролей, включая пароль на root phpadmin, ну и ключ лучше бы тоже новый сгенерить для строки $cfg['blowfish_secret'] = ''; в config.inc.php

    Может быть, подскажете, на какие ещё настроки безопасности обратить внимание?
     

  49. Ярослав:

    Доброго времени суток. Очень хорошая инструкция. Всё получилось. Правда по непонятной причине (что плохо) в phpMyAdmin не пропускал логин root ошибка SQL 1045.

    SQL снёс и переставил вместе phpMyAdmin и всё заработало. (Win 10 x64 LTSB)

  50. Valera:

    Для чего нужен sendmail, какие туда приходят сообщения с каким содержимым, это типо обратная связь?

    И как отправить на него письмо, чтоб проверить?

    • Alexey:

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

      Если пользовались Denwer, то там тоже есть подобная почтовая заглушка. Очень удобно отлаживать отправку почты. Я, например, на почту отправляю заполненные пользователем на сайте формы заказов, пользователь может сам себе отправить ссылку на понравившуюся страницу, можно настроить разные уведомления подписавшихся пользователей, отправлять им ссылку для восстановления пароля и т.д. – ну почта, что тут объяснять?

      В PHP письма можно отправлять, например, функцией mail.

  51. Маргарита:

    Прошу прощения за беспокойство, никак не могу установить apache, выдает ошибку "AH00558: httpd.exe: Could not reliably determine the server's fully qualified domain name, using fe80::7978:6c40:7af5:6ea5. Set the 'ServerName' directive globally to suppress this message" 

    Все по инструкции делаю, скайп от 80 порта освобожден. 80-порт вообще никакая программа не использует. Что делать? 

    • Alexey:

      Это предупреждение, а не ошибка. По идее, Apache должен всё равно работать. У вас http://localhost/ открывается?

      Чтобы это предупреждение не выводилось (цитата из инструкции):

      меняем

      #ServerName www.example.com:80

      на

      ServerName localhost
      
      • Маргарита:

        Спасибо за быстрый ответ. Уже разобралась, что это предупреждение, все установила, инструкция очень доступная, спасибо большое. 

  52. Виктор:

    После настройки конфигурации, установка, вроде, проходит успешно, но при запуске такая ошибка:

    C:\Windows\system32>d:\Server\bin\Apache24\bin\httpd.exe -k start
    (OS 10048)╬с√ўэю ЁрчЁх°рхЄё  Єюы№ъю юфэю шёяюы№чютрэшх рфЁхёр ёюъхЄр (яЁюЄюъюы/ё
    хЄхтющ рфЁхё/яюЁЄ).  : AH00072: make_sock: could not bind to address 0.0.0.0:80
    AH00451: no listening sockets available, shutting down
    AH00015: Unable to open logs

    Что то занимает 80 порт? А как проверить и вырубить это?

    • Alexey:

      Если бы дочитали статью до конца, то не спрашивали бы smiley В командной строке Windows выполните:

      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й порт.

      • Виктор:

        Или хотя бы вырубил скайп, исходя из коммента выше) Спасибо, запустился. Буду делать дальше) Только еще вопрос, оно со скайпом вообще не бует запускаться, или их можно как то подружить?

        • Alexey:

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

          «Проблема решена — порт занимал Скайп (есть у него такая бяка в настройках соединения — использовать порты 80 и 443 в качестве альтернативных, после того, как я отключил эту опцию, всё заработало)».

          Т.е. в настройках, по крайне мере раньше, это можно было поменять.

          • Виктор:

            Понял, спасибо наиогромнейшее. Чуть позже подтвержу или опровергну этот вариант на работоспособность сегодня) 

            И тут же задамся новым вопросом 🙂 Я вместо php 7 решил использовать php 5.6. Поэтому в файле конфигурации внес такие строки:

            LoadModule php5_module "d:/Server/bin/PHP/php5phpdbg.dll" 

            Но сервер не перезапускается. выдает такую ошибку

            C:\Windows\system32>d:\Server\bin\Apache24\bin\httpd.exe -k restart
            httpd.exe: Syntax error on line 534 of D:/Server/bin/Apache24/conf/httpd.conf: C
            an’t locate API module structure `php5_module’ in file D:/Server/bin/PHP/php5php
            dbg.dll: No error

            В чем еще кроется недочет или ошибка? 

            • Alexey:

              Для версии 5.6 нужно начать с установки VC11: https://www.microsoft.com/en-us/download/details.aspx?id=30679

              А настройки в конфигурационном файле Apache 2.4 (по моей инструкции):

              PHPIniDir "C:/Server/bin/PHP"
              AddHandler application/x-httpd-php .php
              LoadModule php5_module "C:/Server/bin/PHP/php5apache2_4.dll"
              
              • Виктор:

                Эм, а где, собственно, файл "php7apache2_4.dll" ?) Есть "php7.dll", но не apache. 

              • Виктор:

                Понятно, не ту версию скачал)

            • Виктор:

              Ок, отбой вопроса, ибо решил все атки поставить php7) А со скайпом совет - рабоатет. В настройках снял галочку "использовать для доп. входящих соединений 80 и 443 порт"

              p.s - на секунду опередили с ответом) большое спасибо

  53. Елена:

    Алексей, Вам нужно учебники писать! Очень доступно. Спасибо огромное!

  54. Клочковъ В.И:

    Согласен с предидущим оратором! Только вот пусть учебники будут про nginx,да?… А то, apache ведь старый как какашки мамонтов…и учебники,опять же,получатся очень тоненькие.

  55. Александр:

    Помогите пожалуйста. До пункта 6 (установка phpMyAdmin) все шло хорошо. Когда я набираю в браузере http://localhost/phpmyadmin/, выдает ошибку:

    The mbstring extension is missing. Please check your PHP configuration.

    Из предыдущих пунктов все перепроверил несколько раз. Все по инструкции. В чем может быть проблема?

  56. Александр:

    Уже все решил.

    А вот с этим пунктом возникли сложности "Изменение системных переменных среды" .

    У меня Windovs 7, все совсем по-другому. Я в нижнем поле нажал изменить. В строку значение переменной в конце списка добавил C:\Server\bin\PHP\. После чего в верхнем поле тоже появилась переменная Path. Это правильно? Или нужно по-другому?

  57. Дмитрий:

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

    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'
    PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\\Server\\bin\\PHP\\ext\\php_ldap.dll

    PHP Warning:  PHP Startup: Unable to load dynamic library C:\\Server\\bin\\PHP\\ext\\php_pdo_pgsql.dll' - 
    PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\\Server\\bin\\PHP\\ext\\php_pgsql.dll' 

  58. Антон:

    Здравствуйте. Тоже постепенно учусь и освиваюсь, и столкнулся с проблемой касательно работы с БД в PHP. По каким-то причинам, у меня не работает функция mysqli_query и не работает метод query объекта mysqli. В первом случае я получаю сообщение о неизвестной функции, а во втором о синтаксической ошибке '$db' (T_VARIABLE) в конструкции:

    $result = $db->query("select * from `registered`");

    При чем другие функции и методы mysqli выполняются, проблема именно в query.

    Настраивал все по данной инструкции, переустанавливал PHP, пробовал версии 7.0.15 и 7.1.1. Но результат все такой же, однако на интернет-хостинге код выполняются исправно.

    • Alexey:

      Чтобы получить ошибку

      Fatal error: Uncaught Error: Call to undefined function query()

      на абсолютно рабочем сервере достаточно в вашей строке поменять маленькое тире на большое.

      Чтобы получать ошибки T_VARIABLE, T_STRING достаточно поставить до этой строки открытую кавычку.

      Установите себе NetBeans с PHP и отлавливайте ошибки синтаксиса и прочие ошибки начинающего программиста там. Инструкция по установке веб-сервера здесь не при чём.

      • Антон:

        Просто в этом и аномалия, что все необходимые расширения подключены. Функции mysqli работают, по крайней мере для подключения к БД и для выбора таблицы, декриптор соединения возвращается, ошибок нет.

        В коде синтаксических ошибок тоже найти не удалось. Я пользуюсь Brackets, он подсвечивает весь необходимый синтаксис. Более того, я именно этот файл с этим кодом и запускал с хостинга - все работало и без намека на ошибку.

        По этой ссылке имеются все требуемые файлы: https://1drv.ms/u/s!Am0rzFvIDboRlsxRYOx0f9kP-8kvjw

        Мне, впрочем, уже не так важно заработает оно или нет. Просто интересно от более опытных людей узнать насколько это типовая или нетиповая ситуация, а то столько всего начитаться успел пока искал, а к решению так и не приблизился  =)

        • Alexey:

          Сейчас изучаю. Можете заодно прислать ваш файл с PHP кодом, в котором ошибка? Или хотя бы часть кода до проблемной функции.

        • Alexey:

          Хотя ответ я уже нашёл, у вас невидимые символы, которые ломают код

          Call to undefined function \xc2\xa0()

          Этот невидимый символ называется NO-BREAK SPACE.

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

          Следующая ошибка:

          Uncaught Error: Call to undefined function msqli_query()

          Название функции набрано неправильно, в PHP нет функции msqli_query. Если ваша IDE не видит таких косяков, то поменяйте её. NetBeans - полностью бесплатная, очень рекомендую.

          Ну и наконец, ошибка T_VARIABLE. Вот такой код может её вызвсать:

          <?php
          $db = new mysqli()
          $result = $db->query("select * from `registered`");

          Подсказка: пропущена точка с запятой после второй строки.

          Всё очень-очень просто. Установке веб-сервера здесь ни при чём.

          • Антон:

            И правда, вот чудо. Очень огромное спасибо за помощь, аж голове полегчало =О  

            Буду почаще тогда в логи заглядывать. А то я разочек открыл, увидел, что там все то же, что я в браузере вижу, и как-то больше не заглядывал… Ох уж эти непечатаемые символы.

            • Alexey:

              Я ещё дописал комментарий - посмотрите про другие ошибки.

              • Alex:

                Стоило добавить в статью что следует настроить владельцев файлов (дискрипторы безопасности файлов и директорий)  для директории  /…./www/html/  так что-бы владельцем файлов был тот пользователь от имени которого запускаеться http сервер Apache (по умолчанию в  httpd.conf  это пользователь с именем apache в Windods реже nobody в Unix). Так-же стоит заметить что пользователь от имени которого запускаеться сервер должен  состоять в группе пользователей указанной в httpd.conf  .

                 

              • Alexey:

                Разве это применимо к Windows?

    • Alexey:

      Кстати, а вы по этой инструкции ставили? Чтобы начать получать ошибки:

      Fatal error: Uncaught Error: Call to undefined function mysqli_connect()
      Fatal error: Uncaught Error: Class 'mysqli' not found in

      нужно проигнорировать указание инструкции о подключении расширения

      extension=php_mysqli.dll

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

      В любом случае, перед написанием комментария нужно было прочитать https://hackware.ru/?p=21#14 , там написано что нужно делать в случае если всё делали по инструкции, какие файлы нужно показать.

  59. Виктор:

    А как сайты то на нем размещать?) Просто создавать папки в htdocs? Без виртуальных хостов? Что то не очень получилось у меня. Установил cms modx, установка прошла, но при входе в админку ворох ошибок. 

    • Alexey:

      Да, просто распаковывать в папку htdocs. Всё работает с полтычка:

      Делайте как написано в инструкции по установке веб-сервера, без самодеятельности, и всё будет ОК.

      • Виктор:

        Отчего же у меня ошибки повыпадывали… Что то намудрил похоже с вирутуальными хостами, по другой статье. Эх, придеться разбираться с этим тепреь. Спасибо за ответ.

  60. Виктор:

    Не могу уже с этой ошибкой, голова отваливается… Помогите по возможности, пожалуйста. 

    Необходимые файлы: https://yadi.sk/d/FaGo014F3DMajS

    Там же ошибка, которую выдает modx При попытке залогиниться. 

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

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

    • Виктор:

      Кстати Престашоп установился нормлаьно и вроде работает

    • Alexey:

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

      Вы быстрее решите свою проблему если зададите его в тематическом форуме MODX или в службу поддержке MODX. 

      • Виктор:

        Нет, как раз устанавливаю последнюю чистую версию modx. На Денвер эта система устанавливается и всегда устанавливалась номрмально, тут дело в сервере. Что то с php, судя по логу. 

        [:error] [pid 8792:tid 844] [client ::1:49254] PHP Fatal error:  Uncaught Error: Call to a member function get() on null in ["очень длинные пути"\login.class.php

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

        И я было уже думал, что это проблемы modx и php7, но у вас то все заработало на ура..

  61. Sothen:

    Возникла проблема с meta тегом "<meta http-equiv="Content-Type" content="text/html; charset=utf-8">"

    в параметрах httpd.conf добавлял "AddDefaultCharset utf-8", но так же не помог.
    Надеюсь только на вас.

    • Alexey:

      В вашем случае мета тэг работает и сервер отдаёт в кодировке utf-8. НО: файл, на который вы смотрите, сохранён в другой кодировке, не utf-8.

      Откройте файл редактором, который позволяет изменять кодировку, и пересохраните его в utf-8, это решит проблему.

  62. Дмитрий:

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

    Версия PHP

    7.0.13

    Версия mySQL

    5.1.40

    Версия Apache

    2.4.23 (Win64)

    OC

    Windows Server 2012 R2

    До этого стоял Apache/2.2 и PHP/5.3  -  подобных проблем не было.

    Файлы настроек и логи: https://cloud.mail.ru/public/Hm3y/zmzjGpLpD

    • Alexey:

      Хотя в логах нет этой ошибки, но поведение похоже на описанное в 12ом пункте https://hackware.ru/?p=21#12 . Попробуйте сделать как там написано, т.е. добавить в файл httpd.conf строки:

      AcceptFilter http none 
      AcceptFilter https none 
      EnableSendfile off 
      EnableMMAP off
      
  63. Александр:

    Спасибо!

    Windows 10 - все заработало с первого раза - просто нужно иметь зоркий глаз и прямые руки )

  64. София:

    Почему-то при попытке установить сервис Апаче через cmd пишет: "Отказано в доступе". cmd открывается от имени администратора. Винда 10

  65. Павел:

    Установил Apache по вашей инструкции. Спасибо, работает. Но сайт, который мне нужно править в localhost использует https (не http). При обращении к папке сайта идёт переадресация с http на https и страница не открывается.

    Как установить https? В инструкции этого нет.

  66. Аноним:

    Спасибо за статью , очень помогло.

    Как прикрутить address book php подскажите пожалуйста !!!!

    • Alexey:

      Устанавливается просто, достаточно распаковать скаченный архив в C:\Server\data\htdocs\ и перейти в браузере по адресу http://localhost/addressbook/. Логин пароль для входа admin/secret

      НО: работать не будет. Для PHP Address Book нужен PHP 5, а в этом сервере мы устанавливали PHP 7.

  67. Аноним:

    Т.е придется переустанавливать версию на 5?

    В документации к Адресной книги сказано, что версия не ниже 5 (Убедитесь, что ваш сервер имеет PHP> = 5 установлен (4.x не поддерживается больше),если выше версия , то она уже не поддерживается?

    • Alexey:

      Я видел документацию. Но, главное, я скачал архив и попробовал программу – вылезла ошибка о неизвестной функции, которая как раз и была удалена в PHP7.

      Варианты: да, или откатываться на PHP5 или искать альтернативу этой программе.

      • Balalastik:

        Да, с PHP 7 addressbook вываливается с ошибкой(пробовал версии php-5.5.0-nts - php-5.6.30-nts-Win32-VC11-x64), идут иероглифы и не работает вовсе , подскажите пожалуйста как установить Адресную книгу актуальную версию addressbookv8.2.5.2 ?

        Если на PHP 7 она не ставится и требует функцию, то как установить ее на PHP 5 ?

  68. Balalastik:

    Забыл добавить ,на php 7 устанавливается эта книга: http://www.phpkobo.com/address_book.php &nbsp; , но она какая то урезанная

  69. Олег:

    Ввожу команду c:\Server\bin\Apache24\bin\httpd.exe -k install , выдает сообщение об ошибке: "не могу запуститься, не хватает vcruntime140.dll , потом api-ms-win-crt-runtime-l1-1-0.dll , потом  api-ms-win-crt-stdio-l1-1-0.dll  и т.д. Из какой программы эти dll?

    • Alexey:

      Цитата из этой инструкции:

      "Ещё нам нужен файл Распространяемый компонент Visual C++ для Visual Studio 2015 с обновлением 3 (или любой другой более поздний), скачать его можно на официальном сайте Microsoft по ссылке (прямая ссылка на скачивание 64-битной версии)".

  70. Рушан:

    у меня такая вот ошибка

    Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\Server\data\htdocs\test.php:2 Stack trace: #0 {main} thrown in C:\Server\data\htdocs\test.php on line 2

    вот что написано на test.php

    <?php
    $resource = mysql_connect('localhost','root', 'NFSmostwanted22');
    if (!$resource) {
    die('Ошибка при подключении: ' . mysql_error());
    }
    echo 'Подключено успешно!';
    mysql_close($resource);
    ?>

    помогите…

    • Alexey:

      Данное расширение — mysql_connect() — устарело, начиная с версии PHP 5.5.0, и удалено начиная с PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Альтернативы для данной функции:

      • mysqli_connect()
      • PDO::__construct()

      Т.е. просто смените учебник, по которому учитесь, на более актуальный.

  71. Валерий:

    Никто не подскажет, что надо добавить или изменить в файле httpd.conf, чтобы запускать в корневой папке файлы Perl?

  72. Владимир:

    Здравствуйте, все сделал как вы написали. На десятке все встало как надо. Судя по тестовым, пошаговым подключениям. Но при попытке создать в папке htdocs файл php исчезает ее содержимое. html же файлы отображаютя нормально. В чем может быть дело?

  73. Denis:

    Алексей, в скачанном файле mysql-5.7 нет my-default.ini. Скачал и версию другой разрядности и дебаu-версию - тоже нет. Поиск по папке тоже ничего не дал. Так понимаю, его нужно создать?

    • Denis:

      Вопрос решил.
      Создал файл my.ini + в инете нашел настройки конфигруации файла для mysql-5.7 + внёс корректировки, в т.ч. строчку, предлагаемую Алексеем, но не просто добавив её в документ, а заменив другую строчку. Внимательно смотрите настройки, там интуитивно понятно

    • Alexey:

      Спасибо, что обратили внимание. Сейчас поправлю инструкцию.

  74. Антон:

    Ребят…А как запустить консоль Mysql? Все заработало, по инструкции, а вот запустить не знаю как

    • Alexey:

      В командной строке:

      cd C:\Server\bin\mysql-5.7\bin\

      А потом как обычно, если не задавали пароль для СУБД MySQL:

      mysql -u root

      Если с паролем:

      mysql -u root -p
      

      Если часто этим пользуетесь, то можно добавить в системные переменные среды путь до MySQL.

  75. Alex:

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

    Во первых понадобилась библиотека svcr120.dll, потом проблема возникла с инициализацией и запуском MySQL - ошибка 0xc000007b при запуске приложения (Windows 7 64b), подскажите пожалуйста в какую сторону копать?

  76. Саша:

    Помогите не понимаю, что это за ошибка!!! На сервере phpmyadmin ввожу логин и пароль, а мне выводит 

    Warning in .\libraries\dbi\DBIMysqli.php#556
     mysqli_real_escape_string() expects parameter 1 to be mysqli, boolean given

    Backtrace

    .\libraries\dbi\DBIMysqli.php#556: mysqli_real_escape_string(
    boolean false,
    string '_',
    )
    .\libraries\DatabaseInterface.php#2731: PMA\libraries\dbi\DBIMysqli->escapeString(
    boolean false,
    string '_',
    )
    .\libraries\navigation\nodes\Node.php#437: PMA\libraries\DatabaseInterface->escapeString(string '_')
    .\libraries\navigation\NavigationTree.php#288: PMA\libraries\navigation\nodes\Node->getData(
    string 'databases',
    integer 0,
    string '',
    )
    .\libraries\navigation\NavigationTree.php#847: PMA\libraries\navigation\NavigationTree->_buildPath()
    .\libraries\navigation\Navigation.php#45: PMA\libraries\navigation\NavigationTree->renderState()
    .\libraries\Header.php#433: PMA\libraries\navigation\Navigation->getDisplay()
    .\libraries\Response.php#260: PMA\libraries\Header->getDisplay()
    .\libraries\Response.php#273: PMA\libraries\Response->_getDisplay()
    .\libraries\Response.php#432: PMA\libraries\Response->_htmlResponse()
    PMA\libraries\Response->response()

    • Саша:

      Вот скрины.

    • Alexey:

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

  77. Саша:

    Оба способа не помогли(

  78. Назар:

    а как пароль на root в mysql поставить?

    • Alexey:

      Откройте командную строку, в неё введите:

      cd C:\Server\bin\mysql-5.7\bin\
      mysql -u root

      Внутри MySQL:

      FLUSH PRIVILEGES;
      ALTER USER 'root'@'localhost' IDENTIFIED BY 'новый_пароль';
      exit;

      Замените новый_пароль на ваш пароль.

      • Назар:

        Спасибо, уже разобрался.

        Пришлось добавить переменную среды mysql  'C:\Server\bin\mysql-5.7\bin\' на win10

        и тогда

        mysql> SET PASSWORD FOR root@localhost = PASSWORD('newpassword');

  79. Костя:

    При вводе C:\Server\bin\mysql-5.7\bin\mysqld --initialize-insecure --user=root

    появляется 

     TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

    что делать ? 

    хотя служба установилась и запустилась единтсвенное не создались файлы

  80. Долго мучался с другими инструкциями, пока не забрел к Вам. Огромное спасибо. Всё четко и по полочкам!

  81. Установил вс по статье. Вс работает - спасибо!

    Вопрос по mysql. Как сделать, чтобы к серверу можно было обратиться через командную строку используя клиент mysql, который содержится в папке server/bin/mysql/bin.

    Спасибо!

  82. Михаил:

    Установил. Все работает. Спасибо народ большое за сей труд.

  83. Степан:

    Установил, все прекрасно работало. Но когда попытался зайти в phpmyadmin после перезагрузки компьютера, стала вылезать ошибка "Невозможно подключиться к серверу MySQL" (Ввожу root и поставленный пароль). До этого спокойно заходил. Подскажите, в чем может быть проблема?

  84. Алексей:

    Windows 7. php в path прописал, но каждый раз ошибка в логе:

    winnt:notice] [pid 1760:tid 384] AH00424: Parent: Received restart signal -- Restarting the server.
    PHP Warning: PHP Startup: Unable to load dynamic library 'D:\\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\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 %1.\r\n in Unknown on line 0
    PHP Warning: PHP Startup: Unable to load dynamic library 'D:\\Server\\bin\\PHP\\ext\\php_openssl.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\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 %1.\r\n in Unknown on line 0
    [Fri Aug 04 04:01:52.779506 2017] [mpm_winnt:notice] [pid 1760:tid 384] AH00455: Apache/2.4.27 (Win64) PHP/7.0.22 configured -- resuming normal operations
    [Fri Aug 04 04:01:52.779506 2017] [mpm_winnt:notice] [pid 1760:tid 384] AH00456: Apache Lounge VC15 Server built: Jul 7 2017 12:46:00
    [Fri Aug 04 04:01:52.779506 2017] [core:notice] [pid 1760:tid 384] AH00094: Command line: 'd:\\Server\\bin\\Apache24\\bin\\httpd.exe -d D:/Server/bin/Apache24'
    [Fri Aug 04 04:01:52.799506 2017] [mpm_winnt:notice] [pid 1760:tid 384] AH00418: Parent: Created child process 1036
    PHP Warning: PHP Startup: Unable to load dynamic library 'D:\\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\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 %1.\r\n in Unknown on line 0
    PHP Warning: PHP Startup: Unable to load dynamic library 'D:\\Server\\bin\\PHP\\ext\\php_openssl.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\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 %1.\r\n in Unknown on line 0
    [Fri Aug 04 04:01:53.728509 2017] [mpm_winnt:notice] [pid 1036:tid 304] AH00354: Child: Starting 64 worker threads.
    [Fri Aug 04 04:01:54.728510 2017] [mpm_winnt:notice] [pid 2128:tid 304] AH00364: Child: All worker threads have exited.

  85. Алексей:

    PHP Warning:  PHP Startup: Unable to load dynamic library 'D:\\Server\\bin\\PHP\\ext\\php_curl.dll

    А без него не работают некоторые функции используемой CMS. Как исправить?

    • Юрий:

      Из папки /bin/php/ скопировать все файлы icu*.dll в папку /apache/bin/

      Перезапустить апач.

  86. Алексей:

    Ну все, тайна за 7 печятямя, никто никогда не сталкивался..))

  87. Алексей:

    Мда, на примере Win10, сказано добавить C:\Server\bin\PHP\ Но на Win7 процесс добавления другой, и хоть схож с 10кой, однако есть важный нюанс! Путь добавляется там в строчку через ; и если поставить путь для PHP в конец, то получим ошибки, указанные мной выше, а если в самое начало, перед уже существующими записями, то все зарабртает!

     

    Стоило бы указать это в инструкции. Тем более что ей 5 лет, и тогда 10ку вообще не использовали.

     

    В путь для PHP на Windows 7 C:\Server\bin\PHP\ ДОБАВЛЯЕТСЯ В САМОЕ НАЧАЛО СТРОКИ! Иначе не работает.

  88. Антон:

    не работает php_openssl.dll

    в php.ini

    extension_dir = "C:\Server\bin\PHP\ext"

    extension=php_openssl.dll присутствуют и раскомментированы

    по указанному выше адресу dll файл тоже есть

    ставил всё по руководству.

  89. Второй раз пользуясь этой инструкцией установил Apache… и всё остальное на VDS.

    И всё прошло "как по маслу" 🙂

    Но у меня возник вопрос.

    Как получить доступ по FTP для более удобной работы по установке сайта ?

    Заранее благодарен за ответ.

    • Alexey:

      На удалённый сервер нужно установить FTP сервер, например, FileZilla Server – или любой другой. Чтобы к нему подключиться, нужен FTP клиент, например, FileZilla client.

      При подключении, если это поддерживает сервер, старайтесь вместо FTP использовать FTPS или SFTP. Поскольку при FTP логин и пароль передаются в виде простого текста (могут быть перехвачены злоумышленниками).

      Также хороший вариант – файловый менеджер с веб-интерфейсом (погуглите, их много разных). Для него не нужно устанавливать дополнительное ПО на сервер, поскольку он запускается как обычное веб-приложение (т.е. использует Apache, который уже есть). Также на вашем домашнем компьютере не нужно устанавливать дополнительное ПО, поскольку все действия выполняются прямо через веб-браузер. Крайне желательно использовать HTTPS соединения до сервера, иначе, как и с FTP, все данные будут передаваться в виде простого текста, который могут перехватить злоумышленники.

      • Алексей, спасибо за ответ. С FTP всё понятно.

        Но Ваш ответ породил у меня ещё один вопрос :)) 

        - Как "ЗЛОУМЫШЛЕННИКУ"  перехватить пароль, который передаётся в открытом виде ? 

  90. Огромное спасибо за проделанную работу.

    При настройке сервера были проблемы с инициализацией php.ini веб-сервером. Сервер не хотел видеть этой файл по неизвестной причине. К счастью, помогла перезагрузка системы.

    Еще раз благодарю за то, что поделились такой подробнейшей инструкцией.

  91. Володя:

    Если следовать инструкции, то файл описанный  файл  i.php, а также папка phpmiadmin будут находиться по адресу c:\Server\data\htdocs\.

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

    Возможно, я что-то "проглядел.

    Но как установить папку phpmiadmin - отдельно от файловой структуры файла, то есть в разные папки ?

  92. Володя:

    Кажется, я догадался, что нужно сделать.

    Нужно создать что-то наподобие поддомена всё, как описано у вас в этой статье :

    https://hackware.ru/?p=1612

    Я так и сделал.

    Всё почти получилось, вот только phpmyadmin/  некоппектно встал.

    Наверное, при такой конфигурации необходимо что-то подправить в файле

    c:\Server\data\htdocs\phpmyadmin\config.inc.php ?

    Алексей, вы не подскажете, что именно ?

     

  93. Володя:

    Эту проблемку я тоже решил.

    Нужно было в папке c:\Server\bin\PHP\  вручную создать каталог tmp.

    Скрипт хотел туда что-то записать и ругался на отсутствие этой папки.

    Как только папка c:\Server\bin\PHP\tmp\ была создана, в неё что-то стало записываться и ошибки исчезли.

    Осталась последняя нерешённая проблема.

    По вашей инструкции

    https://hackware.ru/?p=1612

    на одном Ip я установил три сайта .

    И всё отлично работает, я почти доволен вами и собою 🙂

    Одна проблема: если в адресной строке браузера написать не домен, а IP адрес моего VDS, то видны папки , которые находятся по адресу c:\Server\data\htdocs\., и они кликабельны.

    то есть любой злоумышленник ( я люблю это словечко 🙂 )) может сколько угодно разглядывать файловую структуру моих сайтор и папки phpmyadmin.

    Как ограничить доступ из браузера по адресу http://localhost/ ?

  94. Владимир:

    Здравутвуйте.Делаю всё апо инструкции,но уже на стадии запуска Apache возникает ошибка,хотя при линке на localhost страница браузера выдаёт Index Of.

    Содержание ошибки:AH00558: httpd.exe: Could not reliably determine the server's fully qualified domain name, using fe80::2cc2:110b:bf15:16c6. Set the 'ServerName' directive globally to suppress this message

  95. Владимир:

    Алексей.Всё равно Предупреждение в командной строке осталось,хотя в файле httpd.conf прописано всё по инструкциии.После запуска MySQL, в конечной папке указанного пути файлов автоматически сгенерированых нет. Они генерируются в общую папку SQL.

     

    • Alexey:

      Предупреждение (если перевести с английского), так и говорит, что не определена директива ServerName. Если оно осталось, значит вы так и не установили эту директиву или сумели сделать это неправильно.

      Что имеется ввиду под "общей папкой SQL"? В файле настроек точно прописано

      datadir="c:/Server/data/DB/data/"

       

      • Владимир:

        Как полностью называется файл настроек где прописано 

        1

        datadir="c:/Server/data/DB/data/"

  96. Владимир:

    После лика localhost выдаёт ошибку 

    Not Found

    The requested URL /i.php was not found on this server.

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

    Установил сервер по вашей инструкции. Все работает - php файлы, mysql, phpmyadmin, localhost, ничего не виснет. Вообщем все идеально.
    Единственное, что меня слегка мучает, это error.log сервера. Там действительно, согласно п.11 вашей инструкции, появляются те ошибки (и только они).
    Сразу оговорюсь, да я устанавливал не на C:/ , а на E:/ поскольку на моем C:/ недостаточно места для файлов, что хочу размещать на локальном сервере. Однако, все пути везде выставил на E:/ и как и сказал все работает отлично.
    Переменные среды в Path поменял в соответствии с вашей инструкцией (естественно поменяв на E:/). Однако, ошибки в логах по поводу пути для тех библиотек php все еще высвечиваются. 
    Вы не могли бы мне помочь? Как можно изменить переменные среды для E:/Server ?

    Это единственная незнfчительная проблема (конечно она будет засорять объем моего error.log), но хотелось бы ее устранить, пожалуйста.
     

    Файлы в приложении.
    https://yadi.sk/d/YlIBmjGx3NEmBb

    • Alexey:

      У вас может быть не Windows 10, а более ранняя версия? Чуть выше в комментариях писали, что:

      В путь для PHP на Windows 7 C:\Server\bin\PHP\ ДОБАВЛЯЕТСЯ В САМОЕ НАЧАЛО СТРОКИ! Иначе не работает.

      • Windows 10. Уже попробовал оба решения. путь поднял вверх. 
        и из папки /bin/php/ скопировал все файлы icu*.dll в папку /apache/bin/
        ошибка все еще всплывает. по всем этим библиотекам. 

        • Alexey:

          Как альтернативный вариант, можно отключить все эти модули: php_curl.dll, php_intl.dll, php_ldap.dll, php_pdo_pgsql.dll и php_pgsql.dll. Практически наверняка они вам не понадобятся.

          Ещё один вариант – можно попробовать веб-сервер (папку bin) установить на диск c:, а папку с данными на диск e:

  98. Хочу оставить свой отзыв. Настраивал веб сервер первый раз и хочу отметить что получилось выполнить до 6 пункта включительно со второго раза по данной инструкции. Причем после первого раза я просто все переделал с 0. Спасибо автору

  99. Сергей:

    Starting the 'Apache2.4' service
    The 'Apache2.4' service is running.
    pm_winnt:notice] [pid 4984:tid 392] AH00455: Apache/2.4.28 (Win64) PHP/7.1.10 configured -- resuming normal operations
    [Tue Oct 10 19:21:05.735619 2017] [mpm_winnt:notice] [pid 4984:tid 392] AH00456: Apache Lounge VC15 Server built: Sep 25 2017 18:28:57
    [Tue Oct 10 19:21:05.735619 2017] [core:notice] [pid 4984:tid 392] AH00094: Command line: 'D:\\TestWebServers\\bin\\Apache24\\bin\\httpd.exe -d D:/TestWebServers/bin/Apache24'
    [Tue Oct 10 19:21:05.737619 2017] [mpm_winnt:notice] [pid 4984:tid 392] AH00418: Parent: Created child process 4764
    [Tue Oct 10 19:21:06.081639 2017] [mpm_winnt:notice] [pid 4764:tid 308] AH00354: Child: Starting 64 worker threads.

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

    • Alexey:

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

  100. Евгений:

    Может быть, кто-то с таким столкнется. При запуске команды в Windows 10

    C:\Server\bin\mysql-5.7\bin\mysqld --initialize-insecure --user=root

    выдает ошибки, что не найдены msvcp120.dll и msvcr120.dll. Взял эти файлы в папке Windows/System32 из поставки Windows 8.

    • Alexey:

      Этот файл содержиться в Распространяемом пакете Visual C++ для Visual Studio 2013. Ссылка для скачивания на сайте Microsoft.

      • Евгений:

        Да, спасибо. Я все-таки попал в число тех, кто читал невнимательно. И спасибо за инструкцию, это лучшее, что есть.

        • Alexey:

          Нет, вы читали внимательно. Я сверился с документацией и после ответа на ваш вопрос я исправил инструкцию. Почему ни у кого раньше не возникало проблем (никто не написал в комментариях, да и я сам время от времени перепроверяю инструкцию, делая установку на чистую систему в виртуальной машине) непонятно.

  101. Михаил:

    Добрый день, боюсь писать, но у меня не работает phpMyAdmin @

    phpMyAdmin - Ошибка

    Расширение mysqli не найдено. Пожалуйста, проверьте ваши настройки PHP. Смотрите our documentation для дополнительной информации.

    @

  102. Михаил:

    не знаю как но заработало само!

  103. Ольга:

    Здравствуйте! Скажите как теперь установить WordPress, если можно пошагово: что куда копировать и что гда прописывать? Очень нужно…только начала изучать…не могу найти толковую инструкцию по установке и настройка WordPress при уже усановленном сервере…. 

  104. Здравствуй, хороший человек!
    Спасибо тебе за ЭТО!
    Пользовался твоей шпаргалкой часто, много думал (:))
    Теперь вот требуются новые навыки и умения/знания
    Не мог бы ты в тексте статьи вставить отсылки к некоторым подробностям, как то:

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

  105. Ильдар:

    Здравствуйте Alexey. Спасибо Вам за подробную инструкуию!

    Но у меня проблемка: до 5-го пункта все шло как по маслу, Apache работает, сайты, сайты выложенные в папку открывает по localhost. Но при проверке после установки PHP путем ввода в адресную строку http://localhost/i.php браузер показывает только текст 

    <?php
    phpinfo ();

    И больше ничего.

    При перезапуске Apache вот такое сообщение: http://yadi.sk/i/vbAytEeV3QRy55

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

    В файле php.ini вместо таких строк ;extension=php_bz2.dll были такие ;extension=bz2 их я заменил как в вашем примере, с расширениями (т.е. тупо скопировал вашу группу строк и заменил).

     После этого я остановился и больше ничего не делал.

    Не подскажете куда копать?

    80 порт прослушивает только httpd.exe

    Ссылка на файлы с логами и т.д. (кроме файла config.inc.php) на файлообменнике:  http://yadi.sk/d/MGYvkgRF3QRyrY

    Файла  config.inc.php  у меня нету, т.к. до этого пункта еще не дошел.

    • Alexey:

      Приветствую! Несколько дней назад вышел PHP 7.2 и, судя по всему, что-то поменялась. Я буду тестировать и исправлять инструкцию. Обновлённая версия будет здесь же в течение 1-2 дней (я напишу вам в комментарий, когда всё готово).

      В данный момент вы можете установить по данной инструкции PHP 7.1 (с этой версией точно работает).

    • Alexey:

      Для PHP 7.2 поправил инструкцию и проверил. Но, судя по сообщению на вашем скриншоте, а также по тому, что PHP не подхватывается, вы пропустили некоторые шаги по настройке Apache.

      Про Set the 'ServerName' directive globally to suppress this message (собщение на скриншоте) вы найдёте прямо на этой странице в комментариях (нажмите CTRL+F).

      • Ильдар:

        Спасибо большое Алексей! Вирусы были на компе. Пришлось Windows переустановить, после этого все установилось как положено.

        Огромное спасибо за подробную и понятную инструкцию!

  106. Наталья:

    Доброго времени суток. Прочитала всю Вашу статью и всё выполняла чётко по инструкции, добралась до 6-го пункта (по первым 5-ти пунктам всё было хорошо и всё работало) и не могу установить phpmyadmin - выдаёт ошибку. Сделала всё заново (на свежую голову) - проблема не решилась. Как и в комментарии выше выдаёт ошибку: Расширение mysqli не найдено. Пожалуйста, проверьте ваши настройки PHP. Смотрите our documentation для дополнительной информации.

    http://clip2net.com/s/3QbGI2e

    Ссылка на документ error.log: http://clip2net.com/s/3QbGLPV

    И ещё при выполнении команды из п. 14 документ tree.txt у меня не появляется в указанном месте. Поэтому прилагаю ссылку на архив всех остальных приведённых документов: http://clip2net.com/s/3QbH53b&nbsp;

    Ответьте, пожалуйста, если ещё нужны какие-то скриншоты или документы - отправлю. Заплюхалась уже с этой установкой ((, а помочь некому - одна надежда на Вас )

    • Alexey:

      Приветствую! Вы забыли переименовать файл php.ini-development в php.ini. В этом причина всех проблем…

      • Наталья:

        Я переименовывала его, у меня ещё вылез запрос: "если вы совершите это действие, то файл может стать недоступным", я нажала всё равно переименовать. Или я что-то не так сделала?

      • Наталья:

        вот http://clip2net.com/s/3QchnSw - когда документ переименовываю название новое, а всё равно пишет, что файл остался с прежним расширением.

        • Alexey:

          Во время переименования файл открыт в текстовом редакторе? Это же просто изменение имени файла - что там может быть сложного?

          • Наталья:

            да в том то и дело, что не сложно - переименовала, но ошибка осталась ((

             

  107. Наталья:

    И у меня почему то по ссылке из последнего комментария не открывается архив с документами, а по той же ссылке из контакта всё хорошо открывается, поэтому на всякий случай прикладываю ссылку на контакт - первая запись и есть ссылка на архив. http://clip2net.com/s/3QbH53b

    https://vk.com/dotsenkoblog?w=wall266812479_136

  108. Антон:

    Алексей, все по кайфу, просто красавелла. Вместо sql ставил постгре на 32 битку, щас дали другой, тут стоит 64, и выползает такая вот ошибка php[6268]
    PHP Warning: PHP Startup: Unable to load dynamic library 'php_pgsql' (tried: C:\Server\bin\PHP\ext\php_pgsql (%1 пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ Win32.
    ), C:\Server\bin\PHP\ext\php_php_pgsql.dll (пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅ.

    Честное слово, перелопатил все форумы, что только не пробовал. Depency walker пишет что не видит постгрешную дээлельку. Думал Дээлелька битая, стащил с прошлого компа 32 битного, все равно такая же ошибка. Закидывал в систем 32 и 64, и дополнительно в папки остальные. В чем трабл может быть? Подскажите, пожалуйста =) 

    С уважением, ламер Антон.

    • Антон:

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

    • Alexey:

      Не нужно было пропускать этот шаг: https://hackware.ru/?p=21#11

      Если Windows 7, то ищите здесь в комментариях (по CTRL+F) как правильно добавить в PATH.

      • Антон:

        а я и не пропускал =)  http://rgho.st/7ddzFBcKk Вроде по инструкции вашей делал

        • Антон:

          в путь докинул папку ext, [Wed Dec 13 09:37:18.452505 2017] [mpm_winnt:notice] [pid 4560:tid 336] AH00354: Child: Starting 64 worker threads.
          [Wed Dec 13 09:37:19.453563 2017] [mpm_winnt:notice] [pid 1268:tid 340] AH00364: Child: All worker threads have exited.

          в логах винды все равно ошибка осталась

          • Антон:

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

            • Антон:

              PHP Warning:  PHP Startup: Unable to load dynamic library 'php_pgsql' (tried: C:\\Server\\bin\\PHP\\ext\\php_pgsql (%1 \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 Win32.\r\n), C:\\Server\\bin\\PHP\\ext\\php_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
              [Wed Dec 13 09:45:59.058282 2017] [mpm_winnt:notice] [pid 412:tid 336] AH00354: Child: Starting 64 worker threads.
              [Wed Dec 13 09:46:00.059339 2017] [mpm_winnt:notice] [pid 4560:tid 336] AH00364: Child: All worker threads have exited.
              Главное, что все остальные дээлельки работают гуд, т.е до этого у меня также не считывались дээлельки, я просто заменил все с того компа на котором все было гуд, но конченный постгре не хочет запускаться

            • Антон:

              вроде бы нашел, что он не видит эти дээлельки, позже отпишусь о результате. Кстати, куда их закидывать? в ту же самую папку где и php_pgqsl? или в систем 32/64? 

            • Антон:

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

              PHP Warning:  PHP Startup: Unable to load dynamic library 'php_pgsql' (tried: C:\\Server\\bin\\PHP\\ext\\php_pgsql (%1 \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 Win32.\r\n), C:\\Server\\bin\\PHP\\ext\\php_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
              [Thu Dec 14 12:11:11.136899 2017] [mpm_winnt:notice] [pid 8568:tid 336] AH00354: Child: Starting 64 worker threads.
              [Thu Dec 14 12:11:12.026949 2017] [mpm_winnt:notice] [pid 7448:tid 336] AH00364: Child: All worker threads have exited.

              Что делать?  В path я менял =( 

  109. Спасибо за подробную инструкцию по установке Apache!!!

    По началу пытался сделать сборку из представленных в примере элементов (

    httpd-2.4.17-win64-VC14.zip

    php-7.0.0-Win32-VC14-x64.zip

    mysql-5.7.9-winx64.zip

    phpMyAdmin-4.5.1-all-languages.zip

    vc_redist.x64.exe

    vcredist_x64.exe

    )

    Но потом скачал последние пакеты программ (для 64-бит Windows):

    httpd-2.4.29-Win64-VC15.zip
    php-7.2.0-Win32-VC15-x64.zip
    mysql-5.7.20-winx64.zip
    phpMyAdmin-4.7.6-all-languages.zip

    Для перестраховки установил:

    VC_redist.x64.exe
    vcredist_x64.exe

    По началу Apache установился, MySQL и PHP - заработали. Но при установке PhpMyAdmin выдавалась ошибка - (не может найти mb string)

    КОГДА УСТАНОВИЛ ВСЕ ПОСЛЕДНИЕ ПАКЕТЫ ПРОГРАММ - ВСЕ ЗАРАБОТАЛО!

    Успехов!

     

     

  110. Юрий:

    Статья ОТЛИЧНАЯ! Были проблемы, но гугл в ПОМОЩЬ!!!!!!!

    От себя добавлю, что у меня PHPmyAdmin не хотел запускаться, ссылаясь на не найденный модуль mysqli.dll, пришлось ручками в php.ini прописать:

    extension=php_mysqli.dll

    и поправил:

    extension_dir = "C:/php/ext" (заменил на свой путь до папки ext в bin/php)

  111. Андрей:

    Алексей, большое Вам человеческое спасибо. Вы мне очень помогли. Благополучия и всего наилучшего.

  112. Наталья:

    Можно уточнение? В п. 10 после выполнения всех описанных операций каталог "emails" должен автоматически появиться в папке "Sendmail"??? Или его нужно создать???

  113. Татьяна:

    Здравствуйте! Возникли проблемы на этапе настройки PHP. Добавила строки

    LoadModule php7_module "C:/Server/bin/PHP/php7apache2_4.dll", при перезхапуске апач вышло сообщение о синтаксический ошибке :

    Заглянула в этот файл, а там ANSI кодировка, и не переводится в читаемый вид.

    В этом ли проблема, и как ее решить?

  114. Андрей:

    после выполнения всех действий по инструкции не работал myphpadmin: выводилось сообщение "расширение mysqli не найдено". Разкомментировал строку 

    extension_dir = "C:\server\bin\php\ext\"

    все заработало

    • Alexey:

      Почему она была закомментирована? Зачем нужно было отступать от инструкции? Здесь ясно написано:

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

      ; extension_dir = "ext"

      и заменяем её на

      extension_dir = "C:\Server\bin\PHP\ext\"

      Как эти слова можно понять неправильно? А если вы поняли правильно, зачем сделали наоборот?

      И здесь в комментариях 99% подобных проблем…

      • SlumSnake:

        У меня та же самая проблема. При заходе на http://localhost/phpmyadmin/ выдает: Расширение mysqli не найдено и тд. Строка extension_dir = "C:\Server\bin\PHP\ext\" присутствует ( то есть я заменил этой строкой строку ; extension_dir = "ext" по инструкции). Кроме того не получается открыть свой тестовый сайтик. Я поместил его по пути : C: \Server\bin\Apache24\htdocs\ при переходе по ссылке выдает что такой сайт не найден. Что я не так делаю?

        • Alexey:

          Про тестовый сайт ошибка очевидна - его нужно было размещать в папке C:\Server\data\htdocs\ (в инструкции эта папка упоминается шесть раз, а ваш каталог (C:\Server\bin\Apache24\htdocs\) упоминается ноль раз).

          Это же касается и первой ошибки - где-то что-то невнимательно сделали. Может быть сервер не перезапустили.

          Версия PHP у вас 7.2? Не 7.1?

          • SlumSnake:

            Версия 7.2.1. Апач перезапускал следуя статье (я сделал это через диспетчер задач).

            • Alexey:

              Значит что-то где-то не раскомментировали, не дописали, пропустили. А может быть, перезапуск через Диспетчер задач не подходит (перезагрузите компьютер, если не хотите через командную строку).

              Инструкция требует не так уж много времени - попробуйте завтра ещё раз на свежую голову.

            • Alexey:

              Ещё попробуйте добавить переменную окружения PHP - это 11й шаг.

          • SlumSnake:

            Сайт заработал, кстати, спасибо за совет!

          • SlumSnake:

            Выполнил 11й пункт перезапустил сервер, не помогло. Может проблема в том что я испольозовал phpMyAdmin-4.7.7-all-languages.zip , а не ту что была указана в статье?

          • SlumSnake:

            Кроме того, почему то не выполняется PHP код, а выводиться как в текстовом файле почти без изменений. С чем это может быть связано?

  115. Антон:

    PHP Warning:  PHP Startup: Unable to load dynamic library 'curl' (tried: C:\\Server\\bin\\PHP\\ext\\curl (\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), 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 'intl' (tried: C:\\Server\\bin\\PHP\\ext\\intl (\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), 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 'ldap' (tried: C:\\Server\\bin\\PHP\\ext\\ldap (\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), 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 'pdo_pgsql' (tried: C:\\Server\\bin\\PHP\\ext\\pdo_pgsql (\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), 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 'pgsql' (tried: C:\\Server\\bin\\PHP\\ext\\pgsql (\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), 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 Warning:  PHP Startup: Unable to load dynamic library 'php_pdo_pgsql.dll' (tried: 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), C:\\Server\\bin\\PHP\\ext\\php_php_pdo_pgsql.dll.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
    [Thu Dec 21 09:49:58.102852 2017] [mpm_winnt:notice] [pid 8156:tid 328] AH00354: Child: Starting 64 worker threads.

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

  116. zetrox:

    у кого вылетают ext, в файле httpd.conf

    попробуйте прописать

    LoadFile "C:/Server/bin/php/php7ts.dll"
    LoadFile "C:/Server/bin/php/libpq.dll"
    LoadModule php7_module "C:/Server/bin/php/php7apache2_4.dll"

    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>

    <IfModule php7_module>
        PHPINIDir "C:/Server/bin/php"
    </IfModule>

    <IfModule mime_module>
        AddType text/html .php .phps
    </IfModule>

    Перезапустить apache

  117. Спасибо большое, сильно помогли. Здоровья детям.

  118. Данил:

    Большое спасибо, все работает.
    Но столкнулся с проблемой, работаю с проетками на Битриксе, при установке в php.ini значения:

    mbstring.func_overload = 2

    Просто перестает работать сервер, как только изменить обратно значение на 0 все работает.
    Данная строка мне необходима, так как без нее не устанавливаются Битрикс Дистрибутивы.
    Большое спасибо за внимание.

    • Данил:

      Проблема была решена.
      PHP 7.2 и выше не поддерживает mbstring.func_overload и если ставить значение больше 2 сервер не запускается.
      Проблема решена установкой PHP версии 7.1

  119. Cleantis:

    Для установки ocStore? требуются библиотеки " cURL " и " mCrypt " подскажите пожалуйста как установить библиотеки…

  120. Anton:

    Подскажите пожалуйства, как исправить проблему с phar. в .php.ini: phar.readonly = On но при попытки поставить ту же umi.cms выдает что расширение phar не установлено, хотя он идет по умолчанию в php. Как исправить такое положение дел? Версия php 7.2.1

    • Alexey:

      Это расширение и встроено, и включено по умолчанию. Когда вы раскомментируете строку phar.readonly = On, то ничего не меняется (поскольку оно включено по умолчанию). Изменения происходят только если вы пишите phar.readonly = Off, в этом случае оно отключается (но его опять можно включить в любом скрипте). Наверное, дело в КМС – обратитесь в их службу поддержки.

  121. Vladimir:

    Благодарю. Попробовал установить в 10 ке, по инструкции автора, только на диск D, все работает.

  122. Sadl:

    Добрый день.При установке Апача выдает ошибку "0409" не является внутренней или внешней командой исполняемой программой или пакетным файлом".Что не так сделано?

    • Alexey:

      Можете сделать скриншот? Картинку можно добавить здесь к коментарию.

      • Sadl:

        Вот такая ошибка

        • Sadl:

          Так лучше должно быть видно

        • Alexey:

          После выполнения команды у вас выводится надпись, что служба Apache уже установлена (AH00433: Apache2.4: Service is already installed.). Т.е. всё в порядке.

          Что касается ошибки «0409», то она никак не связана с установкой веб-сервера. Она связана с тем, что в командную строку вводится «0409» и нажимается кнопка ENTER. Можете провести эксперимент: открыть командную строку, ввести туда 0409 и нажать ENTER – увидите «ошибку 0409».

  123. Андрей:

    Как отписаться от получения оповещений о новых комментариях?

    • Alexey:

      Удалил вашу подписку. В каждом письме должна быть ссылка на "отписку" от комментариев.

  124. Максим:

    Добрый день, у меня есть вопрос. (Возможно кому-то тоже помогу)

    Запускаю службу через командную строку с правами администратора. Вот что я получаю: 

    C:\Windows\system32>net start mysql
    Служба "MySQL" запускается..
    Не удалось запустить службу "MySQL".

    Служба не сообщает об ошибке.
    Для вызова дополнительной справки наберите NET HELPMSG 3534.

    После того как я перенес вручную из папки C:\Server\bin\mysql-5.7\data в папку C:\Server\data\DB\data ошибка исправилась и служба успешно запустилась. Все ли я правильно сделал? Можно ли так? Не будет ли в будущем проблем?

    • Alexey:

      Судя по всему, вы выполнили инициализацию (команда C:\Server\bin\mysql-5.7\bin\mysqld --initialize-insecure --user=root) до того, как создали конфигурационный файл. В результате необходимые файлы были созданы в папке по умолчанию. После этого вы создали конфигурационный файл MySQL и пытались запустить службу, которая, в соответствии с конфигурационным файлом, искала созданные при инициализации файлы в новом расположении (а не в дефолтном, где они были созданы).

      Т.е. это исключительно ваша ошибка – если в точности следовать инструкции, этой проблемы не будет.

      Поскольку файлы вы всё-таки перенесли в нужное расположение, проблем больше быть не должно.

      • Эта проблемма возникает потому что mysql занимает порт 3306. Так вот. этот порт уже занят каким то процессом, легко проверить - 

        C:\> netstat -a -b. Это может быть процесс wmms.exe. Как его остановить непонятно.

        • Alexey:

          Пишут, что wmms.exe - это майнер. То есть программа, которая использует ресурсы вашего компьютера для заработка другим людям (нагружает процессор и потребляет электричество). Вам нужно проверить компьютер на вирусы.

  125. Vladimir:

    Уважаемый Автор Алексей!

    (установил на нескольких VM windows (VirtualBox) - все работает, одна маленькая проблемка)

    Если в курсе подскажите. Как заставит Firefox  видеть локалные хосты?

    Хром и опера без проблем, а вот фох вместо http://1.localhost перебрасывает на http://www.1.localhost&nbsp; и говорит  - ну не могу я открыть.

    - возможно, что то в настройках, хосты делал по инструкции на автоподхвате  - папки из virthosts 

    (и кстати, если это интересно - где то ранее у Вас читал предупреждение, что Апаче должен быть только один, у меня стоит три и все работают без проблем, установленный по инструкции третий)

    Заранее благодарен

    • Alexey:

      Проверка работы файла hosts

      Убедимся, что DNS запись действительно указывает на наш локальный веб-сервер. Для этого в командной строке выполните:

      ping имя_хоста

      Т.е. для вашего случая это:

      ping 1.localhost

      Если вы получаете ошибку

      При проверке связи не удалось обнаружить узел 1.localhost.
      Проверьте имя узла и повторите попытку.

      Значит не настроены, неправильно настроены виртуальные хосты в файле C:\Windows\System32\drivers\etc\hosts

      Откройте этот файл и добавьте туда запись

      127.0.0.1 1.localhost 

      Сохраните и закройте файл.

      Выполните ещё раз

      ping 1.localhost

      Должен пойти пинг, как это показано на скриншоте:

      У меня такое поведение (переадресация с http://1.localhost на http://www.1.localhost) наблюдается только если не прописан соответствующий виртуальный хост в C:\Windows\System32\drivers\etc\hosts. Почему в Хроме работает? Не знаю, наверное, какая-нибудь «интеллектуальная» фишка от разработчиков. А Опера (теперь) основывается на движке Хрома. Поэтому в ней одинаковое поведение с Хромом.

      Ещё посмотрите мой ответ здесь: https://hackware.ru/?p=1612#comment-3875, возможно он будет полезным при последующих проблемах.

      Кстати, посмотрите саму инструкцию https://hackware.ru/?p=1612 – там много про виртуальные хосты – там написано, как сделать это правильно, а также интересные «необычные» варианты.

      • Vladimir:

        С самим Firefox-ом делать ничего не следует, с IE так же - все должно работать с настройками по умолчанию!

        Сразу ответ не помог, но потом понял, что не установлен DNS-сервер, т.к. отсутствует файл hosts (C:\Windows\System32\drivers\etc\hosts).  Установил  через управление сервером (Диспетчер серверов) / предпочитаю для комфортной работы Windows сервера (в них меньше пользовательского мусора, работают процентов на 20 быстрее)

        в hosts прописал 

        127.0.0.1       1.localhost
        127.0.0.2       2.localhost
        127.0.0.3       3.localhost

        после этого стал видеть и Фокс и ИЕ (настроенные- по умолчанию), без каких либо внутренних изменений, дополнений и галочек.

        http://1.localhost&nbsp;  и т.д.

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

        Set WShell=WScript.CreateObject("WScript.Shell")    
          WShell.Run "cmd /c d:\Server\bin\Apache24\bin\httpd.exe -k restart",2

        Перезагрузка быстрее, чем через монитор сервера.

        По поводу запуска нескольких версий Апаче - не все так просто. два из трех серверов Апаче запускают установленные программы и там менять особо не хочется,т.к. заточка чисто под эти программы. Например один из серверов создан программой themler и когда там что либо меняешь прекращается подгрузка с сайта производителя программы. Тем более, что все три прекрасно уживаются и ресурсов практически не едят.

        Вывод: Если не работают Firefox и IE (не видят поддомены localhost), Значит нужно смотреть как работает DNS сервер, а не ковырять браузеры.

        PS. Еще раз благодарность за проделанную работу и выложенную информацию - изложенный вами способ наиболее прост и удобен

        Vladimir.

         

         

    • Alexey:

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

  126. ольга:

    Здравствуйте! Спасибо за толковые и понятные статьи  «Установка веб-сервера (Apache 2.4, MySQL 5.7, PHP 7, phpMyAdmin)» и "Как установить WordPress в Windows". Все получилось!! 

    Но у меня как не очень опытного пользователя возник вопрос: как посмотреть созданный сайт  с другого ПК (ПК с апач и другой ПК соединены по вайфаю). Если в firefox просто набрать localhost/wordpress/ выдается сообщение "попытка соединения не удалась"

    • Alexey:

      Здравствуйте! Подготовил инструкцию здесь: https://hackware.ru/?p=4780

      • ольга:

        Мой компьютер имеет локальный IP адрес 192.168.100.5. Если я, например, в другом ПК, подключённому по Wi-Fi к роутеру наберу в адресной строке 192.168.100.5, то откроется веб-страница моего локального веб-сервера, содержащая:

        phpmyadmin/

        wordpress/

        i.php

        но при выборе wordpress браузер переходит на страницу localhost/wordpress/ и выдает сообщение "Не могу открыть страницу localhost". Тоже происходит при задании в строке браузера: 192.168.100.5/wordpress/. Т.е. сам сайт, созданный в wordpress я не вижу. Подскажите, пожалуйста, в чем может быть  дело?

        • Alexey:

          Скорее всего, в этих настройках в качестве адреса WordPress и адреса сайта прописано localhost:

          Замените localhost на http://192.168.100.5/wordpress/, т.е. на IP адрес + название папки, где расположен сайт.

          Кроме того, что сайт будет доступен для других устройств в локальной сети, это приведёт к тому, что при открытии сайта WordPress даже на том компьютере, где установлен веб-сервер, будет происходить переадресация на http://192.168.100.5/wordpress/ - это нормально.

          Важно: IP адрес должен быть статичным, иначе в случае смены IP адреса не сможете попасть в админку WordPress, поскольку будет происходить постоянная переадресация на 192.168.100.5, который недоступен.

  127. Lith:

    Подскажите, как сделать чтобы устаовленный сервер Апач был доступен в локальной сети.

    Т.е. чтобы его можно было открыть с другой машины в локалке по его ip, например  так http://192.168.2.1

  128. Виталий:

    Добрый день, Алексей! Подскажите пожайлуста. На пункте 6 выдает ошибку: The mysqli extension is missing. Please check your PHP configuration. See our documentation for more information.

    В чем может быть проблема?

     

    • Alexey:

      Не добавили или записали с ошибкой строку PHPIniDir "C:/Server/bin/PHP" в файл c:\Server\bin\Apache24\conf\httpd.conf, правильно?

      • Виталий:

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

        С чем это может быть связано?

         

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

  129. Дмитрий:

    Алексей, статья суперсуперская - разжёвано всё по максимуму.Я вообще первый раз взялся за такое дело.Сначала ,правда , поэксперементировал с денвером , но что то пошло не так….В Вашем варианте , действительно , если вдруг накосячил , можно вернуться и переделать.Вообщем у меня всё заработало , был лишь один косяк с моей стороны - не переименовал php.ini-development в просто php.ini , поэтому выдало у меня сначала ошибку "The mysqli extension is missing. Please check your PHP configuration. See our documentation for more information." Почитал отзывы , частенько она у людей проскакивает, поэтому может стоит в статье акцентировать внимание , что там нужно переименовать на ".ini".Спасибо огромное за статью!

     

  130. Ирина:

    Здравствуйте. Скажите пожалуйста, как быть в пункте 4, если MySQL уже был установлен ранее в другую директорию?

  131. владимир:

    Что не так

    • владимир:

      А все понял,но у меня не открывает I.php.

      Выводит просто его содержимое.

      • владимир:

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

        Спасибо за инструкцию.Буду надеятся что это всё.

  132. Аня:

    Здравствуйте, проблема при установке MySQL.
    Пишет в командной строке при попытке запуска, что "Не удалось запустить службу "MySQL" и "Служба не сообщает об ошибке". Две предыдущие команды работают нормально, проблема возникает после ввода в командную строку " net start mysql ".
    Подаскажите, полжалуйста, как исправить и в чем может быть проблема.

    • Аня:

      Вот скриншот
      Делала всё строго по инструкции

    • Alexey:

      Посмотрите, в папке C:\Server\data\DB\data\ были сгенерированы файлы и папки? Вы их случайно не удалили по собственным причинам?

      • Аня:

        Нет, там ничего нет. Удалить я их не могла точно

        • Alexey:

          Ошибка именно из-за того, что не были созданы эти файлы. Я не могу у себя повторить эту проблему – если я удаляю файлы и запускаю команду, то файлы появляются.

          Если у кого-то ещё такая проблема – пишите здесь. И если наоборот – файлы создаются, также пишите в комментариях – будет интересно разобраться.

          Хотя у вас один файл всё-таки появился.

          • Аня:

            Вот один из сгенерированных файлов. Я так понимаю, что это отчет об ошибках. Может быть Вам это поможет понять, в чем проблема. Сама я в этом не очень хорошо разбираюсь.

            • Денис:

              Добрый день. Не генерируются файлы в папке C:\Server\data\DB\data. Пробовал уже много раз - результата нет(

          • Денис:

            Добрый день. У меня не генерируются файлы в C:\Server\data\DB\data. Делал все по инструкции и пробовал дополнительный способ - ничего не помогло. чт это может быть?

            • Alexey:

              Второй дополнительный способ решить проблему в этом комментарии.

              Если также не поможет, тогда совсем не знаю – у себя эту ошибку я воспроизвести не могу – у меня файлы появляются.

              Ещё один вариант – я настроил сервер, как описано в этой инструкции, и запаковал его в архив. Т.е. для установки достаточно распаковать архив и запустить службы. Как это сделать подробно написано здесь.

            • Денис:

              Архив пробовал установить - еще на установке апача выскакивает ошибка и установка прекращается

               

            • Alexey:

              Написали бы сразу – какая ошибка? Лучше бы, приложили скриншот. Аналогично с MySQL – что в файле C:\Server\data\DB\data\*.err?

              Кстати, у вас 32-битная система? Если так, то посмотрите этот комментарий и ответ под ним.

              Устанавливали файлы vc_redist.x64.exe и vcredist_x64.exe, о которых говориться в начале статьи?

  133. Аня:

    Предыдущий скрин отчета об ошибках сделан после удаления MySQL и его повторной установки, но БЕЗ файла my.ini. А вот очет после еще одного удаления и установки с этим файлом (my.ini (самый первый раз я устанавливала ПО ИНСТРУКЦИИ, т.е. СОЗДАВАЯ этот файл my.ini перед инициализацией и непосредственно самой установкой и запуском MySQL, это уже сейчас решила попробовать сделать это без него, мало ли помогло бы)).

    • Alexey:

      Когда вы делаете переустановку MySQL, вы очищаете папку C:\Server\data\DB\data\? Т.е. вы удалили файл ibdata1 и другие файлы, если они там есть?

      Если скаченный архив с MySQL (mysql-5.7.21-winx64.zip) распаковался без ошибок, то не нужно его «переустанавливать».

      В приведённых логах программа жалуется на проблемы в файле ibdata1 (заголовок состоит из нулевых байтов, повреждённая страница файла базы). Всё остальное уже последствия: аварийное завершение плагина InnoDB из-за неверных данных.

      Думаю, проблема в следующем: при первой инициализации произошла какая-то ошибка и был создан повреждённый файл ibdata1. При последующих переустановках вы не очищали папку C:\Server\data\DB\data\, и при каждой инициализации была попытка использовать повреждённый ibdata1.

      Попробуйте очистить папку C:\Server\data\DB\data\ от всех файлов, в том числе логов, и выполнить инициализацию: если всё прошло успешно, должно появится несколько файлов и папок, как это показано на скриншоте в инструкции.

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

      • Аня:

        Да, я очищала эту папку от всех файлов. Т.е. я сначала удаляла MySQL через командную строку как у вас написано тут в инструкции, затем удаляла из папки, куда должны быть сгенерированы файлы, всё, что там было, и заново выполняла инициализацию, установку и запуск.
        Результат тот же. MySQL не хочет запускаться.

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

        Тут Вы имеете ввиду показать этот файл, что я Вам уже кидала, только на этот раз после удаления MySQL, очистки папки с сгенерированными файлами и после ТОЛЬКО инициализации (т.е. после команды " C:\Server\bin\mysql-5.7\bin\mysqld --initialize-insecure --user=root")? Если так, то вот:

        • Аня:

          Вот что в самой папке появляется:

        • Alexey:

          Я нагуглил, что для решения проблемы

          [ERROR] InnoDB: Operating system error number 87 in a file operation
          [ERROR] InnoDB: File .\ib_logfile101: 'aio write' return OS error 187.
          [ERROR] InnoDB: Cannot continue operation

          необходимо в файл my.ini добавить строку

          innodb_flush_method=normal

          После этого очистить папку C:\Server\data\DB\data\ и вновь попробовать инициализировать.

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

          innodb_buffer_pool_size=256M
          innodb_log_file_size=256M
          innodb_thread_concurrency=16
          innodb_flush_log_at_trx_commit=2
          innodb_flush_method=normal
          innodb_use_native_aio=true

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

          • Аня:

            Спасибо Вам огромное! Первый способ помог, вполне было достаточно добавить ту одну строку в my.ini.
            Все файлы сгенерировались и служба успешно запустилась.
            ---
            Если Вам не сложно, то можете объяснить простым языком для обычного человека, в чем была у меня проблема и что делает эта строчка, которую я добавила в файл? Извините, если совсем не по теме, просто самой интересно очень.

          • Алексей:

            Потратил 2,5 часа на эту ошибку ничего не помогало - выбавал ошибку при инициализации MySQL - а всего-то нужно было удалить (переименовать) папку data и заново выполнить инициализацию.

            Просто у вас в инструкции https://hackware.ru/?p=21#4 немного непонятно написано: 

            ===============================================================

            Если инициализация завершилась неудачей и в папке C:\Server\data\DB\data\ недостаёт файлов, а в логе ошибок C:\Server\data\DB\data\*.err вы видите примерно следующие записи:
            То для решения этой проблемы удалите ===>>> все файлы <<<=== из папки C:\Server\data\DB\data\ и в файл my.ini добавьте ещё одну строчку
            ===============================================================

            Ну я и удалял ТОЛЬКО файлы, но не папки внутри неё. а надо всё.

            И получилось 🙂

  134. Алексей:

    Большое спасибо. Все заработало с первого раза на Windows 10. Использовал последние релизы программ.

  135. Иван:

    Спасибо большое, все заработало с первого раза, ни каких танцов с бубном, прошелся по всей инструкции, и все!!!
    Был только один глю, из за IE, он не в какую не хотел открывать localhost/phpmyadmin страницу с логином и поролем, отрабатывал пустую белую страницу и все, решение нашел, очень простое, поменял браузер на Opera и все открылось.
    Теперь буду ставить PHPBB форум с чатом, спросите вы зачем оно мне все, ответ прост, домашнее задание в Компьютерной академии "ШАГ", сначало препад дал задание поднять на iis 7 шаблон сайта на php 7 версии, сделал, потом он захотел форум на iis 7 с phpbb, но форум не подымается, в MySQL базу создал, пользователя создал, ставлю phpbb пишет ошибку 500.19, так и не смог решить. Посмотрим как оно на Apache получится….

  136. Светлана:

    Здравствуйте! Такая проблема, после команд 

    C:\Server\bin\mysql-5.7\bin\mysqld --initialize-insecure --user=root

    C:\Server\bin\mysql-5.7\bin\mysqld --install

    net start mysql
    в пункте 4 никаких файлов в каталоге 
    C:\Server\data\DB\data\  нету

    • Alexey:

      Попробуйте это решение https://hackware.ru/?p=21#comment-4079

      • Александр:

        datadir="c:/Server/data/DB/data/" в my.ini должна быть без кавычек. Тогда \data заполняется сразу.

      • Alex:

        Alexey: Довольно странно что у Вас в статье на скришоте когда Вы открываете пустой локальный сайт открываеться непонятная страничка а не about Apahe прописанный в файле /*……/httpd/conf.d/welcome.conf ?

        Ну возможно я ошибаюсь и это лишь разность копиляции сервера Apache для разных платформ и операционных систем ??

        • Alexey:

          Надо было читать статью, а не просто смотреть картинки — не было бы странно.

  137. 1111:

    Спасибо. Единственный доступный рабочий гайд.

    Единственное, что надо было догугливать:

    "
    http://localhost/phpmyadmin/

    выдает ошибку

    phpMyAdmin - Ошибка

    Расширение mysqli не найдено. Пожалуйста, проверьте ваши настройки PHP. Смотрите our documentation для дополнительной информации.

    "

    Нужно в php.ini :

    ; On windows:
    extension_dir="ext"

    заменить на :

    ; On windows:
    extension_dir="C:\Server\bin\PHP\ext"
     

     

    Автору большое человеческое спасибо(про phpstorm есть такой-же гайд?)).

    • Alexey:

      Приветствую! Спасибо за положительный отзыв. Но ведь про extension_dir говорится на 5м шаге.

  138. Лавр:

    Доброе время суток !

    Вопрос совсем от новичка  У Вас написано про создание каталога и подкаталога  Это тоже самое  что создание папок и вложенных папок или что-то иное ?

  139. Лавр:

    Благодарю. Но через Total предлагает создать каталог. Никогда ранее не обращал на это внимание.

    Наверное, так, как я никто в самом начале не запинался. Установил vcredist_x64.  А при установке VC_redist.x64 оно стало на меня ругаться - лицензионное соглашение и прочее. Что надо дальше сделать? Я не в том порядке установил? Если да, то  как удалить и всё исправить? 

  140. Лавр:

    Наверное, второй вопрос был лишним. Я всё таки дошёл до Index of/

     Благодарю 

  141. Лавр:

    А что здесь я делаю не так? Может ,этот my.ini не так создаю? Сначала он был создан в блокноте, но после ввода net start  mysql писало много строк с ошибкой. Потом удалил и создал в WordPad, но после этого такое выдаёт 

  142. Лавр:

    Прикреплено 

    • Alexey:

      Вы написали в конфигурационном файле 

      sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
      datadir="c:/Server/data/DB/data/"

      А надо:

      [mysqld]
      
      sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
      datadir="c:/Server/data/DB/data/"

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

  143. Люся:

    Принципиально или нет, что в п.1.  phpMyAdmin-4.7.6-all-languages.zip. В п.6 phpMyAdmin-4.5.1-all-languages.zip. А при текущем скачивании другая версия. Это не может быть причиной такого сообщения Расширение mysqli не найдено . В комментариях неоднократно этот вопрос повторяется, всё перепроверено, но результат не меняется. вариант удаления новой версии и поиска той, что указана в инструкции может дать результат?

    • Alexey:

      Что касается версии – просто скачивайте самую последнюю. Инструкция постоянно подправляется, поэтому могут быть некоторые разночтения. Смысла искать старую версию нет – ничего не измениться, поскольку проблема 100% в неправильной настройке сервера.

      Если хотите, дайте файлы, про которых говориться в пункте https://hackware.ru/?p=21#16 (десятый пункт)

  144. Люся:

    https://oldbrowser.files.fm/u/en9vjnqf

    https://ru.files.fm/u/en9vjnqf#_

    Здравствуйте!

    Размещено здесь. Совсем туплю, несколько раз удаляла и перепроверяла.

    И ещё – вчера 2 раза после установки делала перезагрузку, так он пишет Службе «Служба профилей пользователей» не удалось войти в систему. Невозможно загрузить профиль пользователя.

    Огромное спасибо за инструкцию, там всё супер.  Может, моя ошибка ещё в первых установках? Apache и PHP загружаются.

  145. Люся:

    Утром писала ссылку на файлообменник, но её пока нет здесь. Прихина не может быть в этом - внизу не все файла , как в инструкции п.4

    ibdata1

    а потом только

    WIN-C8 и т.д……….er

  146. Люся:

    Здравствуйте!

    Ошибка осталась

    Ссылка на файлообменник с документами по п.16.10

    https://oldbrowser.files.fm/u/76c8nwyr#_

     

  147. Люся:

    Здравствуйте!

     

    Предыдущим письмом отправила ссылку на архив со вчерашними последними переустановками. 

     

    Ситуация с ошибкой phpmyadmin та же самая.

     

    1. При добавлении строки при перестановке 

    MySQL 

     всё появилось. Но позже, уже после сохранения архива и перезагрузке компьютера, решила посмотреть, что там, оказалось, что как и было в первых вариантах. Загрузилось, а потом удалилась.2.  

    MySQL 

     должен где-то запускаться? Похоже, что причина всех проблем phpmyadmin в нем?3. Что здесь так и не так?  При запуске сервера  на нем есть сразу переход на на php и phpmyadmin с ошибкой. 

    MySQL 

     нет. 

    Прикрепила фото документов

    • Alexey:

      У вас конфигурационные файлы названы php.ini.ini и my.ini.ini - одного этого достаточно, чтобы не работало. Я не зря там писал - делайте на свежую голову и всё будет работать.

  148. Люся:

    это было вначале,но потом снова пропало.

    возможно, после перезапуска пк

  149. Люся:

    за последние несколько дней, то удаляла, то удаляла, то добавляла это второе .ini  Если только вэтом проблемма, то вечером снова попробую всё переустановить.

    Ещё не могу определиться в Настройка PHP 7 стоит так 

    extension_dir = "C:\Server\bin\PHP\ext\"

     

    Это и должно быть или надо поменять \ на /

     

     

    • Alexey:

      Главное правило этой инструкции - никакой отсебятины, и всё будет очень хорошо. Т.е. как написано, так и нужно делать.

  150. Люся:

    Это, вряд ли связано с установкой (возможно, проблемма у своего пк), но вчера после нажатия перезагрузить стало появляться

    An operating system wasn't found. T

    ry disconnecting contain an operating system.
    Press any key to restart.

    После этого выключаю и при включение выходит то, что на фото ниже. Выхожу из системы и только тогда попадаю куда надо

  151. Люся:

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

    Надеюсь, сегодня получится

  152. Люся:

    Здравствуйте!

    А что значит вот этот текст?

    [08A8:1AB0][2018-04-13T19:50:09]i001: Burn v3.7.3813.0, Windows v10.0 (Build 16299: Service Pack 0), path: C:\Всё с флэш\VC_redist.x64.exe, cmdline: ''
    [08A8:1AB0][2018-04-13T19:50:09]i000: Setting string variable 'WixBundleLog' to value 'C:\Users\User\AppData\Local\Temp\dd_vcredist_amd64_20180413195009.log'
    [08A8:1AB0][2018-04-13T19:50:09]i000: Setting string variable 'WixBundleOriginalSource' to value 'C:\Всё с флэш\VC_redist.x64.exe'
    [08A8:1AB0][2018-04-13T19:50:09]i000: Setting string variable 'WixBundleOriginalSourceFolder' to value 'C:\Всё с флэш\'
    [08A8:1AB0][2018-04-13T19:50:09]i000: Setting string variable 'WixBundleName' to value 'Microsoft Visual C++ 2017 Redistributable (x64) - 14.11.25325'
    [08A8:1AB0][2018-04-13T19:50:10]i100: Detect begin, 10 packages
    [08A8:1AB0][2018-04-13T19:50:10]i000: Setting version variable 'windows_uCRT_DetectKey' to value '10.0.16299.248'
    [08A8:1AB0][2018-04-13T19:50:10]i000: Setting numeric variable 'windows_uCRT_DetectKeyExists' to value 1
    [08A8:1AB0][2018-04-13T19:50:10]i107: Detected forward compatible bundle: {7474cd6e-76cc-4257-837e-5b9261e526af}, type: Upgrade, scope: PerMachine, version: 14.13.26020.0, enabled: No
    [08A8:1AB0][2018-04-13T19:50:10]i102: Detected related bundle: {7474cd6e-76cc-4257-837e-5b9261e526af}, type: Upgrade, scope: PerMachine, version: 14.13.26020.0, operation: Downgrade
    [08A8:1AB0][2018-04-13T19:50:10]i108: Detected compatible package: vcRuntimeMinimum_x64, provider: Microsoft.VS.VC_RuntimeMinimumVSU_amd64,v14, installed: {221D6DB4-46E2-333C-B09B-5F49351D0980}, version: 14.13.26020, chained: {B0037450-526D-3448-A370-CACBD87769A0}
    [08A8:1AB0][2018-04-13T19:50:10]i103: Detected related package: {221D6DB4-46E2-333C-B09B-5F49351D0980}, scope: PerMachine, version: 14.13.26020.0, language: 0 operation: Downgrade
    [08A8:1AB0][2018-04-13T19:50:10]i108: Detected compatible package: vcRuntimeAdditional_x64, provider: Microsoft.VS.VC_RuntimeAdditionalVSU_amd64,v14, installed: {C5ECDB9A-D9B0-3107-BA85-1269998A5B3E}, version: 14.13.26020, chained: {B13B3E11-1555-353F-A63A-8933EE104FBD}
    [08A8:1AB0][2018-04-13T19:50:10]i103: Detected related package: {C5ECDB9A-D9B0-3107-BA85-1269998A5B3E}, scope: PerMachine, version: 14.13.26020.0, language: 0 operation: Downgrade
    [08A8:1AB0][2018-04-13T19:50:10]i052: Condition '(VersionNT = v6.3 AND NOT VersionNT64) AND (windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10240.0)' evaluates to false.
    [08A8:1AB0][2018-04-13T19:50:10]i052: Condition '(VersionNT = v6.3 AND VersionNT64) AND (windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10240.0)' evaluates to false.
    [08A8:1AB0][2018-04-13T19:50:10]i052: Condition '(VersionNT = v6.2 AND NOT VersionNT64) AND (windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10240.0)' evaluates to false.
    [08A8:1AB0][2018-04-13T19:50:10]i052: Condition '(VersionNT = v6.2 AND VersionNT64) AND (windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10240.0)' evaluates to false.
    [08A8:1AB0][2018-04-13T19:50:10]i052: Condition '(VersionNT = v6.1 AND NOT VersionNT64) AND (windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10240.0)' evaluates to false.
    [08A8:1AB0][2018-04-13T19:50:10]i052: Condition '(VersionNT = v6.1 AND VersionNT64) AND (windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10240.0)' evaluates to false.
    [08A8:1AB0][2018-04-13T19:50:10]i052: Condition '(VersionNT = v6.0 AND NOT VersionNT64) AND (windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10240.0)' evaluates to false.
    [08A8:1AB0][2018-04-13T19:50:10]i052: Condition '(VersionNT = v6.0 AND VersionNT64) AND (windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10240.0)' evaluates to false.
    [08A8:1AB0][2018-04-13T19:50:10]i101: Detected package: vcRuntimeMinimum_x64, state: Obsolete, cached: None
    [08A8:1AB0][2018-04-13T19:50:10]i101: Detected package: vcRuntimeAdditional_x64, state: Obsolete, cached: None
    [08A8:1AB0][2018-04-13T19:50:10]i101: Detected package: Windows81_x86, state: Absent, cached: None
    [08A8:1AB0][2018-04-13T19:50:10]i101: Detected package: Windows81_x64, state: Absent, cached: None
    [08A8:1AB0][2018-04-13T19:50:10]i101: Detected package: Windows8_x86, state: Absent, cached: None
    [08A8:1AB0][2018-04-13T19:50:10]i101: Detected package: Windows8_x64, state: Absent, cached: None
    [08A8:1AB0][2018-04-13T19:50:10]i101: Detected package: Windows7_MSU_x86, state: Absent, cached: None
    [08A8:1AB0][2018-04-13T19:50:10]i101: Detected package: Windows7_MSU_x64, state: Absent, cached: None
    [08A8:1AB0][2018-04-13T19:50:10]i101: Detected package: WindowsVista_MSU_x86, state: Absent, cached: None
    [08A8:1AB0][2018-04-13T19:50:10]i101: Detected package: WindowsVista_MSU_x64, state: Absent, cached: None
    [08A8:1AB0][2018-04-13T19:50:10]i052: Condition 'VersionNT64 >= v6.0 OR (VersionNT64 = v5.2 AND ServicePackLevel >= 1)' evaluates to true.
    [08A8:1AB0][2018-04-13T19:50:10]i199: Detect complete, result: 0x0
    [08A8:075C][2018-04-13T19:50:14]e000: Error 0x80070666: Cannot install a product when a newer version is installed.
    
    • Alexey:

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

  153. Люся:

    А это нормально или нет, что  vcredist_x64.exe установилось

    А  vc_redist.x64.exe вот эту большую ругалку пишет?

  154. Люся:

    Можно попросить Вас удалить с сайта  это сообщение от 13.04.2018 в 20:19.

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

    Спасибо 

  155. Люся:

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

     

  156. Andrew:

    Все заработало, но у меня была проблема, не описаная в статье:

    При заходе на localhost открывался Default Web Site из IIS. Хотя он был остановлен.

    Решилось  удалением дефолтной папки с заглушкой c:\inetpub\wwwroot\ 

  157. Ариадна:

    Здравтствуйте, кое-как отмучившись с установкой apache (80 порт был занят sql express 2008 r2 , отключила эту службу вручную, предупреждать он меня не перестал, но хоть локалхост открывает), начала мучиться с mysql, скачала то, что надо, сделала все, как надо, компьютер пишет, что это вообще не приложение для моей ОС (32 бит). Я все обычкала, ничего не нашла. Помогите, пожалуйста

    • Alexey:

      Приветствую! Начиная с MySQL 8.0, версия в zip архиве доступна только для 64-битных систем.

      Для 32-битных систем на той же странице имеется exe установщик, но я не знаю, подойдёт он для этой инструкции или нет.

      В качестве альтернативы, можете установить MySQL 5.7.* https://dev.mysql.com/downloads/mysql/5.7.html#downloads. В той ветке имеется версия для 32-битных систем.

      • Акоп:

        Здравстуйте!Спасибо за полезный труд. Я установил sql5.7, но при выполнение команды выдает сообщение…. Для вызова дополнительной справки наберите NET HELPMSG 2185. Как же можно исправить это дело ?

  158. Роман:

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

  159. Люся:

    Здравствуйте!

    У меня со вчерашнего вечера такое. Может, от того что не сделала обновление?

    mysqli_real_connect(): (HY000/2002): ��������� �� �����������, �.�. ������ ������� ������ ������ �� ���������.

    • Alexey:

      В папке, где у вас WordPress, найдите файл wp-config.php и откройте его текстовым редактором. В этом этом файле строку:

      define('DB_HOST', 'localhost');

      замените на строку:

      define('DB_HOST', '127.0.0.1');

      Что-то делали с сервером перед тем как перестало работать? Проблема также может быть в том, что MySQL не запущена. Раньше всё работало?

  160. Люся:

    При попытке входа в консоль пишет

    Ошибка установки соединения с базой данных

    Это значит, что либо имя пользователя и пароль в файле wp-config.php неверны, либо нам не удалось связаться с сервером базы данных по адресу localhost. Возможно, сервер недоступен.

    Вы уверены, что указали правильное имя пользователя и пароль?

    Вы уверены, что ввели правильное имя сервера?

    Вы уверены, что сервер базы данных запущен?

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

  161. Люся:

    Наверно, причина в этом - как можно исправить? Весь документ такой

    ================

    wp-config.php

     

    <?php
    /**
     * Основные параметры WordPress.
     *
     * РЎРєСЂРёРїС‚ для создания wp-config.php

  162. Люся:

    Разобралась.

    Нашла то, что ниже и помогло

    --------

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

    NET stop MySQL
    NET start MySQL

    • Alexey:

      Получается, что у вас была остановлена служба MySQL. Она либо не добавлена в автозагрузку (т.е. когда запускается вместе с включением компьютера), либо в тот раз была остановлен из-за чего-то другого.

      Здесь в инструкции описано, как добавлять MySQL в автозагрузку.

  163. Люся:

    Алексей, добрый вечер! Ваш ответ увидела только что. Спасибо , если бы увидела раньше, то может мои "скитания по сайтам" закончились бы раньше.

    Особо ничего не делала, только после установки много тем в WordPress создала - наверное, где-то напутала. 

     

     

  164. Alexa:

    Добрый день! Пока только в начале пути. Установила Apache. Index of появилось все ок. 

    в каталоге c:\Server\data\htdocs\ нет ни одного файла. Можете поиграться — добавить в каталог любые html-файлы — полноценный веб-сервер работает.

    Вот так сделала, по localhost появляется нужная мне страница. А как сделать, чтоб она отктывалась под моим именем, а не localhost. Пробовала писать строчку в hosts файле 127.0.0.1 имя. но не получается. Это может означать. что все-таки неверно установила?

    • Alexey:

      Здравствуйте! Возможно, вы имеете ввиду виртуальные хосты? Если их, то требуется дополнительная настройка, она описана в этой статье: https://hackware.ru/?p=1612

      • Alexa:

        Верно. Спасибо! Изучила статью.  Использовала вот это - Виртуальные хосты на основе имени хоста.  C:\Windows\System32\drivers\etc\hosts  сюда добавила строчку, строчку раскомментила необходимую в httpd.conf, и в вот этот файл httpd-vhosts.conf добавила необходимое. Localhost открывается, сайт с именем нет. Что я упустила, что не работает(? не могу понять

        • Alexey:

          В файл C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf нужно не просто скопировать то, что указано в качестве примера. Строку ServerName study.loc нужно заменить на свою, где вместо study.loc должно быть имя, которое указано в C:\Windows\System32\drivers\etc\hosts.

          Аналогично со строкой DocumentRoot "C:/Server/data/htdocs/virthosts/host1/".

          Не забывайте перезапускать веб-сервер, после изменения конфигурационных файлов.

          Если что-то не получается с вашими собственными настройками, попробуйте пример из той статьи. Т.е. создайте виртуальных хост с именем study.loc и попробуйте открыть его в браузере.

  165. Люся:

    Здравствуйте!

    Уже удалила и по новой всё установила. Теперь всё работает. 

    Но в чём могла быть причина последних сообщений:

    Добро пожаловать в phpMyAdmin
     Существует несоответствие между HTTPS, указанным на сервере и клиенте. Это может привести к неработоспособному phpMyAdmin или угрозе безопасности. Исправьте конфигурацию своего сервера, чтобы правильно указать HTTPS.

    ========

    Если бы не устанавливала по новой, то что надо делать для исправления этой ошибки?

    Большое спасибо

  166. Анна:

    Здравствуйте!

    Все сделала строго по инструкции, в процессе установки и настройки ошибок не появлялось. в папку C:\Server\data\htdocs скопировала папку с приложением application. При загрузке страницы http://localhost/application появляется сообщение "Not Found. The requested URL /index.php was not found on this server." index.php в папке с приложением есть. Подскажите, пожалуйста, в чем может быть проблема?

    • Alexey:

      Попробуйте открыть http://localhost/, там видно папку application? Если папку application не видно зато там видно надпись "It works!", то значит вы пропустили настройку Directory.

  167. Это наверное нововведение в MySQL 8, но раньше при вставке поля без явно заданого значение по умолчанию в текстовые поля оно ставило '', а числовые 0. Теперь же генерит ошибку 1364 Field doesn't have a default values.

    Как бороться с этим? переписывать все таблицы во всех проектах вообще не выход((

    • убрал sql_mode=STRICT_TRANS_TABLES, все стало как  было. НО!

      Разворачиваю новую версию OpenCart 3, ругается на комманду SET @@session.sql_mode = 'MYSQL40' тоже убрал. Пока без ругательств. Что за режим не понятно, будем надеятся что пронесет…

  168. Добрый день! Установил MySQL по инструкции, инициализация прошла успешно, после чего установил и пытаюсь запустить net start mysql получаю следующее сообщение:

     PS C:\WINDOWS\system32> net start mysql
    Служба "MySQL" запускается….
    Не удалось запустить службу "MySQL". Служба не сообщает об ошибке. Для вызова дополнительной справки наберите NET HELPMSG 3534. PS C:\WINDOWS\system32> 

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

    • Alexey:

      Попробуйте очистить папку c:/Server/data/DB/data/ и заново выполнить инициализацию.

      Если результата не будет, то напишите, что у вас в файле C:\Server\data\DB\data\*.err после инициализации и попытке запуска.

      • Во время инициализации следующие записи:

        2018-06-05T17:49:01.067670Z 0 [Warning] [MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
        2018-06-05T17:49:01.082334Z 0 [System] [MY-013169] [Server] C:\Server\bin\mysql-8.0\bin\mysqld.exe (mysqld 8.0.11) initializing of server in progress as process 9500
        2018-06-05T17:49:26.397759Z 0 [ERROR] [MY-011071] [Server] unknown option '--Â'
        2018-06-05T17:49:26.399197Z 0 [Warning] [MY-010952] [Server] The privilege system failed to initialize correctly. If you have upgraded your server, make sure you're executing mysql_upgrade to correct the issue.
        2018-06-05T17:49:26.402150Z 0 [ERROR] [MY-010119] [Server] Aborting
        2018-06-05T17:49:28.121921Z 0 [System] [MY-010910] [Server] C:\Server\bin\mysql-8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.11)  MySQL Community Server - GPL. 

        После запуска:

        2018-06-05T17:51:40.358625Z 0 [Warning] [MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
        2018-06-05T17:51:40.367079Z 0 [System] [MY-010116] [Server] C:\Server\bin\mysql-8.0\bin\mysqld.exe (mysqld 8.0.11) starting as process 1932
        mysqld: Table 'mysql.plugin' doesn't exist
        2018-06-05T17:51:43.689514Z 0 [ERROR] [MY-010735] [Server] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
        2018-06-05T17:51:45.713918Z 0 [Warning] [MY-010015] [Repl] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
        2018-06-05T17:51:47.069693Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
        2018-06-05T17:51:47.681327Z 0 [Warning] [MY-010441] [Server] Failed to open optimizer cost constant tables
        2018-06-05T17:51:47.733692Z 0 [ERROR] [MY-013129] [Server] A message intended for a client cannot be sent there as no client-session is attached. Therefore, we're sending the information to the error-log instead: MY-001146 - Table 'mysql.component' doesn't exist
        2018-06-05T17:51:47.735423Z 0 [Warning] [MY-013129] [Server] A message intended for a client cannot be sent there as no client-session is attached. Therefore, we're sending the information to the error-log instead: MY-003543 - The mysql.component table is missing or has an incorrect definition.
        2018-06-05T17:51:47.774787Z 0 [ERROR] [MY-011071] [Server] unknown option '--Â'
        2018-06-05T17:51:47.775386Z 0 [Warning] [MY-010952] [Server] The privilege system failed to initialize correctly. If you have upgraded your server, make sure you're executing mysql_upgrade to correct the issue.
        2018-06-05T17:51:47.777010Z 0 [ERROR] [MY-010119] [Server] Aborting
        2018-06-05T17:51:50.080713Z 0 [System] [MY-010910] [Server] C:\Server\bin\mysql-8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.11)  MySQL Community Server - GPL. 

        После установки появилось новое сообщение:

        PS C:\WINDOWS\system32> C:\Server\bin\mysql-8.0\bin\mysqld --initialize-insecure --user=root
        PS C:\WINDOWS\system32> C:\Server\bin\mysql-8.0\bin\mysqld --install
        The service already exists!
        The current server installed: C:\Server\bin\mysql-8.0\bin\mysqld.exe MySQL
        PS C:\WINDOWS\system32> net start mysql
        Служба "MySQL" запускается…..
        Не удалось запустить службу "MySQL". Служба не сообщает об ошибке. Для вызова дополнительной справки наберите NET HELPMSG 3534. PS C:\WINDOWS\system32> 

         

        • Alexey:

          Во время инициализации пишет "неизвестная опция --Â". Можете сделать скриншот окна командной строки, когда вводите первую команду - чтобы команда тоже попала на изображение? Картинку можно присоединить прямо к коментарию.

          Проверьте .ini файл с настройками, чтобы в нём не был лишних символов.

          • Командная строка

            my.ini

            • Alexey:

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

              Перед тем как делать – очищайте папку c:/Server/data/DB/data/.

              Ещё один вариант – я настроил сервер, как описано в этой инструкции, и запаковал его в архив. Т.е. для установки достаточно распаковать архив и запустить службы. Как это сделать подробно написано здесь.

              Если будете ставить из архива, то предварительно удалите сервер, установленный по этой инструкции.

  169. Сапсибо, Алексей, огромное. Ручками все получилось, пробую теперь дальше.

     

    P.S. Очередной убеждаюсь, что автоматике, в частности Ctrl+C - Ctrl+V, доверять нельзя. Обязательно Ваш блог сохраню в закладки и буду рекомендовать другим, впервые встречаю, чтобы автор лично отвечал на возникающие вопросы по его же статье, а не приходилось самому додумывать по несколько суток

  170. Добрый день! Появилась новая проблема. В логах появляются ошибки:

     PHP Warning: PHP Startup: Unable to load dynamic library 'curl' (tried: C:\\Server\\bin\\PHP\\ext\\curl (\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.), 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.)) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'intl' (tried: C:\\Server\\bin\\PHP\\ext\\intl (\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.), 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.)) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'ldap' (tried: C:\\Server\\bin\\PHP\\ext\\ldap (\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.), 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.)) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_pgsql' (tried: C:\\Server\\bin\\PHP\\ext\\pdo_pgsql (\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.), 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.)) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'pgsql' (tried: C:\\Server\\bin\\PHP\\ext\\pgsql (\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.), 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.)) in Unknown on line 0

    PHP директории в PATH добавил: 

    Что еще необходимо сделать?

    • Alexey:

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

      php -v

      Должная появиться информация о версии PHP.

      Если же будет что-то вроде:

      Имя "php" не распознано как имя командлета, функции, файла сценария или выполняемой программы.
      Проверьте правильность написания имени, а также наличие и правильность пути, после чего повторите попытку.
      строка:1 знак:1

      то это означает, что переменная окружения не установлена/установлена неправильно. Обратите внимание – в статье написано, что её нужно двигать в самый вверх по отношению к другим переменным окружения.

    • Alexey:

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

  171. Надежда:

    Добрый день,поствилось всё без ошибок, изменения внесла. всё запускается кроме gd2. в php.ini всё нормально, другие библиотеки запускаются, gd - нет. В phpinfo () не отражается. Стоят все последние версии , система windows 10.

    Windows NT LENOVO-PC 10.0 build 17134 (Windows 10) AMD64

    Apache/2.4.33 (Win64) PHP/7.2.6

    ; On windows:
     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

     

    • Alexey:

      Приветствую! В файле C:\Server\bin\Apache24\logs\error.log есть какие-нибудь ошибки? Напишите их здесь.

      • Аноним:

        Алексей, большое спасибо за науку и подсказку, была ошибка в 107 строке php.ini  -раскомментировала ..хотела посмотреть протокол ошибок, а их оказывается надо в логах смотреть.Теперь всё заработало.

    • Alexey:

      И ещё, просто на всякий случай, в phpinfo() GD2 показывается как GD:

  172. Люся:

    Здравтвуйте!

    Посмотрела строку состояние в http://localhost/phpmyadmin/server_status.php

    На сервере обнаружены некоторые ошибки.

    Пожалуйста, посмотрите вниз текущего окна.

    Warning in .\libraries\classes\Dbi\DbiMysqli.php#213
    mysqli_query(): (22003/1690): BIGINT UNSIGNED value is out of range in '(unix_timestamp() - 18446744073141655155)'

    Backtrace

    .\libraries\classes\Dbi\DbiMysqli.php#213: mysqli_query(
    ,
    string 'SELECT UNIX_TIMESTAMP() - 18446744073141655155',
    integer 0,
    )
    .\libraries\classes\DatabaseInterface.php#319: PhpMyAdmin\Dbi\DbiMysqli->realQuery(
    string 'SELECT UNIX_TIMESTAMP() - 18446744073141655155',
    ,
    integer 1,
    )
    .\libraries\classes\DatabaseInterface.php#1581: PhpMyAdmin\DatabaseInterface->tryQuery(
    string 'SELECT UNIX_TIMESTAMP() - 18446744073141655155',
    integer 256,
    integer 1,
    boolean false,
    )
    .\libraries\classes\Server\Status.php#61: PhpMyAdmin\DatabaseInterface->fetchValue(string 'SELECT UNIX_TIMESTAMP() - 18446744073141655155')
    .\libraries\classes\Server\Status.php#33: PhpMyAdmin\Server\Status::getHtmlForServerStateGeneralInfo()
    .\server_status.php#31: PhpMyAdmin\Server\Status::getHtml()

     

    Мне здесь что-то надо делать после такого сообщения?

     

  173. Люся:

    В продолжение предыдущего вопроса.

    Первоначально у меня была установлена mysql-5.7. Сделала всё,как в п.14 чтобы изменить на 8.0.

    Вход выполняется, но пишет

    Основные настройки

     Изменить пароль

    Ошибка

    SQL запрос:  Изменить

     

    SELECT `CHARACTER_SET_NAME` AS `Charset`, `DESCRIPTION` AS `Description` FROM `information_schema`.`CHARACTER_SETS`

     

    Ответ MySQL:

    #1449 - The user specified as a definer ('mysql.infoschema'@'localhost') does not exist

  174. Люся:

    Вроде бы, всё нормально, но для этого пришлось кроме того, что в пункте 15 ещё сделать из п.4

    = удалите всё содержимое папки C:\Server\data\DB\data\

    ==============

    И ещё  C:\Server\data\DB\data\

    теперь не то,что описано в п.4, а 4 папки с файлами и 21 файл. Так и должно быть из версии 8.0.11 ?

     

    • Alexey:

      Здравствуйте! Если у вас не было информации в базах данных, которую нужно сохранить, то да, эту папку нужно удалить и затем установить MySQL «с чистого листа».

      Если есть информация, которую нужно перенести из MySQL 5 в MySQL 8, то смотрите соответствующую статью: «Как обновиться с MySQL 5 до MySQL 8».

      Если вы уже удалили папку, но ранее сделали резервную копию, то всё равно информацию можно восстановить и перенести в новую СУБД (об этом в той же статье по ссылке).

      Что касается структуры файлов – да, она немного различается.

  175. Елена:

    Добрый день! Пожалуйста, подскажите в чем дело. Ошибка Расширение mysqli не найдено. Пожалуйста, проверьте ваши настройки PHP.  

    Возникали ошибки при вводе команды  C:\Server\bin\mysql-8.0\bin\mysqld --initialize-insecure --user=root (скрин прикрепляю)

    Также,phpinfo открывается только по ссылке http://localhost/i.php.txt, а не http://localhost/i.php

    Файлы в папке C:\Server\data\DB\data\  генерировались (их больше чем в примере), на всякий случай пробовала их удалить, добавляла строчку innodb_flush_method=normal в my.ini и вариант с 6 строчками

    innodb_buffer_pool_size=256M

    innodb_log_file_size=256M

    innodb_thread_concurrency=16

    innodb_flush_log_at_trx_commit=2

    innodb_flush_method=normal

    innodb_use_native_aio=true

    Буду очень признательна за любую помощь!

  176. Елена:

    Забыла указать, что ошибка возникает при загрузке phpmyadmin по ссылке http://localhost/phpmyadmin/

    Так выглядит phpinfo

    • Alexey:

      Если открывается http://localhost/i.php.txt, а не http://localhost/i.php, значит вы создали i.php.txt, а не i.php.

      Все остальные проблемы тоже из-за того, что невнимательно делаете.

      Следуйте в точности инструкции.

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

      На вашем первом скриншоте ошибка возникла из-за того, что запущена инициализация, хотя в папке data уже есть файлы. Рекомендую всё удалить (тут есть пункт, как правильно удалять) и сделать заново на свежую голову. 

      • Елена:

        Спасибо огромное за подробную инструкцию! Все заработало! в Windows 10 расширения файлов изначально скрыты, но при создании файлов возникли сложности только с файлами php, они txt создавались, не заметила… с файлами других расширений такого не было. Еще раз спасибо!!!!

  177. Александр:

    Как это исправить, подскажите?

    • Alexey:

      ИЛИ не переименовали php.ini-development в php.ini

      ИЛИ не раскомментировали ;extension=mysqli

      ИЛИ не заменили ; extension_dir = "ext" на extension_dir = "C:\Server\bin\PHP\ext\"

      ИЛИ не добавили или записали с ошибкой строку PHPIniDir "C:/Server/bin/PHP" в файл c:\Server\bin\Apache24\conf\httpd.conf

      …….

      Я могу долго продолжать этот список, который приводит к одной и той же ошибке. Суть одна – делайте по инструкции и ни в чём не отступайте. Если ошибка – делайте всё заново на свежую голову.

  178. Александр:

    Меняем

    1

    ServerRoot "c:/Apache24"

    на

    1

    ServerRoot "c:/Server/bin/Apache24"

     

    У меня вот как, в каком файле нужно менять?

  179. Александр:

    извиняюсь - У меня вот как, в какой строке нужно менять?

    • Андрей:

      Меняй строку Define SRVROOT "c:/Apache24"

      на Define SRVROOT "C:/Server/bin/Apache24/"

    • Андрей:

      Я прописывал так:

      Define SRVROOT "C:/Server/bin/Apache24/"

      Define DOCROOT "C:/Server/data/htdocs/"

      Define PHPROOT "C:/Server/bin/PHP/"

    • Alexey:

      Подправил инструкцию под новый конфигурационный файл.

  180. Валентин:

    Алексей, добрый день. При установке компонентов VS обнаружил, что в Вашей инструкции ссылка, которая должна указывать на vcredist_x64.exe, указывает опять на  vc_redist.x64.exe.

    vcredist_x64.exe я обнаружил вот здесь: https://www.microsoft.com/RU-ru/download/details.aspx?id=40784

    Скачал и всё установилось.

    Но на 5-ом пункте всё-таки произошел сбой. Что-то подобное в форуме обсуждалось, но у меня сообщения несколько иные. 

    Добавил в htthd.conf три строчки:

    PHPIniDir "C:/Server/bin/PHP"
    AddHandler application/x-httpd-php .php
    LoadModule php7_module "C:/Server/bin/PHP/php7apache2_4.dll"

    Перезапустил Apachе.

    Получил сообщение, которое в прилагаемом файле.

    Чтобы то значило?

     

    • Alexey:

      Ваша ссылка на Visual C++ для Visual Studio 2013 - видимо, вы её взяли из другой инструкции, которая является перепечаткой старой версии этой же самой инструкции. Раньше был нужен этот файл, теперь компоненты сервера обновились и нужны более свежие версии распространяемого пакета - на них и дана ссылка.

      По поводу ошибки смотрите эту ветку комментариев.

      • Валентин:

        Спасибо, про ошибку я уже сам понял - скачал не ту версию архива PHP.

  181. Александр:

    Это пожалуй лучший материал из всех пересмотренных мною. Спасибо огромное!

  182. Александр:

    Здравствуйте. Проблема следующего характера:

    PHP модуль подключен нормально о чем свидетельствует соответствующая запись в логах. phpinfo тоже работает.
    А вот остальные php коды браузер отображает или пустой страницей или выводит непосредственно код.

     

    • Alexey:

      Получается, вы просто забыли поставить тег <?php перед вашим PHP кодом. Пример как это сделать есть в этой статье с phpinfo:

      <?php
      phpinfo ();
      
      • Александр:

        Тег <?php никак не влияет. Проверял оба варианта. shorts в конфиге тоже включен. Думал беда в сервере, поставил денвер. Ситуация аналогичная. Interactive shell ругается на синтаксис в любом коде с первой строки. Я думаю проблема где то в операционке….

  183. Глеб:

    Здравствсуйте. Установил MySQL по инструкции.

    C:\WINDOWS\system32>C:\SERVER\bin\mysql-8.0.12\bin\mysqld --initialize-insecure --user=root

    C:\WINDOWS\system32>C:\SERVER\bin\mysql-8.0.12\bin\mysqld --install

    Service successfully installed.

    C:\WINDOWS\system32>net start mysql

    Служба "MySQL" запускается….

    Служба не сообщает об ошибке.

    Для вызова дополнительной справки наберите NET HELPMSG 3534.

    C:\WINDOWS\system32>NET HELPMSG 3534

    Служба не сообщает об ошибке.

     

     

    Не удается запустить MySQL. В чем может быть причина? спасибо

  184. Глеб:

    Здравствуйте. Не может запустить MySQL

    • Alexey:

      Не поленился и выполнил установку в чистую систему. Работает как часы:

      Смотрите внимательнее пункт https://hackware.ru/?p=21#4 там в конце говорится о возможной проблеме, а также даётся описание её решения. Если и это не помогает, то напишите, что у вас в файле C:\Server\data\DB\data\*.err

      • Аноним:

        Добрый день, Алексей! Можете, пожалуйста сказать, что я делаю не так?) У меня та же проблема с ошибкой "Расширение mysqli не найдено. Пожалуйста, проверьте ваши настройки PHP."

        То, что вы писали ниже я проверил - у меня всё так, как написано. Благодарю!

        ИЛИ не переименовали php.ini-development в php.ini

        ИЛИ не раскомментировали ;extension=mysqli

        ИЛИ не заменили ; extension_dir = "ext" на extension_dir = "C:\Server\bin\PHP\ext\"

        ИЛИ не добавили или записали с ошибкой строку PHPIniDir "C:/Server/bin/PHP" в файл c:\Server\bin\Apache24\conf\httpd.conf

        …….

        Я могу долго продолжать этот список, который приводит к одной и той же ошибке. Суть одна – делайте по инструкции и ни в чём не отступайте. Если ошибка – делайте всё заново на свежую голову.

        • Alexey:

          Здравствуйте, очередная стопятьсотая ошибка из-за невнимательности пользователя:

          0. Судя по скриншоту, инициализация выполнялась после установки — хотя это неточно, какие-то упоминания инициализации есть выше попытки установки. Если делать инициализацию ПОСЛЕ установки, то одно это уже и может привести ко всем вашим несчастьям.

          1. Вместо команды

          C:\Server\bin\mysql-8.0\bin\mysqld --install

          Вы вставили команду

          C:\Server\bin\mysql-8.0\bin\mysqld --installC:\Server\bin\mysql-8.0\bin\mysqld

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

          4. Созданную папку невозможно использовать, вы можете безопасно удалить её.

          Итак, для исправления ситуации:

          1. Удаляем службу:

          net stop mysql
          c:\Server\bin\mysql-8.0\bin\mysqld --remove

          2. В папке c:/Server/data/DB/data/ удалите все файлы

          3. Соберитесь (в прошлый раз на этом шаге вы сделали две ошибки) и скопируйте в командную строку поочереди три команды:

          C:\Server\bin\mysql-8.0\bin\mysqld --initialize-insecure --user=root
          C:\Server\bin\mysql-8.0\bin\mysqld --install
          net start mysql
          
  185. Андрей:

    После распаковки MySQl 8. на Windows 10, проделал все инструкции, пробую инициализировать.

    mysqld --initialize-insecure --user=root

    получаю в ответ вот такое

    2018-09-06T15:10:59.919710Z 0 [Warning] [MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
    2018-09-06T15:10:59.920030Z 0 [System] [MY-013169] [Server] C:\Server\bin\mysql-8.0\bin\mysqld.exe (mysqld 8.0.12) initializing of server in progress as process 1528
    2018-09-06T15:10:59.979978Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
    2018-09-06T15:10:59.980356Z 0 [ERROR] [MY-010119] [Server] Aborting
    2018-09-06T15:10:59.983060Z 0 [System] [MY-010910] [Server] C:\Server\bin\mysql-8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.12)  MySQL Community Server - GPL.

     

    Как исправить эту ситуацию? Облазил весь интернет, все попытки безуспешны

     

    • Alexey:

      В сообщении «--initialize specified but the data directory has files in it. Aborting.» говорится: «вы указали опцию --initialize, но в папке data уже есть файлы. Остановка».

      Попросту удалите всё из C:\Server\data\DB\data\.

      • Арсений:

        Такая же проблема, файлов никаких нет.

        • Alexey:

          У вас тоже сообщение «--initialize specified but the data directory has files in it. Aborting.»?

          • Арсений:

            Уже по другому пишет. Как я понял, после команды C:\Server\bin\mysql-8.0\bin\mysqld --initialize-insecure --user=root , он иницилизирует в другую папку, в C:\Server\bin\mysql-8.0, в которой создает папку data, т.к. получается, что файлы, за исключением ibtmp1 и MiAi-PC.pid (они за 3 раза переустановки появлялись 1 раз и потом пропадали,  не знаю почему, при том, что я пробывал устанавливать с вашим примечанием о возможных ошибках), находятся в C:\Server\bin\mysql-8.0\data. Потом, после команды C:\Server\bin\mysql-8.0\bin\mysqld --install, cmd пишет:"The service already exists!
            The current server installed: C:\Server\bin\mysql-8.0\bin\mysqld MySQL".

      • Арсений:

        А ошибка, о которой выше написал Андрей, появляется, если после первой инциализации C:\Server\bin\mysql-8.0\bin\mysqld --initialize-insecure --user=root запустить её ещё раз

  186. Григорий:

    доброе время суток.
    я в первые ставлю Apache,PHP,MySQL,phpMyAdmin.
    все работает отлично но в phpMyAdmin хочу создать нового пользователя с паролем и выдает такую ошибку
    #1064 - У вас ошибка в запросе. Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса около 'REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_' на строке 1
    как ее исправить? MAX_UPDATES_  я так понимаю что в этой  переменной проблема. или в чем то еще проблема кроется

    • Alexey:

      А как вы это делаете? Через графический интерфейс или командой? Если командой, то какой именно?

      Вообще, конечно, пользователь создаётся элементарной командой:

      CREATE USER ЗдесьИмяПользователя@localhost IDENTIFIED BY 'ЗдесьЕгоПароль';

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

      Если делаете через графический интерфейс, то, на мой взгляд, там вообще трудно ошибиться. В общем, пишите подробнее, что именно делаете и на каком этапе возникает ошибка. Чем понятнее объяснена проблема (команды, скриншоты), тем больше шансов, что найдётся решение.

  187. Maxx:

    Алексей, спасибо Вам большое! Лучший материал по данной теме!

  188. Alladirka:

    Здравствуйте . Появилась проблема . Всё делал по инструкции , но когда преходишь в  http://localhost/phpmyadmin/ и не можешь создать базу данных , пишет "Нет привилегий" . Что делать ?

  189. Аноним:

    Добрый день! У меня не запускается команда net start MySQL. Уже все пробовала и из статьи и из комментов ( и строку добавляла в файл my.ini) и в папке файла удаляла - ничего не помогаетю Может быть подскажете, что делать? прикрепляю файлы

    • Alexey:

      Какая-то программа прослушивает тот же порт (порт 3306) на котором пытается запуститься MySQL. Две программы не могут одновременно использовать один и тот же порт - в этом проблема.

      Чтобы узнать, что это за программа, выполните команду:

      for /f "tokens=1,2,3,4,5*" %i in ('netstat -aon ^| findstr ":3306" ^| findstr /i listening') do echo %j %l & @tasklist | findstr %m
      
  190. Константин:

    Доброго времени суток, вроде все получилось и на соледнем моменте такой момент, все на скринах

    • Alexey:

      Видимо, делали не совсем по инструкции. При настройке пропустили строку default_authentication_plugin=mysql_native_password.

  191. Katrin:

    Alexey, огромное Вам спасибо! Первый раз появилась необходимость установки web-сервера, до этого было потрачено 3 дня впустую, благодаря другим рекомендациям, как хорошо, что нашла Вашу статью - всего 1 час и все работает. Это дорогого стоит!!!

     

  192. Владимир:

    Хорошее руководство - особенно полезно когда mysql не на диск С: надо развернуть. НО PhpMyAdmin никак не взлетал, пока в php.ini не раскомментировал session.save_path = "путь к директории" - пропишите это где-то в настройках, иначе будет ошибка:

    phpMyAdmin - Error
    Error during session start; please check your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.

    session_start(): open(SESSION_FILE, O_RDWR) failed: No such file or directory (2)

    session_start(): Failed to read session data: files (path: )

     

  193. Вячеслав:

    Алексей, спасибо Вам за такой труд и за то, что не бросаете этот проект!

    Два года назад устанавливал впервые себе сервер на домашний компьютер. Благодаря Вашему ресурсу все прошло хорошо. Сайт поставил себе в закладки. 

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

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

    Огромнейшая благодарность!!!

    Удачи Вам в работе и жизни!

  194. Евгений:

    Всё перепробовал, но:
    Расширение mysqli не найдено. Пожалуйста, проверьте ваши настройки PHP. Смотрите our documentation для дополнительной информации.

    • Alexey:

      Приветствую! Похожая ошибка была у девушки выше в комментариях — она не могла переименовать php.ini-development в php.ini. У вас тоже что-то похожее. Либо ещё в чём-то отступили от инструкциии.

      • Илья:

        Была такая же проблемма с ошибкой phpmyadmin. Я заметил ошибку у автора статьи, в частности в 5 пункте, где говориться "Копируем в этот файл: <?php phpinfo ()" в конце должны быть знак вопроса и закрывающий тэг и выглядеть это должно так- <?php phpinfo () ?>. Только после этого у меняполучилось запустить phpmyadmin

        • Alexey:

          Не пишите бред.

          1. Файл i.php не имеет отношение ни к чему, кроме как к проверке работоспособности PHP

          2. Закрывающий тэг в PHP уже давно необязателен. Кроме тех случаев, если нужно после PHP кода разместить HTML код.

  195. Павел:

    Спасибо за подробную инструкцию.

    Да прибудет с вами Сила для поддержания сайта.

  196. Дмитрий:

    Алексей, большое спасибо за Инструкцию!

    Подскажите, пожалуйста, почему при инициализации MySQL 8.0.13 в каталоге C:\Server\data\DB\data\  ничего не появляется. Все файлы появляются в каталоге C:\Server\bin\mysql-8.0\data. В файле ошибок SVO5195.err (находится в C:\Server\bin\mysql-8.0\data) следующая информация:

    2019-01-04T10:01:56.830374Z 0 [System] [MY-013169] [Server] C:\Server\bin\mysql-8.0\bin\mysqld.exe (mysqld 8.0.13) initializing of server in progress as process 8860
    2019-01-04T10:02:02.311887Z 5 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
    2019-01-04T10:02:05.511185Z 0 [System] [MY-013170] [Server] C:\Server\bin\mysql-8.0\bin\mysqld.exe (mysqld 8.0.13) initializing of server has completed

     

     

    • Дмитрий:

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

      • Alexey:

        Папка C:\Server\data\DB\data\ прописана в файле my.ini.

        Получается причина ошибки только одна: вы или не создали файл my.ini, или создали его неправильно, или создали его не в том месте, или не записали туда директиву с C:\Server\data\DB\data\ - то есть что-то такое.

        • Дмитрий:

          Алексей, спасибо!

          Разобрался. Причина была в том, что я создавал файл my.ini.txt вместо my.ini. Не обратил внимания на отображение расширений в Проводники. Ошибка - глупая, но, думаю, скоратит многим новоначальным время, если ее указать.

           

          • Alexey:

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

  197. Екатерина:

    Здравствуйте, во время установки mysql, после C:\Server\bin\mysql-8.0\bin\mysqld --initialize-insecure --user=root, выходит вот такая штука. 

  198. wktp:

    Заглушка sendmail не работает!
    Ошибок никаких нет!

    Отправка почты происходит, но ее нигде нет!
    Делал все точно как описано! Соот. пути свои!

  199. Владимир:

    Здравствуйте, уважаемый Алексей. Внимательно все проверял несколько раз, когда делал по Вашей инструкции, но на 3 пункте выходит ошибка. На Снимке все видно. Помогите, пожалуйста

    • Alexey:

      Приветствую! Какая-то программа уже прослушивает 80й порт. Чтобы узнать, что за программа, смотрите здесь начиная со слов 

      Бывает редкая ошибка, связанная с тем, что какая-то другая программа уже прослушивает 80й порт. 

      • Владимир:

        Спасибо, но беда в том, что у меня прослушивает 80й порт ВСЕ.

        К скринам: И так далее…

        • Alexey:

          Не до конца скопировали команду - обрезали хвостик  | findstr %m. Сосредоточьтесь и попробуйте ещё раз…

          Может быть так будет проще:

          for /f "tokens=1,2,3,4,5*" %i in ('netstat -aon ^| findstr ":80" ^| findstr /i listening') do echo %j %l & @tasklist | findstr %m

          • Владимир:

            Скопировал то, что Вы написали в комментарии, ничего не получилось

            • Alexey:

              Надо же… Никогда такого не видел. Чтобы вывести список всех прослушиваемых портов и их программ, выполните эту команду и поищите, какая программа прослушивает 80й порт:

              netstat -anb

              На скриншоте отмечена строка, которую нужно искать: 0.0.0.0:80

              • Владимир:

                Все интереснее и интереснее… Вас хоть кто-нибудь так озадачивал раньше по данной теме?

    • Аноним:

      Владимир  доброе время, вам нужно открыть свой путь  c:\Server\bin\Apache24\bin в открытой папке жазмите Shift + правая кнопка мыжи и выброть выподающем меню (Открыть окно PowerShell здесь) и выполняйте команду httpd.exe -k install

    • Alexey:

      Я погуглил, суть в том, что 80й порт прослушивает какой-то системный процесс, определить его не так просто. В качестве вариантов могут быть:

      • IIS
      • Sql server reporting services(MSSQLSERVER)
      • Web Deployment Agent Service
      • Windows Remote Management
      • World Wide Web Publishing Service
      • и так далее

      Перейдите в Administrative Tools (Администрирование) > Services (Службы) и посмотрите, какая из приведённых служб там присутствует и запущена. Если она вам не нужна, остановите её насовсем.

      Подсказку может дать команда:

      curl localhost

      Она попытается подключиться к службе, которая прослушивает 80й порт — там могут быть полезные сообщения.

      Эта же команда, но может вывести больше сведений:

      curl -v localhost

      Можно просто попробовать открыть в веб-браузере http://localhost

      Можете попробовать несколько раз выполнить команду:

      net stop HTTP

      Возможно, выводимые сообщения натолкнут на мысль, какая именно служба прослушивает порт.

    • Alexey:

      Чуть не забыл главное, что хотел сказать: если не найдёте службу, которая занимает 80й порт, то можно настроить Apache работать на любом другом порту. Для этого в файле httpd.conf найдите директиву:

      Listen 80

      И вместо 80 напишите что-нибудь, что точно свободно, например, 4080:

      Listen 4080

      В этом случае для доступа к локальным сайтам нужно будет после адреса через двоеточие дописывать номер порта. Например, http://localhost:4080

      • Владимир:

        Благодарю, все отлично получилось, спасибо. Сперва был баг, когда я поменял на "Listen 4996", а после адреса надо было дописывать 4080, но потом исчезло, благодарю еще раз. И, если вы знаете, я бы хотел спросить об еще одной проблеме, связанной с этой темой. Вы когда-нибудь слышали о сервисе Owncloud?

        • Alexey:

          А проблемный сервис так и не нашли?

          ownCloud я устанавливал примерно 3 года назад и писал про это статью, но там была другая ситуация: Linux + хостинг VPS (виртуальный частный сервер).

  200. Владимир:

    Проблемный сервис не нашел, потому что было лень :). Про Owncloud - я создал сервер, все получилось, по инструкции https://habr.com/ru/post/175645/ распаковал архив с программой в htdocs и прописал в программу ip созданного сервера, но он мне вывел ошибку, и я не знаю, что с ней делать. Помогите, пожалуйста

    • Alexey:

      Начните с того, что посмотрите, какая именно ошибка возникла. Это можно сделать в файле C:\Server\bin\Apache24\logs\error.log

      Если в этом файле накопилось уже много сообщений, то:

      1) остановите сервер Apache

      2) удалите всё содержимое в C:\Server\bin\Apache24\logs\error.log

      3) вновь запустите сервер Apache

      4) один раз попробуйте выполнить проблемную операцию (например, подключение к ownCloud)

      5) загляните в файл C:\Server\bin\Apache24\logs\error.log и сохраните куда-нибудь его содержимое

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

    • Alexey:

      Я попробовал установить ownCloud, чтобы написать инструкцию по установке ownCloud. Смотрите ответ в статье «Как установить ownCloud сервер в Windows».

  201. Григорий:

    доброе время суток Alexey

    подскажите как устоновить perl и как правильно его настроить

    установлин Apache 2.4.38 Win64, PHP 7.3

    заранее спасибо

  202. Амекрон:

    Здравствуйте. 

    У меня 32 разрядная система, поэтому я немогу установить zip-архив, его для 32 разрядной системы нет. Поэтому мне пришлось скачать установщик. В установщике я выбрал установить только сервер (Server only). Нажимая далее, установщик пишет следующее: mysql installer did not find packages in the current bundle suitable for installation. Что делать? 

  203. Марина:

    Может кто знает…
    в браузере вместо "Index of/ " появляется "Connection refused: localhost:80"
    Что не так?

    • Alexey:

      Суть сообщения в том, что в соединение отказано. При установке Apache всё прошло нормально, ошибок не было? Вы делали по этой инструкции?

      Чтобы убедиться, что Apache работает, откройте файл C:\Server\bin\Apache24\bin\ApacheMonitor.exe и посмотрите, какой статус у службы?

      Не заблокирован ли Apache в правилах вашего файервола?

      Не создавали ли вы файл .htaccess с ограничением доступа?

      Откройте файл c:\Server\bin\Apache24\conf\httpd.conf и найдите там директиву Listen, что именно при ней написано?

      • Марина:

        Вот

        • Alexey:

          Сообщение, которое у вас на скриншоте, говорит о том, что вы пытаетесь запустить Apache Monitor второй раз, хотя он запущен.

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

          Разверните Apache Monitor и посмотрите, там служба отмечена зелёным или красным.

  204. Марина:

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

  205. Марина:

    Что-то явно пошло не так. Когда первый раз устанавливала Apache, все было нормально, поступил запрос от файервола в отношение Apache, нажала разрешить, дальше у меня появилась ошибка, когда переходила на сайт http://localhost/ , искала ответы в нэте, в итоге я все сломала, и теперь у меня даже ошибка не выходит, когда перехожу на сайт http://localhost/ , пустой лист)

    • Alexey:

      Проблемы на скриншоте:

      • Apache уже установлен и запущен, а вы пытаетесь его запустить и установить повторно.
      • Вторая ошибка — сервер не может открыть лог-файлы.

      Я бы вам порекомендовал удалить сервер, как написано здесь: https://hackware.ru/?p=21#18

      А затем просто всё внимательно установить заново.

  206. Владимир:

    Спасибо за инструкцию, все получилось на Windows 10.

    Но возникла проблема со скриптами (PHP).

    Стали сыпаться странные ошибки. например include - failed to open stream: No such file or directory

    Хотя файл точно есть. Более того ранее пользовалься Denver-м и др. все работало нормально.

    Теперь ломать голову, что не так. Также др. мелкие ошибки вылезают.

     

  207. Владимир:

    Добавление:

    include  работает. Это глюки от нового синтаксиса PHP. То, что в старом работало, уже нет.

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

    А здесь уже обязательно  <?php

  208. Alexey:

    Нет, необязательно — зависит от настроек PHP. Откройте файл php.ini, найдите там строку:

    short_open_tag = Off

    и замените на

    short_open_tag = On

    Перезапустите веб-сервер.

    Эта директива сделает так, что PHP будет распознавать код не только в <?php и ?>, но и между тегами <? и ?>. Рекомендуется отключать поддержку коротких тэгов, поскольку если она включена, то могут возникнуть проблемы при генерации XML документов. Тем не менее поддержка коротких тэгов оставлена для обратной совместимости — то есть как раз ваш случай.

  209. Роман:

    Вроде всё делал ок,но что-то пошло не так

    • Alexey:

      Ошибка:

      Ответ MySQL
      #1449 — The user specified as a definer ('mysql.infoscheme'@'localhost') does not exist

      Судя по скриншоту, вы удалили базы данных, которые там были по умолчанию. Правильно?

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

      Пример информации из базы данных:

      • пользователи и их права.
      • информация о других базах данных.

      В общем, если коротко, пока всё не вернёте как было, работать не будет. В этой ситуации проще всего удалить MySQL и установить заново. Как всё это сделать (в том числе удаление) — всё здесь есть.

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

  210. Роман:

    Это произошло при первом запуске пхп админки,так что я ничего не удалял.кстати я сейчас переустановил MySQL,проблема всё та же,та же ошибка

  211. Добрый день!

    Не пойму принцип настройки httpd-vhosts.conf.

    Если делаю так:

    <VirtualHost *:80>
      DocumentRoot "D:/USR/www "
      ServerName мой_сайт
    </VirtualHost>

    А в hosts прописываю:

    127.0.0.1 мой_сайт

    То внося в адресную строку: «мой_сайт» в Ейдже и Хроме не работает. В Эксплоере и Мозиле работает.

    Если прописываю по-другому:

    <VirtualHost *:80>
        DocumentRoot "D:/USR/www/ мой_сайт.localhost"
        ServerName мой_сайт.localhost
    </VirtualHost>

    И соответственн в hosts прописываю:

    127.0.0.1 мой_сайт.localhost

    То всё работает и во всех браузерах.

    • Alexey:

      Приветствую! Думаю дело не в том как работают виртуальные хосты, а в том, как работают веб-браузеры.

      В некоторых браузерах теперь ведь адресная строка совмещена с поисковой строкой. И браузер сам решает, отправлять введённые данные в поиск или попытаться открыть как сайт. Видимо, в первом случае ваш запрос воспринимается как поисковый. А во втором — как адрес сайта.

      Подобную проблему обсуждали здесь, посмотрите тот комментарий.

    • Владимир:

      Если в каких-то браузерах работает а в других не - ставьте перед адресом обязательно 

      http://

      тогда будет срабатывать

    • Похоже разобрался в проблеме. Во всяком случае выглядит логично и поигрался для проверки. То, что было по ссылке тоже посмотрел и там в общем то, про это же, но только неочевидным образом. Суть как я понимаю в следующем. Когда назначается адрес в одно слово, браузер совершенно законно рассматривает это как обращение к домену первого уровня. И вот тут-то и начинается шизофрения. Одни браузеры могут обработать индексный файл в домене первого уровня, другие нет. Однако, если задать localhost на папку, то во всех браузерах корректно открывается индекс оф, с каталогом папок внутри. Щёлкаешь по папке внутри как по ссылке, и она открывается. Что и сделал предыдущий товарищ, столкнувшийся с данной проблемой. Мне же кажется, что просто надо добавить домен второго уровня, например, мой_сайт.localhost и всё начинает работать. Необязательно именно localhost, но минимум 2 знака. Поскольку, например, Микрософт Эйдж открывает сайт и с одним знаком в качестве домена первого уровня, а хром уже нет, ему требуется минимум 2 знака. Что наверно логично, поскольку, не знаю, доменов первого уровня в один знак, наверное, не бывает. Кроме того, ну может это уже субъективно, при домене первого уровня – localhost, сайты открываются мгновенно. При произвольном домене, браузер заметно подтормаживает прежде, чем открыть сайт. Кэш чистил в обоих случаях, но это уже явно субъективное впечатление.

  212. Владимир:

    Что-то у меня проблема с кодировкой. Если utf-8, то нормально. А 1251 странно глючит.

    Все вроде нормально. Упростил код до безобразия 

    <html>
      <head>
    <META http-equiv="Content-Type" content="text/html; charset=windows-1251">
     <title>Проверка кодировки</title>
    </head>
    <body>
        <h1>Тестовый файл для проверки кодировки</h1>
    </body>
    </html>

    Если файлу дать расширение html то в норме, а рсширение php - не работает, кракозябры идут, сам автоматом в utf перебрасывает.

    AddDefaultCharset off
    AddDefaultCharset WINDOWS-1251

    не помогает

    • Alexey:

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

      Установка кодировки в коде файла или в файле .htaccess влияет только на то, как браузер будет трактовать этот файл, но не конвертирует его в другую кодировку.

      То есть, допустим, ваш файл реально сохранён в кодировке utf-8. Вы указываете в качестве кодировки windows-1251. И это работает: браузер трактует ваш файл как windows-1251, но показывает крякозяблы, поскольку на самом-то деле это utf-8.

      Поэтому начните с того, что проверьте кодировку файла и при необходимости пересохраните в нужной кодировке.

      Если кодировка правильная, то для PHP файла безотказно работает

      header('Content-Type: text/html; charset=utf-8');

      Эта функция отправляет нужную кодировку в заголовке. Она должна идти до любого вывода текста на экран. Кодировку поменяйте на свою.

      У меня есть целая статья про кодировку «Решение проблем неправильной кодировкой веб-страницы». Там в конце показано, как проверить HTTP заголовки с помощью cURL, которые отправляются сервером.

      Программа curl есть и в Windows, поэтому если у вас прям ничего не получится, то напишите, что выводит curl.

  213. Владимир:

    Если кодировка правильная, то для PHP файла безотказно работает

    1

    header('Content-Type: text/html; charset=utf-8');

     

    Спасибо! Это помогло!

    А то убил два дня, перечитав кучу советов. (по моему и вашу ссылку тоже 🙂

    Файлы конечно в нужной кодировке. проблема возникла именно на локальном компьютере, после установки связки Apache-PHP-MySQL . На хостинге все работает по прежнему нормально и на денвере все работало без проблем, а вот после новых PHP и др. на локале начались эти проблемы.

    Проблема была еще и в том, что старая часть сайта - это windows-1251, а новая - UTF-8 и принудтельно прописав кодировку в PHP.INI не получалось убрать проблему полностью.

     

    Возможно где-то в настройках Apache что-то еще есть? Ведь на денвере и др. локалках (EnterpriseDBApachePHP) и у провайдера все работает и без header. Но сам не смог побороть.

  214. Николай:

    Алексей, большое спасибо за Ваш труд и содержательную инструкцию!

    Потратил минут сорок, всё встало на "ура" с первого раза.

    Удачи и всех благ!

  215. Александр:

    Доброго временир суток. Подскажите пожалуйста, что это значит:Parse error: syntax error, unexpected 'new' (T_NEW) in C:\Server\data\htdocs\includes\joomla.php on line 840. Нигде не мог найти инфу. Пытаюсь перенести сайт на другую машинку.

  216. Александр:

    Алексей, хочу сказать тоже спасибо за Ваш труд и отличную инструкцию! И хочу спросить,выше комментарий,вчера настроил всё,всё работает, но вот перенёс сайт и выдало ошибку:Parse error: syntax error, unexpected 'new' (T_NEW) in C:\Server\data\htdocs\includes\joomla.php on line 840. Возможно это связано с тем,что на старой машине файлы сайта разбросаны на диске С:\, а не как по инструкции красиво в папке Server? Можно ли как то поправить? Не судите строго, первый раз делаю.

  217. Александр:

    Доброго времени суток! Подскажите пожалуйста, как правильно(корректно) обновить движок  сайта. Сайт очень старый на движке Joomla_1.0.15_RE-Stable-Full_Package,решили перенести на другой хост. Все компоненты web-сервера обновлены.Скачали Joomla 3.9.5.

  218. Алексей, спасибо за отличное описание. Нельзя ли узнать мнение эксперта по такому затыку.

    У меня стоит Apache под Windows10. Роутер имеет статический внешний IP, под ним - веб-сервер с IP 192.168.1.70 После замены роутера при обращении к файлам веб-сервера через Localhost или по адресу 192.168.1.70 файлы читаются. С внешних компьютеров файлы веб-сервера тоже читаются.

    Но когда я обращаюсь с компьютера, где стоит веб-сервер, по внешнему IP своего же роутера возникает time-out. Чувствую, что ошибка простая, но понять не могу. Ping своего внешнего статического IP тоже не проходит. У меня сайт с большим числом пользователей - http://www.retromap.ru - и проблема раздражает

    • Alexey:

      Приветствую! Убрал на всякий случай из вашего коменнтария ваш внешний IP, крайне настоятельно рекомендую прочитать «Как защитить веб-сервер Apache от взлома в Windows» - как минимум, установить пароль на MySQL, разрешить доступ к MySQL только из локального компьютера и убрать из доступа из вне phpMyAdmin. Иначе при белом IP существует угроза взлома для всего компьютера.

      Попробовал открыть ваш IP — у меня всё открылось, там показывается phpinfo

      По описанию кажется, что не настроена проброска портов, очень подробно зачем это нужно описал в статье «Apache Forwarding — проброска портов веб-сервера». Как настроить там тоже написано.

      • Алексей, большое спасибо, вы очень-очень толково пишите и объясняете. Но мне кажется, вы не уловили мою проблему.

        Итак, под роутером со статическим IP находится компьютерр с веб-сервером. Перенаправление портов, насколько  я понимаю, - это обеспечение доступа из внешней сети к веб-серверу в локальной сети. Из внешней сети мой веб-сервер доступен, и с этоим проблем нет. Но когда я пытаюсь обратиться с компьютера, на котором стоит это веб-сервер, по статичечкому адресу своего роутера - эти запросы не выполняются - Timed Out. Другой симптом: с компьютера под роутером не проходит Piing статического адреса своего роутера.

        Может можно с Вами пообщаться по Скайпу? Мой адрес в Скайпе - 6 символов перед @ моего e-mail. У моего сайта очень много посетителей, проблема просто достала.

  219. Александр:

    Доброго времени суток! Алексей,подскажите пожалуйста, как правильно(корректно) обновить движок  сайта до максимально свежего. Сайт очень старый на движке Joomla_1.0.15_RE-Stable-Full_Package,решили перенести на другой хост. Все компоненты web-сервера обновлены и ОС соответственн.Я где то читал,что не так всё просто. Сначала надо проапгрэйдить до версии 1.5, а уже потом можно пробовать и до последней версии? Подскажите вкратце или может ссылку . Спасибо!

  220. Здравствуйте Alexey . Я почитал все комменты, но таки не нашел свою проблему. У меня http://localhost/phpmyadmin/  открывается просто пустая и белая страница, в исходом коде тоже ничего. Просто вообще не подгружается страница  phpmyadmin. А   вот  http://localhost  работает. и http://localhost/i.php тоже работает.  Я выполнял все четко и внимательно как Вы писали. в чем может быть проблема.?

    • Alexey:

      Здравствуйте! Сделайте попытку открыть phpMyAdmin ещё раз и напишите здесь в комментарии, какие у вас последние ошибки в файле C:\Server\bin\Apache24\logs\error.log

      Ещё заодно напишите, какие ошибки в C:\Server\data\DB\data\*.err (конкретное имя файла зависит от имени компьютера).

      • Ашот:

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

        вот ссылка на  Apache error  C:\Server\bin\Apache24\logs\error.log   http://185.44.230.7/logs/error.log

        и вот ссылка на  C:\Server\data\DB\data\*.err   http://185.44.230.7/logs/DESKTOP-NHEOH1E.err

        извиняюсь что отнимаю время у Вас своими вопросами.

         

        • Alexey:

          Судя по логам MySQL — у вас что-то пошло не так при инициализации базы данных. Чтобы заработало, перейдите сюда и найдите там раздел «Исправление MySQL после неудачной инициализации».

  221. Аноним:

    А как поставить phpmyadmin вне каталога htdocs? или настроить htaccess потому как мой проект на рнр использует единую точку входа, и при наборе http://www.ru/phpmyadmin подгружается работа моего проекта, а не переадресация на пхпмуадмин, или как разделить эти "Сервера", чтобы в корне был только мой проект?

    • Alexey:

      Про настройку .htaccess всё уже написано: статья «Как защитить веб-сервер Apache от взлома в Windows» → Раздел «4. Блокировка доступа к phpMyAdmin».

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

      Первый способ (блокировка доступа с помощью .htaccess) является более простым и быстрым. И, пожалуй, даже более надёжным — при переносе phpMyAdmin на другой виртуальный хост в любом случае нужно будет блокировать к нему доступ, либо (если доступ нужен с любого адреса), устанавливать очень надёжный пароль.

  222. Ольга:

    Добрый деньь! При попытке написать РЕСТ, необходимо что бы работала следующая конструкция 

    http://localhost/~user16/REST/server/api/cars/.html

    После чего результ должен выдаваться в соответствующем формате. Когда хочу получить .html 

    Forbidden

    You don't have permission to access /~user16/REST/server/api/cars/.html on this server.

    Что нужно исправить на сервере?

    • Alexey:

      Приветствую! Дело в настройках контроля доступа веб-сервера ИЛИ скрипта. Ошибка 403 не может возникнуть, если вы сами не ограничили доступ. Ошибка 404 (файл не найден) — может возникнуть сама по себе, ошибки 5xx (проблема на сервере или в выполняемом скрипте) могут возникнуть сами по себе. А чтобы был прислан код ответа 403 нужны были ваши подготовительные действия — то есть вспомните, что вы делали с настройкой?

      Контроль доступа веб-сервера

      Проверьте, например, файл .htaccess — поищите там слова Require, Allow, Deny и Order. Причём проверьте по всему пути — то есть в папке /~user16/REST/server/api/cars/, а также в /~user16/REST/server/api/, также в /~user16/REST/server/, в /~user16/REST/, в /~user16/ и в корне сервера.

      Контроль доступа может быть настроен в главном конфигурационном файле и конфигурациях виртуальных хостов.

      Контроль доступа в скрипте

      Если вы сами пишите скрипт, не знаю, насколько это актуально… Суть в том, что на уровне скрипта может выполняться проверка. И если у пользователя недостаточно прав на выполняемую операцию, то скрипт может прислать любую ошибку, в том числе и 403.

  223. МихаилМ:

    При  попытке установить MySQL 8.0 в командной строке пишет что данная версия н совместима с версией windows.  у меня ВИН10 ПРО

    • Alexey:

      Приветствую! Никогда не сталкивался с чем-то подобным. Можете дать больше информации — написать дословно, какая ошибка или сделать скриншот?

  224. МихаилМ:

    да, 32 бита, но в файле который я скачиваю по той ссылке написано Windows (x86, 64-bit), ZIP Archive, т.е. как я понял должно подойти под две системы, или все-таки есть особенность, которой я незнаю. Спасибо!

    • Alexey:

      К сожалению, эта версия только для 64-битных систем.

      В виде отдельного портативного архива MySQL больше недоступна для 32-битных систем.

      Из этой ситуации есть два выхода:

      • 1) воспользоваться установщиком MySQL Installer (он на той же странице, где вы скачивали MySQL - большой такой банер). Как сказано в описании, там «все продукты MySQL» - что нужно и что не нужно, в том числе 32-битная версия. Установка проходит в графическом интерфейсе, настройка тоже выполняется из графического интерфейса и, как бы это не было странно, занимает больше времени, чем установка из портативного архива. Но, в принципе, ничего сложного;
      • 2) перейти на MariaDB. Это улучшенная версия MySQL, которая является бесплатной, но в ней собраны функции платных вариантов MySQL. Портативный архив с версией для 32-битных систем имеется. Сейчас много кто перешёл с MariaDB на MySQL (в том числе хостинги). У меня на компьютере тоже установлена именно MariaDB вместо MySQL. Инструкция по установке всего веб-сервера здесь: https://hackware.ru/?p=7033 (там точно такая же инструкция как и здесь, но вместо MySQL показана установка MariaDB). Что касается работы сайтов, то для них MySQL и MariaDB абсолютно равнозначны.
      • МихаилМ:

        Спасибо большое!) правда с MariaDB тоже пришлось поморочится, в архиве последней версии отсутсвует в папке data файлы, и я не мог понять в чем причина ошибки 1067)) потом скачал версию 10.03 и там все есть и запустилось) почему нельзя просто взять и установить?))) Вобщем буду дальше двигаться)

        • Alexey:

          Спасибо, что обратили внимания на изменения в MariaDB 7.4. Я поправил инструкцию, теперь она подходит и для версии MariaDB 7.4.

          Сделанные изменения:

          • 1) В папке C:\Server\data\DB\ теперь нужно вручную создать подпапку data.
          • 2) Затем всё делать как и раньше, но перед установкой и запуском сервиса нужно выполнить инициализацию следующим образом:
          C:\Server\bin\mariadb\bin\mysql_install_db.exe --datadir=C:\Server\data\DB\data\

          Если вам вдруг захочется перейти на MariaDB 7.4, то остановите службу:

          net stop mysql
          C:\Server\bin\mariadb\bin\mysqld --remove

          Из папки C:\Server\bin\mariadb удалите старую версию и распакуйте туда версию 7.4.

          Поскольку в папке C:\Server\data\DB\data\ у вас уже есть необходимые файлы, то достаточно просто установить и запустить новый сервис:

          C:\Server\bin\mariadb\bin\mysqld --install
          net start mysql

          Либо если хотите совсем чистую установку, удалите содержимое папки C:\Server\data\DB\data\ (но саму папку оставьте) и выполните инициализацию и установку:

          C:\Server\bin\mariadb\bin\mysql_install_db.exe --datadir=C:\Server\data\DB\data\
          C:\Server\bin\mariadb\bin\mysqld --install
          net start mysql
          
  225. виталий:

    Потратил день результат 0.

    Как только дохожу до установки phpadmin и попытки его запуска localhost вообще перестает работать. остановка Apache его перезапуск ничего не дает. браузер пишет такой страницы не существует. хотя до этого файл p.ini прекрасно открывался и все работало отлично. И так постоянно. 

    • Alexey:

      Приветствую!

      Посмотрите сколько ошибок пользователей уже было собрано: «Ошибки при настройке и установке Apache, PHP, MySQL/MariaDB, phpMyAdmin».

      Бывает, что действительно дело в инструкции — после выхода новых версий элементов сервера там может что-то поменяться. Но довольно быстро исправляем инструкцию — посмотрите пару комментариев выше.

      Что касается вашей ситуации. Этот мануал можно пройти за 15 минут (если следовать точно по инструкции). Если что-то не получается, не надо мучиться — по этой ссылке написано где и как посмотреть ошибки (ссылка на этот список дана здесь) — посмотрите вашу ошибку, поищите её в списке. Если её там нет, то напишите в комментарии и весьма оперативно вам ответят.

      Сразу несколько замечаний, если «браузер пишет такой страницы не существует», то это означает что сервер (localhost) РАБОТАЕТ. Если бы сервер не работал, то была бы ошибка «невозможно открыть сайт» (или что-то похожее).

  226. виталий:

    инструкция для windows не рабочая. зря только потратил время.

  227. Захар:

    Спасибо за все ваши труды. А что делать дальше? Я просто не очень разбираюсь, но что мне читать дальше, для того чтобы понять как запустить HTML сайт на этом сервере?

    • Alexey:

      Приветствую! В каталоге c:\Server\data\htdocs\ создавайте папки и файлы с HTML разметкой или PHP скрипты, например:

      c:\Server\data\htdocs\test\ajax.php – этот файл, соответственно, будет доступен по адресу http://localhost/test/ajax.php и т. д.

      Сейчас многие сайты работают на WordPress — вы можете установить WordPress прямо на свой локальный сервер! На нём вы можете пробовать разные плагины и темы, разные редакторы для добавления статей. Смотрите «Как установить WordPress в Windows».

  228. Samf:

    Огромное спасибо автору!!! Все получилось с 1-ого раза. Крепкого тебе здоровья!!!

  229. Доброго времени суток! Спасибо за качественную информацию. Все работает. Но к сожалению не могу осуществить импорт sql базы целиком 250 Мб (которая была сохранена, написана Devart dbForge Studio for MySQL, Версия 4.50.303.1 по сей день успешно работает). phpmyAdmin Грузит только 17.1 Мб. Все дополнительные настройки по увел. памяти и т.д. делал. Реакции нет. В момент окончания загрузки дает ошибку:

      

    Ошибка

    Статический анализ:

    Найдено 6 ошибок при анализе.

     

    Неожиданное начало выражения. (near "Скрипт" at position 0)

    Неожиданное начало выражения. (near "сгенерирован" at position 7)

    Неожиданное начало выражения. (near "Devart" at position 20)

    Неожиданное начало выражения. (near "dbForge" at position 27)

    Неожиданное начало выражения. (near "Studio" at position 35)

    Неизвестный оператор. (near "for" at position 42)

     

    SQL запрос:

    Скрипт сгенерирован Devart dbForge Studio for MySQL, Версия 4.50.303.1 -- Дата: 29.01.2019 11:00:01 -- Версия сервера: 5.1.70-log -- Версия клиента: 4.1 -- -- Отключение внешних ключей -- /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */

    Ответ MySQL: 

    #1064 - У вас ошибка в запросе. Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса около 'Скрипт сгенерирован Devart dbForge Studio for MySQL, ВерсÐ' на строке 1

    Подскажите пожалуйста путь решения. С уважением Владимир.

     

    • Alexey:

      Приветствую! Хотя вы уже и сделали настройки по увеличению лимитов для импорта больших файлов, я бы настоятельно рекомендовал импортировать базы данных напрямую в СУБД. Для больших (особенно очень больших) дампов разница по скорости будет просто ошеломляющая по сравнению phpMyAdmin. Как это сделать описано в инструкции «Как сделать резервную копию баз данных MySQL (MariaDB) в Windows без phpMyAdmin» (раздел Восстановление баз данных из резервной копии без phpMyAdmin в Windows). Также такой вариант позволяет обойти все лимиты PHP и все глюки phpMyAdmin.

      Что касается вашей ошибки. «Неверный синтаксис» найден в самой первой строке, которая частично приведена в сообщении — то есть что файл сгенерирован определённой программой. Это просто комментарий и он не несёт никакой значимой информации — исключительно для владельца файла, если он забыл, что это за файл.

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

  230. Firuza:

    доброго вам дня. когда я в браузере набираю http://localhost/phpmyadmin/ у меня выходить это проблема

    Deprecation Notice in .\libraries\classes\Url.php#251
     Array and string offset access syntax with curly braces is deprecated

    Backtrace

    .\vendor\composer\ClassLoader.php#444: include()
    .\vendor\composer\ClassLoader.php#322: Composer\Autoload\includeFile(string 'C:\\Server\\data\\htdocs\\phpmyadmin\\vendor\\composer/../../libraries/classes\\Url.php')
    Composer\Autoload\ClassLoader->loadClass(string 'PhpMyAdmin\\Url')
    .\libraries\classes\Header.php#231: spl_autoload_call(string 'PhpMyAdmin\\Url')
    .\libraries\classes\Header.php#282: PhpMyAdmin\Header->getJsParams()
    .\libraries\classes\Header.php#214: PhpMyAdmin\Header->getJsParamsCode()
    .\libraries\classes\Header.php#142: PhpMyAdmin\Header->_addDefaultScripts()
    .\libraries\classes\Response.php#100: PhpMyAdmin\Header->__construct()
    .\libraries\classes\Response.php#134: PhpMyAdmin\Response->__construct()
    .\libraries\common.inc.php#430: PhpMyAdmin\Response::getInstance()
    .\index.php#27: require_once(.\libraries\common.inc.php)

    что мне делать??? за ранее благодарю

    • Alexey:

      Приветствую! У вас случайно не PHP 7.4? Если так, то пока не выйдет стабильный выпуск PHP 7.4, то лучше использовать PHP 7.3.

  231. Анастасия:

    что не так?

    • Alexey:

      Ошибка в конфигурационном файле my.ini — пропущена секция [mysqld] или что-то подобное.

  232. Артем:

    Здравствуйте, не могу запустить 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

     

    файл mysqld отсутствует в архиве. Пробовал скачивать архив версий

    mysql-5.7.23-winx64

    mysql-8.0.11-winx64

    сервер и PHP установил без проблем, использую Windows 7

    • Alexey:

      Здравствуйте, а файл mysqld.exe имеется в архиве? Скорее всего, просто неправильно назвали папку или не туда распаковали — какая-то такая ошибка такого уровня.

  233. Андрей:

    Подскажите пжлст, почему при старте сервера с командной строки (скрин №1) служба не запускается, соответственно сервер не стартует (скрин №2)? Конфиг проверил, всё рабоатет при запуске службы через "Диспетчер задач", но почему-то при старте с командной строки ничего.

  234. Интересная статья но не хватает кое чего Нажимаем Win+R вводим команду services.msc команда откроит Службы в списке ищим Apache2.4 свойства запуск в ручную тоже самое делаем с MySQL создаем два фаила в формате cmd с названием Start server и Stop server идеальный путь по моему мнению будет C:\Server запустил и работай с ним сразу в Start server пишим

    c:\Server\bin\Apache24\bin\httpd.exe -k start
    net start mysql
    pause

    в Stop server пишим

    c:\Server\bin\Apache24\bin\httpd.exe -k stop
    net stop mysql
    pause

    какой смысл делать так чтоб Apache и MySQL всегда работал и жрал ресурсы ПК еще и запускался при загрузке

    • Alexey:

      Приветствую! Спасибо за полезное дополнение. Наверное, при очередном обновлении инструкции, добавлю как отдельный пункт. Поскольку на Windows действительно мало кому Apache нужен постоянно, и, наверное, не все уделяют достаточно внимания безопасной настройке веб-сервера.

  235. Наталья:

    Здравствуйте.Никаких ошибок не пишет.Но и файлов сгенерированных нет.(пункт 4)Что делать

    • Alexey:

      Я специально скачал последнюю версию и выполнил пробную установку — всё прекрасно работает, файлы создались, служба запустилась:

      Ищите ошибки на своей стороне — в чём именно вы отклонились от инструкции.

      К примеру, если после инициализации «файлы не появились», но служба успешно запускается, значит файлы появились в расположении по умолчанию (C:\Server\bin\mysql-8.0\data), а это уже означает, что не настроили (или неправильно настроили) файл my.ini — или вообще его не создали, либо создали файл my.ini.txt. Вариантов может быть множество, но причина всегда одна — в чём-то отклонились от инструкции. Также смотрите этот материал по ошибкам при установке веб-сервера.

  236. серега:

    доброе время суток.ребятушки.подскажите.

    чего то я не догнал.апаче скачал.папки создал.потопал команды менять.и тут -на тебе.менять то что на что?у меня то нет такого списка как у вас.у меня муть какая то((((

     

    • Alexey:

      Конфигурационный файл большой, там много настроек и комментариев. Нужные строки тоже есть — они ниже. Используйте поиск по файлу, скорее всего, оно поиска можно вызвать кнопкой F3.

  237. серега:

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

    позвольте еще пару глупых вопросов?))

    через нотепад++ гоняю и не могу раскоментировать строки.весь инет перерыл.ничего не помогает.ни кнопки ни команды. может просто удалить значки???

     

  238. серега:

    здравствуйте.вообще в 5 пункте я раскоментировал .ну у меня что то не так как у вас вышло.подскажите.что не так?

  239. оля:

    не удается подклчить  PHP к Apache . "C:/Server/bin/PHP/php7apache2_4.dll"

     

  240. Василий:

    Здравствуйте! После того, как меняю параметры в php.ini точно как указано в инструкции, перестает запускаться служба Apache (ошибка 1067). Если php.ini удалить из папки PHP, то Apache начинает работать, но тогда не удается открыть phpmyadmin, т.к. расширение mysqli отключено (оно включается в php.ini). До этого все работало прекрасно на Windows 10 (1803), сейчас установил Windows 10 (1909) и делаю все то же самое по Вашей инструкции. Даже из папки backup копирую php.ini который раньше всегда работал, но результат все равно отрицательный.

    • Alexey:

      Приветствую! Интересно содержание лога ошибок Apache. Подробности смотрите здесь, раздел «Где смотреть ошибки веб-сервера и как правильно задать вопрос».

      Также обращаюсь ко всем, у кого Windows 10 (1909) — хотелось бы больше подтверждений, что у вас аналогичная проблема — в этом случае специально установлю эту сборку и проведу тесты.

      У меня у самого всё прекрасно работает, но номер версии такой:

      [System.Environment]::OSVersion.Version

      Показывает:

      Major  Minor  Build  Revision
      -----  -----  -----  --------
      10     0      18362  0

      А команда:

      (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name ReleaseId).ReleaseId

      Показывает:

      1903
      
  241. Сергей Калюжняй:

    При установке mysql не заметил, что не правильно назвал папку DB, поэтому в C\Server\data\DB\ файлы автоматически не сгенерировались, что делать?

    Заранее благодарен

    Сергей
     

  242. Сергей Калюжняй:

    Вродибы всё зделал, остановил, удалил, опять установил и запустил уже с папкой DB, но всё равно папка data c автоматически генерированными файлами не появляется?

     

    • Alexey:

      Посмотрите, что в файле C:\Server\data\DB\data\*.err?

      • Сергей Калюжняй:

        Нет такой папки, заканчивается на пустой data,?

        Раньше я пытался поставить программу MySql при помощи installer, но застрял на том, что порт 3306 занят, поэтому и попробовал вариант в вашей статье, может из-за этого?

  243. Сергей Калюжняй:

    После установки PHP не перезапустился Apache, пишет Syntax error line 539…. Module coldn't found.

    что можно сделать?

    Спасибо.

  244. Alexey:

    1 марта 2020 проверено с самой последней версией Windows (сборка 1909) и с самыми последними компонентами веб-сервера (Apache 2.4.41, PHP 7.4, MySQL 8.0.19, phpMyAdmin 5.0.1). Всё работает прекрасно, если делать чётко по инструкции.

    • Василий:

      Да, все заработало на Windows 10 (сборка 1909). Но только после того, как скачал и установил самые последнии версии компонентов веб-сервера. Спасибо!

  245. Юрец:

    Спасибо. Всё работает на ура!!! ВНИМАНИЮ всем читателям: ЕСЛИ ЧТО ТО НЕ ПОЛУЧАЕТСЯ, значит вы пропустили какуюто мелочь. Например, наименование папки с ошибкой.

  246. Здравствуйте.

    Во время выполнения 4 пункта (Установка и настройка MySQL 8.0) после создания файла my.ini и добавления туда строк

    1

    2

    3

    4

    5

    [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.exe (подумала,что именно его я открываю в командной строке), тут появилась системная ошибка, что "Не удается продолжить выполнение кода, поскольку система не обнаружила VCRUNTIME140_1.dll. Для устранения этой проблемы попробуйте переустановить программу."

     

    Что тут делать? до 4 пункта инструкции все выполнилось?

     

    • Alexey:

      ответ, что системе не удается найти путь.

      Значит вы неверно назвали папки

      А файл VCRUNTIME140_1.dll не найден потому что не установили Visual C++ Redistributable for Visual Studio 2015-2019. Если делать точно по инструкции, то всё работает.

  247. Во первых поклон прямо таки, низкий

    ну к слову apache  не запускается при активном mysql. А перезагрузки требуются постоянно. Поэтому остановка/запуск сервака отпала сама собой. В батнике записал остановку базы, и вплоть до удаления сервера из сервисов. С паузой, возврат на место. Включается сервер, потом база. И всё в ажюююре.

    ещё раз ОГРОМНОЕ спасибо !!

    Удачи

  248. И ещё. В батнике запускать/останавливать аккуратней получается чз net

    net stop mysql

    net start Apache2.4

  249. Павел Степанов:

    Алексей, Добрый день! Благодарю за подробную инструкцию!

    Застрял на 5 пункте(

    Я посмотрел, уже несколько вопросов про phpinfo();, у некоторых и у меня код не исполняется, по ссылке http://localhost/i.php . Просто выдает :

    <?php

    phpinfo ();

    Вроде строго по инструкции действовал. С чем может быть связана проблема? Дальше 6 пункта не пошел.

  250. Николай:

    Большое спасибо за информацию! Обычно она разрозненна, а тут всё в одном, так сказать Plug and Play))

  251. orabin:

    А как настроить прозрачную аутентификацию  Kerberos для AD пользователей когда Апач именно на Виндовом сервере?

    Буду признателен за Вашу статью или полезную ссылку))

     

    • Alexey:

      Приветствую! Большой материал по Acative Directory уже готовится. Что касается Windows аутентификации для Apache, то вам, наверное, быстрее будет погуглить что-нибудь вроде «apache http server windows authentication» и посмотреть материалы на английском.

      В принципе, этот вопрос мне тоже интересен, но не знаю, когда смогу подготовить статью по нему, т. к. тем для статей в очереди уже на много месяцев вперёд, когда-нибудь доберусь и до этой. Хотя, возможно, при написании про AD, туда же включу и вопрос HTTP аутентификации — по крайней мере, теперь я держу эту мысль в голове.

  252. Сергей:

    Добрый день,

    попытался установить пшагово по Вашей инструкции все программы для запуска phpMyAdminно выходит ошибка : "Расширение mysqli не найдено. Пожалуйста, проверьте ваши настройки PHP. Смотрите [a@doc/html/faq.html#faqmysql@documentation]our documentation для дополнительной информации." Где ошибка?

    • Alexey:

      Приветствую! Возможные причины ошибки:

      1.

      В файле php.ini не раскомментирована строка:

      extension=mysqli

      2.

      В файле httpd.conf не добавлена или записана с ошибкой строка:

      PHPIniDir "C:/Server/bin/PHP"

      3.

      Файл php.ini имеет неверное имя, например, вы забыли его переименовать из php.ini-development.

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

      phpinfo ();

      Найдите поле Loaded Configuration File, там должны быть перечислены загруженные конфигурационные файлы, например:

      Loaded Configuration File C:\Server\bin\PHP\php.ini

      Если у вас так, как показано выше, значит файл php.ini используется, но расширение mysqli не активировано (см. 1й пункт выше).

  253. Владимир:

    Добры день! Очень нужна помощь. Настроил сервер по вашему мануалу и долго пользовался. Большое спасибо!

    Однажды понадобилось подключиться к БД с другого веб сервера и здесь возникал проблема.

    При добавлении строки bind-adress=0.0.0.0 в файл my.ini MySQL сервер не запускается. ПРи попытке подключиться к серверу через PHP mysqli-cinnect - не подключется. Подскажите какие настройки необходимо сделать в mysql для доступа к бд с других пк.

    Пользователя в БД с доступом создал.

  254. Константин:

    Добрый день. При перезапуске Apache выходит сообщение

    httpd.exe: Syntax error on line 540 of C:/Server/bin/Apache24/conf/httpd.conf: Cannot load C:/Server/bin/PHP/php7apache2_4.dll into server: \xcd\xe5 \xed\xe0\xe9\xe4\xe5\xed \xf3\xea\xe0\xe7\xe0\xed\xed\xfb\xe9 \xec\xee\xe4\xf3\xeb\xfc.

    И призапуске http://localhost/i.php.  - пустота.

    Буду благодарен за совет.

    • Alexey:

      Ошибка в строке 540. Подсказка: вы неправильно что-то написали в строке 540. Как более «экзотические» варианты — PHP помещён в папку с другим именем.

      • Константин:

         

         

        Может не та версия PHP? я ставлю 7.4.9

        • Alexey:

          Дело не в версии PHP, а в том, что вы сказали неправильный архив. Смотрите здесь.

          • Константин:

            Алексей , спасибо за оперативные ответы.

            7.4 качал правильный дистрибутив.  Сейчас скачал 7.2 - заработало

            • Alexey:

              Я проверял на предыдущих версиях PHP 7.4.*. Проверю ещё раз на последней. Если что-то поменялось, то поправлю инструкцию и дам знать в комментариях.

              • Константин:

                Алексей, еще раз побеспокою. При запуске http://localhost/phpmyadmin/  выходит сообщение

                get(Response::class); /** @var DatabaseInterface $dbi */ $dbi = $containerBuilder->get(DatabaseInterface::class); /** @var HomeController $controller */ $controller = $containerBuilder->get(HomeController::class); if (isset($_REQUEST['ajax_request']) && ! empty($_REQUEST['access_time'])) { exit; } if (isset($_POST['set_theme'])) { $controller->setTheme([ 'set_theme' => $_POST['set_theme'], ]); header('Location: index.php' . Url::getCommonRaw()); } elseif (isset($_POST['collation_connection'])) { $controller->setCollationConnection([ 'collation_connection' => $_POST['collation_connection'], ]); header('Location: index.php' . Url::getCommonRaw()); } elseif (! empty($_REQUEST['db'])) { // See FAQ 1.34 $page = null; if (! empty($_REQUEST['table'])) { $page = Util::getScriptNameForOption( $GLOBALS['cfg']['DefaultTabTable'], 'table' ); } else { $page = Util::getScriptNameForOption( $GLOBALS['cfg']['DefaultTabDatabase'], 'database' ); } include ROOT_PATH . $page; } elseif ($response->isAjax() && ! empty($_REQUEST['recent_table'])) { $response->addJSON($controller->reloadRecentTablesList()); } elseif ($GLOBALS['PMA_Config']->isGitRevision() && isset($_REQUEST['git_revision']) && $response->isAjax() ) { $response->addHTML($controller->gitRevision()); } else { // Handles some variables that may have been sent by the calling script $GLOBALS['db'] = ''; $GLOBALS['table'] = ''; $show_query = '1'; if ($server > 0) { include ROOT_PATH . 'libraries/server_common.inc.php'; } $response->addHTML($controller->index()); }

                скачал phpmyadmin 5.0.2

                 

            • Alexey:

              Это исходный код phpMyAdmin. Означает, что PHP не установлен вообще или неправильно настроен обработчик файлов .php.

  255. Константин:

    Ничего не менял, запустил http://localhost/phpmyadmin/  в Хроме и заработало.

    До этого про ошибку писал - это в файерфоксе. Т е. в Хроме работает, а в файерфоксе нет

    • Alexey:

      То, что это связано с веб-сервером — исключено 100% — сервер или работает правильно или не работает, браузер не играет роли.

      Что такое в принципе могло быть — вполне допускаю, например, до того, как настроить PHP, вы открыли страницу в одном браузере и там был выведен код. Теперь настроили PHP и первый браузер показывает вам кэшированную страницу (полученную при недонастроенном сервере), а второй показывают всё правильно, т. к. у него нет кэшированной версии.

      Ctrl+F5 (показ страницы минуя кэш) должен исправить проблему в первом браузере.

  256. Василий:

    Все делал как в инструкции, но в браузере открывается страницы не так как в описании

    • Alexey:

      Сервер Apache работает без PHP. Возможно, забыли перезагрузить сервер. Если после перезагрузки всё равно не работает, то возможно забыли сохранить изменения в файле httpd.conf.

  257. Alexey:

    24.09.2020 инструкция верифицирована с последними версиями программ — всё работает!

  258. Василий:

    Все делал по инструкции. Скачивал файлы строго по инструкции. Но PHP все равно не запускается и выдает ошибку. Что делать?

    • Alexey:

      Нет, не по инструкции:

      "PHP 7 скачайте со страницы https://windows.php.net/download/. Выберите версию Thread Safe, обратите внимание на битность. Если вы затрудняетесь, какой именно файл скачать, то посмотрите эту заметку".

      Это цитата из инструкции. А вы зачем-то всё равно скачали Non Thread Safe.

  259. Alexey:

    Инструкция обновлена для PHP 8.

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

  260. Владимир:

    Добрый день!

    А можно ли перенести MySQL на другой диск?

    Изначально все установил на E (например), все хорошо работает. Но решил поработать с большим количеством данных и все очень медлено.

    Хотелось перенести только MySQL на SSD. Требуется переустановка? 

     

    • Alexey:

      Приветствую! Есть два варианта переноса:

      1. Перенос только папки с базой данных (многие делают именно это, поскольку только расположение БД влияет на скорость)

      2. Перенос и базы данных, и исполнимых файлов (если зачем-то это нужно)

      Перенос только папки с базой данных

      Остановите службу MySQL:

      net stop mysql

      Переместите куда нужно папку C:\Server\data\DB\ (это и есть база данных).

      Откройте файл my.ini (по этой инструкции он расположен в C:\Server\bin\mysql-8.0\) и отредактируйте значение datadir на тот путь, где теперь у вас папка с базой данных.

      Запустите службу:

      net start mysql

      Перенос и базы данных и исполнимых файлов

      Остановите и удалите службу MySQL:

      net stop mysql
      c:\Server\bin\mysql-8.0\bin\mysqld --remove

      Переместите куда нужно папку C:\Server\data\DB\ (это и есть база данных).

      Откройте файл my.ini (по этой инструкции он расположен в C:\Server\bin\mysql-8.0\) и отредактируйте значение datadir на тот путь, где теперь у вас папка с базой данных.

      Переместите куда нужно исполнимые файлы, по этой инструкции они располагаются в папке C:\Server\bin\mysql-8.0\.

      Теперь нужно установить службу. Это делается примерно следующей командой, но вам нужно указать теперь в ней свой путь до файла mysqld.exe:

      C:\Server\bin\mysql-8.0\bin\mysqld --install

      Запустите службу:

      net start mysql

      Это всё — больше ничего не нужно.

      • Аноним:

        Спасибо огромное!

        Действительно только перенос базы - уже ускорение примерно в 80 раз. Проерял на Insert (там еще идет простая обработка файлов, на каждый делается запись в базу, файлы на обычном HDD 7200).

        Когда база на таком же диске (другом) - 152 секунды , база на SSD - 2 секунды +- 5-10%

        Правда попробовал тоже самое с Postgres 1 секунда. (он тоже на SSD)

        И Postgres и MySQL через PDO.

        Единственно на большом количестве записей (более 150.000) на MySQL обнаружен странный глюк, но с ним буду разбираться. Если Постгрес всегда отрабатывает четко - сколько строк выдала программа по логу в конце, столько и строк в базе. То у мускула такое не всегда. Иногда строк столько же, а иногда меньше.

        На таком количестве записей - разница в скорости тоже 2-2,5 раза в пользу постгреса.

  261. Владимир:

    Это мое было последнее письмо.

    Вроде разобрался - глючит не MySQL при записи, а phpMyAdmin.

    Вот 3 картинки. Программа отработала и записала в базу 112 744 строки.

    Если сделать самому запрос по COUNT, то так и есть.

     

    Но при просмотре (обзор) или просто сама таблица - phpMyAdmin сообщает, что в таблице - 111 656 строк.

    Но ручным запросом можно выбрать и записи с большими номерами.

     

    Вот такой глюк.

     

  262. В чем может заключаться проблема при выдаче следующей ошибки при входе в PhpMyAdmin

    mysqli::real_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: NO)

     

    • Alexey:

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

      Кстати, ваш вопрос имеет отношение к этой инструкции? Если да, то укажите, что именно делали по-другому.

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

         

        Как определить несуществующего пользователя?

        • Alexey:

          Там же написано, что это «root на localhost».

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

          Этой статье пять лет и вы первый, кто с этим столкнулся — скорее всего, вы всё же делали какие-то дополнительные настройки, не описанные в этой статье. Может быть, уже установили пароль пользователя root но забываете его вводить. Может быть, у вас уже была установленной MySQL, а установка MySQL по этой инструкции завершилась неудачей, но вы этого не заметили. Следовательно, используется пароль, который записан в старой MySQL.

          Ну что-то такое, в меру экзотическое.

          В Диспетчере задач найдите службу mysqld.exe, кликните правой кнопкой мыши и в контекстном меню выберите «Открыть расположение файла». Если откроется что-то отличное от «C:\Server\bin\mysql-8.0\bin» значит верен вариант с ранее установленной MySQL.

          Если расположение правильное, то просто сбросьте пароль для пользователя root. Как это сделать написано в статье «Как сбросить пароль root MySQL или MariaDB в Windows».

           

  263. Андрей:

    Здравствуйте. При выполнении этой строчки:

    Откройте командную строку (это можно сделать нажав одновременно клавиши Win+X). Выберите там Windows PowerShell (администратор) и скопируйте туда:

    1

    c:\Server\bin\Apache24\bin\httpd.exe -k install

    у меня почему то выскакивает ошибка, типо Неудаётся найти позиционный параметр принимающий аргумент 

     

    c:\Server\bin\Apache24\bin\httpd.exe
    Хотя он там есть и я по инструкции всё устанавливал.

    • Alexey:

      Приветствую! 

      Пишут, что ошибку

      AH00370: Failed to create WinNT Service Profile"

      можно исправить если переустановить Visual C++ Redistributable. Попробуйте — если получится, то напишите.

      Что касается последующих команд, то вместо

      c:\Server\bin\Apache24\bin\httpd.exe -k install

      вы скопировали команду вместе с приглашением командной строки и пытаетесь ввести следующее:

      PS C:\windows\system32> c:\Server\bin\Apache24\bin\httpd.exe -k install

      То есть вводимая команда начинается на «PS C:\windows\……..».

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

  264. Дмитрий:

    Здравствуйте

    При настройке phpmyadmin столкнулся с такой проблемой 

    Fatal error: Uncaught Error: Class "Twig\Loader\FilesystemLoader" not found in C:\Server\data\htdocs\phpmyadmin\libraries\classes\Template.php:59

    Все инструкции выполнил в точности как описано в статье, все предыдущие пункты работали

    • Alexey:

      Приветствую. Не могу воспроизвести указанную проблему — скачал последние версии, установил, всё просто работает:

  265. Андрей:

    Очень чёткая инструкция!!! Пробовал много раз по подобным инструкциям и ничего толком не получалось. Все сразу заработало. Обычно авторы что нибудь да упустят. Потом сидишь гадаешь. А тут все прям замечательно. Спасибо автору!

    • Alexey:

      Спасибо за отзыв!

      Эту инструкцию я впервые написал где-то в 2012-2013 годах (для другого сайта), с тех пор сам по ней устанавливаю веб-сервер и если что-то меняется, то вношу исправление в эту статью.

  266. Александр:

    Добрый день. Подскажите пожалуйста как откорректировать httpd.cfg  что б апачи видел .htccess и с ним можно было работать?

    • Alexey:

      Приветствую! Во-первых, нет такого файла, есть файл httpd.conf.

      Во-вторых, в статье уже сделана настройка для включения файла .htaccess. Это строка замены

      AllowOverride None

      на

      AllowOverride All
      
  267. Вячеслав:

    Доброго времени суток. Замечательная статья. Всё залетело с первого раза. Но…   Сервер запускается при запуске Винды и работает всё время, а значит хочет кушать ресурсы. Мне, например, удобнее, если сервер будет запускаться батником, в частности, программа периодически запускается и ей нужно обратиться к базе данных. Затем программа завершилась и, соответственно, останавливаем сервер. Ну и для тестов вывести ярлыки на рабочий стол - включил сервер, поработал с проектом, выключил. Как в Денвере. Можно ли бы такое замутить?

    • Alexey:

      Приветствую! Да, посмотрите в статье «Настройка Apache в Windows» раздел «Файл .bat для управления сервером (установка сервера, запуск, перезапуск и др.)».

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

  268. Здравствуйте. Спасибо вам большое за статью, никогда еще интернет не был так полезен как в этой статье. Тоже сталкивался с ошибками и прочим, но при внимательном подходе, все проходит хорошо, так что советую другим не торопиться и выполнять все один в один. А уже когда все получится, можете переделать и структуру и все остальное, как вам удобно.

  269. Alexey:

    Вы что-то совсем напутали: как могут соотноситься phpinfo и Composer? Это сообщение не имеет отношение к phpinfo да и вообще к данной инструкции.

  270. Second:

    С первого раза….

    Лайк, чо.

  271. Максим:

    Установил все по инструкции, все работает но, в i.php в пункте Configuration File (php.ini) Path пишет no value и из-за этого, некоторые модули тупа не работают. Прописал все пути правильно, подключил Path в переменных средах, и все равно ничего не помогло. У кого такая же проблема, помогите сделать. Я уже второй день ищу проблему и ничего не нашел в нете и на форумах. По несколько раз сносил все к чертям и ставил заново.

    • Alexey:

      У вас всё работает как следует, обратите внимание на следующую после выделенной вами строку Loaded Configuration File, в ней значение C:\Server\bin\PHP\php.ini, то есть конфигурационный файл загружен.

      Что касается «Configuration File (php.ini) Path» то здесь пишется путь до файла, где по умолчанию ищется php.ini — указывается при компиляции PHP, вам не нужно об этом беспокоиться.

      Если не работают какие-то модули, то внимательно проверяйте содержимое php.ini — действительно ли вы раскомментировали нужные строки?

      После внесения изменений в файл php.ini не забывайте перезагружать веб-сервер, чтобы сделанные изменения вступили в силу.

      • Максим:

        Да , спасибо за ответ. У меня просто не работал curl. Все сделал. Все работает. Спасибо за чёткую статью. Все легко и просто.

  272. Максим:

    Добрый вечер. Не подскажете как установить сертификат на веб сервер ?

    • Alexey:

      Приветствую! Об SSL для Apache в Windows я писал здесь.

      Ещё одна моя статья «Apache SSL: переход Apache на HTTPS» — по сути там, вроде, примерно то же самое, но посмотрите комментарии под ней — там я пытаюсь объяснить, почему на локалхосте невозможно получить валидный сертификат.

      • Alexey:

        Для своего доменного доменного имени или локалхоста? Если локалхоста, то читайте комментарии по ссылке выше.

        Если для своего доменного имени — да, можно. Во-первых, можно просто купить.

        Во-вторых, можно получить тестовый на 3 месяца (и затем его продлять). Я это делаю для некоторых своих сайтов, но быстрее, чем объяснять как это сделать на Windows, будет установить Linux и сделать там.

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

        • Максим:

          Ну у меня локалхост, такой сертификат с вашей статьи не не подходит. Можно для домена но, покупать дорого. Если временный на 3 месяц устроит. Только вот как его получить я не нашел. Гуглил.

  273. Максим:

    Ставлю сервер в первый раз, всё супер, огромное спасибо за такую подробную и удобную инструкцию

  274. hackyouworld:

    Здравствуйте, у меня такая проблема.

    Fatal error: Array and string offset access syntax with curly braces is no longer supported in C:\Server\data\htdocs\phpMyAdmin\libraries\url_generating.lib.php on line 239

    • Alexey:

      Приветствую! У вас последняя версия phpMyAdmin? Если нет, то попробуйте последнюю.

  275. Валерия:

    Добрый день. Сделала все по инструкции, но при вводе http://localhost/phpmyadmin/ выдает такой текст "Composer detected issues in your platform: Your Composer dependencies require the following PHP extensions to be installed: mysqli, openssl". 
    Что делать?

    • Ярослав:

      Вам удалось решить проблему?

      • Alexey:

        Приветствую! Один из пользователей написал о такой проблеме, а потом обнаружил, что пропустил следующий шаг:

        Найти

        ; extension_dir = "ext"

        и заменить на:

        extension_dir = "C:\Server\bin\PHP\ext\"
        
        • Павел:

          У меня точно такая же ошибка, когда я перехожу на localhost/phpmyadmin/ у меня белый экран и надпись "Composer detected issues in your platform: Your Composer dependencies require the following PHP extensions to be installed: mysqli, openssl" хотя я делал всё по инструкции, всё переделывал несколько раз, но безуспешно. Версия phpmyadmin = 5.1.1 , PHP = 8.0.9 , Apachi = 2.4.48 , MySQL = 8.0.11
          Прошу, помогите, потому что мне очень нужен phpmyadmin!

          • Alexey:

            Приветствую! Правильно ли я понимаю, что версию со строкой «; extension_dir = "ext"» вы проверили?

            Я пытаюсь воспроизвести ошибку, но не могу это сделать ни при каких условиях, максимум, что получаю, «Расширение mysqli не найдено.».

            Я нашёл файл, содержащий строку, похожую на «Your Composer dependencies require the following PHP extensions to be installed: mysqli, openssl», это файл platform_check.php. Я запустил его напрямую и получил следующее сообщение:

            Composer detected issues in your platform:
            Your Composer dependencies require the following PHP extensions to be installed: hash, openssl

            То есть моя система также не соответствует требованиям Composer (кстати, что это такое и почему его файлы помещены в phpMyAdmin?), но ошибку я получаю с несколько другим текстом. И при обычном использовании веб-сервера я никогда не сталкивался с этой ошибкой.

            Судя по тому, что у вас не загружены расширения mysqli и openssl, ваша система по какой-то причине не использует настройки из файла php.ini, вы можете проверить это, запустив в командной строке:

            C:\Server\bin\PHP\php --ini

            Вывод должен включать путь к файлу C:\Server\bin\PHP\php.ini. Если это не так, возможно, вы не переименовали файл в php.ini или назвали его php.ini.txt или что-то в этом роде.

            Вообще, Composer — это менеджер приложений на PHP. К данной инструкции он не имеет ни малейшего отношения. Какие отличия в ваших системах? Возможно, вы когда-либо использовали Composer, возможно, вы скачиваете файлы с неофициальных сайтов? Может быть, вы устанавливали другие сборки с веб-браузером и они где-то оставили свой файл php.ini приводящий к этой ошибке?

            • Павел:

              При вводе команды на нахождение php.inc мне выдаёт 
              Configuration File (php.ini) Path:
              Loaded Configuration File:         C:\Server\bin\PHP\php.ini
              Scan for additional .ini files in: (none)
              Additional .ini files parsed:      (none)

              Файл назвал правильно, нигде я больше не использовал Composer это первый раз я как я вообще что-то подобное делаю.

              Но похоже, что мне в очередной раз придётся всё переделывать…

            • Павел:

              Вот док-ва того, что я правильно назвал файл

              • Alexey:

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

                Composer detected issues in your platform: Your Composer dependencies require the following PHP extensions to be installed: mysqli, openssl

                Она возникает в последней версии phpMyAdmin (5.1.1) в следующих случаях:

                1. В файл php.ini не добавлена строка

                extension_dir = "C:\Server\bin\PHP\ext\"

                2. В файле php.ini не раскомментированы строки:

                extension=mysqli
                extension=openssl

                3. Файл php.ini вовсе не используется, из-за того, что назван неправильно.

                4. Все настройки в файле php.ini сделаны правильно, но веб-сервер не перезапущен, из-за чего настройки не успели примениться.

                К примеру, один из пользователей жалуется на эту ошибку и даже выложил папку с веб-сервером, установленной по этой инструкции: https://disk.yandex.ru/d/pw3IjbzqrBMa-A

                Если изучить эти файлы, то видно, что отсутствует файл php.ini.

  276. Андрей:

    Когда пишу в повер шёл c:\Server\bin\Apache24\bin\httpd.exe -k restart пишет ошибку:

    httpd.exe: Syntax error on Line 540 of C:/Server/bin/Apache24/conf/httpd.conf: Cannot load C:/Server/bin/php/php8apache2_4.dll into Server: The specified Module Could not be found.

    Помогите пожалуйста! 

     

    • Alexey:

      Сервер не может найти файл C:/Server/bin/php/php8apache2_4.dll. Или скачали неправильную версию PHP или поместили её в неправильную папку.

  277. Карина:

    При установке mySQL администарор.командная строка пишет: 

    Сбой выполнения программы mysqld.exe: Указанный исполняемый файл не является действительным приложением для этой операц
    ионной системы.строка:1 знак:1
    + C:\Server\bin\mysql-8.0\bin\mysqld --initialize-insecure --user=root
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.
    строка:1 знак:1
    + C:\Server\bin\mysql-8.0\bin\mysqld --initialize-insecure --user=root
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : ResourceUnavailable: (:) [], ApplicationFailedException
        + FullyQualifiedErrorId : NativeCommandFailed

    Сбой выполнения программы mysqld.exe: Указанный исполняемый файл не является действительным приложением для этой операц
    ионной системы.строка:2 знак:1
    + C:\Server\bin\mysql-8.0\bin\mysqld --install
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.
    строка:2 знак:1
    + C:\Server\bin\mysql-8.0\bin\mysqld --install
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : ResourceUnavailable: (:) [], ApplicationFailedException
        + FullyQualifiedErrorId : NativeCommandFailed

     

     

    в чем проблема? 

    • Alexey:

      Судя по сообщению:

      Указанный исполняемый файл не является действительным приложением для этой операционной системы

      вы скачали файл для 64-битной системы, а у вас 32-битная.

      Я не вижу версии MySQL в виде ZIP архивов, похоже, вам придётся использовать установщик (MySQL Installer MSI), который содержит оба варианта.

  278. Коломийцев Илья:

    Здравствуйте, после комманды net start mysql - выбивает, что не запустило служба и об ошибке не сообщаеться 

  279. Владимир:

    Добрый день!

    Что может быть в моем случае:

    при наборе localhost/phpmyadmin 

    ошибка:

    forbiden  403

    если набрать

    localhost/phpmyadmin/index.php

    все открывается нормально

  280. Сергей:

    Добрый день помогите с проблемой на 6 шаге. 

    Composer detected issues in your platform: Your Composer dependencies require the following PHP extensions to be installed: mysqli, openssl

  281. Дмитрий:

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

     Хранилище конфигурации phpMyAdmin не полностью настроено, некоторые расширенные функции были отключены. Узнайте причину.
    Или перейдите на вкладку 'Операции' любой базы данных, чтобы настроить хранилище в ней.

    Deprecation Notice in .\vendor\twig\twig\src\Loader\FilesystemLoader.php#40
     realpath(): Passing null to parameter #1 ($path) of type string is deprecated

    Backtrace

    FilesystemLoader.php#40: realpath(NULL)
    Template.php#57: Twig\Loader\FilesystemLoader->__construct(string 'C:\\Server\\data\\htdocs\\phpmyadmin\\\\templates\\')
    Theme.php#101: PhpMyAdmin\Template->__construct()
    Theme.php#174: PhpMyAdmin\Theme->__construct()
    ThemeManager.php#307: PhpMyAdmin\Theme::load(
    string './themes/metro',
    string 'C:\\Server\\data\\htdocs\\phpmyadmin\\./themes/metro/',
    )
    ThemeManager.php#79: PhpMyAdmin\ThemeManager->loadThemes()
    ThemeManager.php#121: PhpMyAdmin\ThemeManager->__construct()
    ThemeManager.php#385: PhpMyAdmin\ThemeManager::getInstance()
    common.inc.php#240: PhpMyAdmin\ThemeManager::initializeTheme()
    index.php#15: require_once(.\libraries\common.inc.php)

    Deprecation Notice in .\vendor\twig\twig\src\Markup.php#35
     Return type of Twig\Markup::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

    Backtrace

    ClassLoader.php#444: include(.\vendor\twig\twig\src\Markup.php)
    ClassLoader.php#322: Composer\Autoload\includeFile(string 'C:\\Server\\data\\htdocs\\phpmyadmin\\vendor\\composer/../twig/twig/src/Markup.php')
    46f1bfbf4328d3d22fddffb9178fdeb9868d0740e4cc8b5bbd6f2fcfb8e4523e.php#59: Composer\Autoload\ClassLoader->loadClass(string 'Twig\\Markup')
    Template.php#405: __TwigTemplate_034511bee5325c368ee003e3d97d6cb47c3e1c94ebb527bcf0b76ba7818d1ac6->doDisplay(
    array,
    array,
    )
    Template.php#378: Twig\Template->displayWithErrorHandling(
    array,
    array,
    )
    Template.php#390: Twig\Template->display(array)
    TemplateWrapper.php#45: Twig\Template->render(
    array,
    array,
    )
    Template.php#132: Twig\TemplateWrapper->render(array)
    Header.php#714: PhpMyAdmin\Template->render(
    string 'javascript/variables',
    array,
    )
    Header.php#193: PhpMyAdmin\Header->getVariablesForJavaScript()
    Header.php#142: PhpMyAdmin\Header->addDefaultScripts()
    Response.php#184: PhpMyAdmin\Header->__construct()
    Response.php#215: PhpMyAdmin\Response->__construct()
    common.inc.php#296: PhpMyAdmin\Response::getInstance()
    index.php#15: require_once(.\libraries\common.inc.php)

    Deprecation Notice in .\vendor\twig\twig\src\Markup.php#40
     Return type of Twig\Markup::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

    Backtrace

    ClassLoader.php#444: include(.\vendor\twig\twig\src\Markup.php)
    ClassLoader.php#322: Composer\Autoload\includeFile(string 'C:\\Server\\data\\htdocs\\phpmyadmin\\vendor\\composer/../twig/twig/src/Markup.php')
    46f1bfbf4328d3d22fddffb9178fdeb9868d0740e4cc8b5bbd6f2fcfb8e4523e.php#59: Composer\Autoload\ClassLoader->loadClass(string 'Twig\\Markup')
    Template.php#405: __TwigTemplate_034511bee5325c368ee003e3d97d6cb47c3e1c94ebb527bcf0b76ba7818d1ac6->doDisplay(
    array,
    array,
    )
    Template.php#378: Twig\Template->displayWithErrorHandling(
    array,
    array,
    )
    Template.php#390: Twig\Template->display(array)
    TemplateWrapper.php#45: Twig\Template->render(
    array,
    array,
    )
    Template.php#132: Twig\TemplateWrapper->render(array)
    Header.php#714: PhpMyAdmin\Template->render(
    string 'javascript/variables',
    array,
    )
    Header.php#193: PhpMyAdmin\Header->getVariablesForJavaScript()
    Header.php#142: PhpMyAdmin\Header->addDefaultScripts()
    Response.php#184: PhpMyAdmin\Header->__construct()
    Response.php#215: PhpMyAdmin\Response->__construct()
    common.inc.php#296: PhpMyAdmin\Response::getInstance()
    index.php#15: require_once(.\libraries\common.inc.php)

    Deprecation Notice in .\vendor\twig\twig\src\Node\Node.php#161
     Return type of Twig\Node\Node::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

    Backtrace

    ClassLoader.php#444: include(.\vendor\twig\twig\src\Node\Node.php)
    ClassLoader.php#322: Composer\Autoload\includeFile(string 'C:\\Server\\data\\htdocs\\phpmyadmin\\vendor\\composer/../twig/twig/src/Node/Node.php')
    Composer\Autoload\ClassLoader->loadClass(string 'Twig\\Node\\Node')
    TwigFilter.php#150: class_exists(string 'Twig\\Node\\Node')
    ClassLoader.php#444: include(.\vendor\twig\twig\src\TwigFilter.php)
    ClassLoader.php#322: Composer\Autoload\includeFile(string 'C:\\Server\\data\\htdocs\\phpmyadmin\\vendor\\composer/../twig/twig/src/TwigFilter.php')
    CoreExtension.php#214: Composer\Autoload\ClassLoader->loadClass(string 'Twig\\TwigFilter')
    ExtensionSet.php#433: Twig\Extension\CoreExtension->getFilters()
    ExtensionSet.php#423: Twig\ExtensionSet->initExtension()
    ExtensionSet.php#397: Twig\ExtensionSet->initExtensions()
    Environment.php#966: Twig\ExtensionSet->getUnaryOperators()
    Lexer.php#459: Twig\Environment->getUnaryOperators()
    Lexer.php#110: Twig\Lexer->getOperatorRegex()
    Environment.php#539: Twig\Lexer->__construct()
    Environment.php#595: Twig\Environment->tokenize()
    Environment.php#408: Twig\Environment->compileSource()
    Environment.php#381: Twig\Environment->loadClass(
    string '__TwigTemplate_e5eede12e45c1aad02a2d26a1f8fc775ccf9bc81126150d87303842d4ed7e41f',
    string 'home/index.twig',
    NULL,
    )
    Environment.php#359: Twig\Environment->loadTemplate(string 'home/index.twig')
    Template.php#99: Twig\Environment->load(string 'home/index.twig')
    Template.php#132: PhpMyAdmin\Template->load(string 'home/index')
    AbstractController.php#36: PhpMyAdmin\Template->render(
    string 'home/index',
    array,
    )
    HomeController.php#246: PhpMyAdmin\Controllers\AbstractController->render(
    string 'home/index',
    array,
    )
    Routing.php#187: PhpMyAdmin\Controllers\HomeController->index(array)
    index.php#18: PhpMyAdmin\Routing::callControllerForRoute(
    string '/',
    ,
    ,
    )

    Deprecation Notice in .\vendor\twig\twig\src\Node\Node.php#166
     Return type of Twig\Node\Node::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

    Backtrace

    ClassLoader.php#444: include(.\vendor\twig\twig\src\Node\Node.php)
    ClassLoader.php#322: Composer\Autoload\includeFile(string 'C:\\Server\\data\\htdocs\\phpmyadmin\\vendor\\composer/../twig/twig/src/Node/Node.php')
    Composer\Autoload\ClassLoader->loadClass(string 'Twig\\Node\\Node')
    TwigFilter.php#150: class_exists(string 'Twig\\Node\\Node')
    ClassLoader.php#444: include(.\vendor\twig\twig\src\TwigFilter.php)
    ClassLoader.php#322: Composer\Autoload\includeFile(string 'C:\\Server\\data\\htdocs\\phpmyadmin\\vendor\\composer/../twig/twig/src/TwigFilter.php')
    CoreExtension.php#214: Composer\Autoload\ClassLoader->loadClass(string 'Twig\\TwigFilter')
    ExtensionSet.php#433: Twig\Extension\CoreExtension->getFilters()
    ExtensionSet.php#423: Twig\ExtensionSet->initExtension()
    ExtensionSet.php#397: Twig\ExtensionSet->initExtensions()
    Environment.php#966: Twig\ExtensionSet->getUnaryOperators()
    Lexer.php#459: Twig\Environment->getUnaryOperators()
    Lexer.php#110: Twig\Lexer->getOperatorRegex()
    Environment.php#539: Twig\Lexer->__construct()
    Environment.php#595: Twig\Environment->tokenize()
    Environment.php#408: Twig\Environment->compileSource()
    Environment.php#381: Twig\Environment->loadClass(
    string '__TwigTemplate_e5eede12e45c1aad02a2d26a1f8fc775ccf9bc81126150d87303842d4ed7e41f',
    string 'home/index.twig',
    NULL,
    )
    Environment.php#359: Twig\Environment->loadTemplate(string 'home/index.twig')
    Template.php#99: Twig\Environment->load(string 'home/index.twig')
    Template.php#132: PhpMyAdmin\Template->load(string 'home/index')
    AbstractController.php#36: PhpMyAdmin\Template->render(
    string 'home/index',
    array,
    )
    HomeController.php#246: PhpMyAdmin\Controllers\AbstractController->render(
    string 'home/index',
    array,
    )
    Routing.php#187: PhpMyAdmin\Controllers\HomeController->index(array)
    index.php#18: PhpMyAdmin\Routing::callControllerForRoute(
    string '/',
    ,
    ,
    )

    Deprecation Notice in .\libraries\classes\Util.php#1936
     Function strftime() is deprecated

    Backtrace

    Header.php#582: PhpMyAdmin\Util::expandUserString(string '@HTTP_HOST@ / @VSERVER@ | @PHPMYADMIN@')
    Header.php#459: PhpMyAdmin\Header->getPageTitle()
    Response.php#331: PhpMyAdmin\Header->getDisplay()
    Response.php#345: PhpMyAdmin\Response->getDisplay()
    Response.php#507: PhpMyAdmin\Response->htmlResponse()
    PhpMyAdmin\Response->response()

  282. Здравствуйте, Алексей. 

    Почему-то при использовании PHP8 (php-8.1.1-Win32-vs16-x64) не получается нормально использовать phpMyAdmin (phpMyAdmin-5.1.1-all-languages). Нормально работает только с PHP7 (php-7.4.27-Win32-vc15-x64). Всё настраиваю правильно, в соответствии с вашими указаниями, да и некоторыми другими тонкими моментами, но в основном с инструкцией. При входе на страницу phpMyAdmin, а уж тем более при входе в аккаунт куча ошибок. С PHP7 такого нет.

  283. Всем привет! Возникла проблема переноса сайта CFML->PHP, воспользовался данным руководством для быстрой установки… все прошло "без проблем", все работает, но логи я не смотрел… в процессе перетаскивания сайта потребовалось воспользоваться расширением ImageMagick … установил по инструкции И -- не работает -- " Fatal error: Uncaught Error: Class "Imagick" not found"… все что пишут об этой ошибке у меня выполнено… и только тут я посмотрел логи (Apache 2.4.52; PHP 8.1.3; Windows 10.0 build 19044 AMD64) -- оказываеется из зарегистрированных в php.ini у меня не грузятся (с этой ошибкой) 9 расширений, т.е. большая часть грузится!

    Т.е. есть какие-то особенности у расширений: curl, intl, ldap, pdo_pgsql, pdo_sqlite, pgsql, sodium, sqlite3, php_imagick ???

    Я не трогал PHP лет 10 или 20    🙁

    Подскажите из-за чего могут быть проблемы…  Заранее спасибо!

  284. Sergey:

    Спасибо! Устанавливал данную связку несколько раз, ничего не получалось,

    пока не попал на Вашу инструкцию. Тут всё встало с первого раза!

    Ставил на Win7х64Pro в VirtualBox.

    Visual C++ 2019, Apache/2.4.53, MySQL Community Server 8.0.28, PHP/8.1.4, phpMyAdmin-5.1.3

     

  285. Юрий:

    Столько мусора пришлось перебрать в интернете, пока не попал на эту Вашу статью.

    Ограмное спасибо!

  286. Юрий:

    Добрый вечер. У меня белый экран при переходе http://localhost/phpmyadmin/. Вроде прочитал в комментариях, что из-за файла config.inc.php. Мол, надо не новый создавать, а старый sample редактировать и переименовывать. Сделал, но экран остался белым. Может ненправильно редактировал или ещё в чём ошибка. Подскажите как устранить это?

  287. Артем:

    приветсвую.Установил apache 2.4 при проверке через локал хост выдает 403forbidden You don't have permission to access this resource.Как это решить?

  288. Miras:

    Доброго дня, при настройке Apache в PowerShell выходит такая вот фигня, помогите)

    • Alexey:

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

Добавить комментарий для Юрий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *