Как установить веб-сервер Apache с PHP, MySQL и phpMyAdmin на Windows

Оглавление

1. Веб-сервер на Windows

2. Как установить Apache на Windows

3. Как установить PHP на Windows

4. Настройка PHP 8

5. Как установить MySQL в Windows

6. Как установить phpMyAdmin в Windows

Заключение


Веб-сервер на Windows

Веб-сервер — это программа, которая предназначена для обработки запросов к сайтам и отправки пользователям страниц веб-сайтов. Самый популярный пример веб-сервера это Apache.

PHP — это язык программирования. Также называется среда для выполнения скриптов, написанных на PHP. В операционной системе, в том числе и Windows, PHP может быть установлен самостоятельно, без веб-сервера. В этом случае программы (скрипты) на PHP можно запускать из командной строки. Но веб-приложения очень часто используют PHP, данный интерпретатор стал, фактически, стандартом веб-серверов и поэтому они почти всегда устанавливаются вместе.

MySQL — это система управления базами данных (СУБД). Это также самостоятельная программа, она используется для хранения данных, поиска по базам данных, для изменения и удаления данных. Веб-приложения нуждаются в постоянном хранилище, поэтому для веб-сервера дополнительно устанавливается и СУБД. Кстати, вполне возможно, что вы слышали про MariaDB — это тоже СУБД. Первой появилась MySQL, а затем от неё ответвилась MariaDB. Для веб-приложений обе эти СУБД являются взаимозаменяемыми, то есть никакой разницы нет. В этой инструкции я буду показывать установку на примере MySQL, тем не менее если вы хотите попробовать новую MariaDB, то смотрите статью «Инструкция по установке веб-сервера Apache c PHP, MariaDB и phpMyAdmin в Windows».

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

Особенность Apache и других компонентов веб-сервера в том, что их корни уходят в Linux. И эти программы применяют в своей работе основные концепции этой операционной системы. Например, программы очень гибки в настройке — можно выполнить установку в любую папку, сайты также можно разместить в любой папке, в том числе на другом диске, не на том, где установлен сам веб-сервер. Даже файлы журналов можно вынести на третий диск и так далее. У веб-сервера много встроенных модулей — можно включить или отключить их в любом сочетании, можно подключить внешние модули. Можно создать много сайтов на одном веб-сервере и для каждого из них установить персональные настройки. Но эта гибкая настройка выполняется через текстовые файлы — именно такой подход (без графического интерфейса) позволяет описать любые конфигурации

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

Мы не будем делать какие-то комплексные настройки — наша цель, просто установить веб-сервер на Windows. Тем не менее было бы странно совсем не использовать такую мощь в настройке. Мы разделим сервер на две директории: в первой будут исполнимые файлы, а во второй — данные (файлы сайтов и баз данных). В будущем, когда возникнет необходимость делать резервные копии информации или обновлять веб-сервер, вы поймёте, насколько удобен этот подход!

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

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

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

Для работы всех компонентов веб-сервера необходим файл «Visual C++ Redistributable for Visual Studio 2015-2022» - это официальный файл от Microsoft. Чтобы его скачать перейдите по ссылке. После скачивания, запустите этот файл и выполните установку.

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

Как установить Apache на Windows

Перейдите на сайт apachelounge.com/download и скачайте .zip архив с веб-сервером:

Распакуйте папку 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"
<Directory "${SRVROOT}/htdocs">

на

DocumentRoot "c:/Server/data/htdocs"
<Directory "c:/Server/data/htdocs">

меняем

DirectoryIndex index.html

на

DirectoryIndex index.php index.html index.htm

меняем

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

на

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

и меняем

#LoadModule rewrite_module modules/mod_rewrite.so

на

LoadModule rewrite_module modules/mod_rewrite.so

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

Откройте командную строку (это можно сделать нажав одновременно клавиши Win+x).

Выберите там Windows PowerShell (администратор) и скопируйте туда:

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

Если поступит запрос от файервола в отношение Apache, то нажмите Разрешить доступ.

Теперь вводим в командную строку:

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

И нажмите Enter.

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

Это означает, что веб-сервер работает. Чтобы увидеть там файлы, добавьте их в каталог c:\Server\data\htdocs\ - это главная папка для данных сервера, где будут размещаться все сайты.

Как установить PHP на Windows

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

В папке c:\Server\bin\ создаём каталог PHP и копируем в него содержимое только что скаченного архива.

В файле 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"

И перезапускаем 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.

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

Настоятельно рекомендуется добавить путь до PHP в переменную окружения PATH в Windows.

Также рекомендуется ознакомиться со статьями Что делать если PHP скрипту не хватает времени и памяти. Почему большой файл не загружается на сайт или в phpMyAdmin и Как увеличить память и время для PHP скриптов.

Материалы по дополнительной настройке, в том числе подключение поддержки PERL, Ruby, Python в Apache (только для тех, кому это нужно):

Как установить MySQL в Windows

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

На странице скачивания нам предлагают зарегистрироваться или войти в существующую учётную запись - но это делать необязательно. Достаточно нажать на ссылку «No thanks, just start my download».

В каталог c:\Server\bin\ распаковываем файлы из только что скаченного архива. Распакованная папка будет называться примерно mysql-8.0.17-winx64 (зависит от версии), переименуйте её в mysql-8.0.

Заходим в эту папку и создаём там файл my.ini. Теперь открываем этот файл любым текстовым редактором и добавьте туда следующие строки:

[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
datadir="c:/Server/data/DB/data/"
default_authentication_plugin=mysql_native_password

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

Настройка завершена, но нужно ещё выполнить инициализацию и установку, для этого открываем командную строку от имени администратора и последовательно вводим туда:

C:\Server\bin\mysql-8.0\bin\mysqld --initialize-insecure --user=root
C:\Server\bin\mysql-8.0\bin\mysqld --install
net start mysql

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

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

Как установить phpMyAdmin в Windows

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

Прямая ссылка на самую последнюю версию: phpMyAdmin-latest-all-languages.zip.

В каталог c:\Server\data\htdocs\ копируем содержимое только что скаченного архива. Переименовываем эту папку в 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. Поле пароля оставляем пустым.

Заключение

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

Если вдруг у вас что-то не получилось, то скорее всего вы пропустили какой-то шаг или сделали его неправильно — попробуйте всё сделать в точности по инструкции. Если проблема осталась, то ознакомьтесь со справочным материалом «Ошибки при настройке и установке Apache, PHP, MySQL/MariaDB, phpMyAdmin» и если даже он не помог, то напишите о своей ошибке в комментарии.

Большое количество материалов по Apache на русском языке специально для Windows вы найдёте на этой странице.

Примеры материалов, которые могут вам пригодиться в первую очередь:


Comments

  1. А не подскажите что делать с mysql  если у меня 32 разрядная система? Я скачал файл mysql-5.5.62-win32.zip перекинул содержимое в папку mysql-8.0 далее как у вас. И уже когда я ввел в командную строку "C:\Server\bin\mysql-8.0\bin\mysqld --initialize-insecure --user=root" он выдает это 191204  1:58:41 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disable
    d
    191204  1:58:41 [Note] C:\Server\bin\mysql-8.0\bin\mysqld.exe (mysqld 5.5.62) starting as process 264 …  Помогите разобраться.

    1. Приветствую! В вашем случае ошибка вызвана тем, что версия MySQL просто нереально старая и её нужно устанавливать другими командами.

      Скачайте хотя бы MySQL 5.7.* - там тоже есть 32-битный вариант.

      О том, как установить MySQL 5.7.* смотрите эту статью из веб-архива: https://web.archive.org/web/20170109232308/https://hackware.ru/?p=21

      Другие варианты получить актуальную версию MySQL на 32-битных системах:

       

       

  2. Доброго времени суток!

    С чем может быть связана данная ошибка. Сделал как на картинке.

    c:\Server\bin\Apache24\bin\httpd.exe -k restart
    httpd.exe: Syntax error on line 540 of C:/Server/bin/Apache24/conf/httpd.conf: C
    annot load C:/Server/bin/PHP/php7apache2_4.dll into server: \xcd\xe5 \xed\xe0\xe
    9\xe4\xe5\xed\xe0 \xf3\xea\xe0\xe7\xe0\xed\xed\xe0\xff \xef\xf0\xee\xf6\xe5\xe4\
    xf3\xf0\xe0.
    
    1. Приветствую! В этом сообщении сказано, что в строке 540 файла C:/Server/bin/Apache24/conf/httpd.conf имеется синтаксическая ошибка. Что у вас записано в этой строке?

      Сообщение

      Cannot load C:/Server/bin/PHP/php7apache2_4.dll into server

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

      Сообщение

      \xcd\xe5 \xed\xe0\xe9\xe4\xe5\xed\xe0 \xf3\xea\xe0\xe7\xe0\xed\xed\xe0\xff \xef\xf0\xee\xf6\xe5\xe4\xf3\xf0\xe0

      означает:

      Не найдена указанная процедура

      Видимо, это результат описанных выше ошибок, либо вы не установили Visual C++ Redistributable for Visual Studio.

  3. Обязательно добавьте, чтобы в my.ini нужно было добавить skip-grant-tables

    без этого служба mysql не запускалась. убил 2 дня, чтобы найти это решение

    1. С указанными в статье настройками тоже работает — проверил несколько дней назад с последней версией Windows и последней версией MySQL. Если хотите, уточните, какая у вас версия MySQL и какие другие настройки — возможно, у вас какие-то особые обстоятельства, из-за которых понадобилась настройка.

      Настройка skip-grant-tables может понадобиться только для смены пароля, поскольку разрешает вход без пароля. Соответственно, она оказывает влияние на безопасность и не должна постоянно присутствовать в конфигурационном файле.

      1. Apache/2.4.41 (Win64)

        PHP/7.2.28

        5.6.47 - MySQL

        Без той команды, к сожалению было это:

        Служба "MySQL" запускается..

        Не удалось запустить службу "MySQL".

         

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

         

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

         

        Процесс был неожиданно завершен.

         

         

        Смотрел логи, там система ругается на отсутствие системных таблиц:

        Table 'mysql.plugin' doesn't exist

        Please run mysql_upgrade to create it. Но mysql_upgrade завершается безуспешно и ничего не менялось в проблеме.

        В итоге помогло только добавление skip-grant-tables в результате чего БД вроде бы как заработала. Правда с кодировками сейчас мучаюсь)) БД в utf-8, php в utf-8, html в utf-8, а выводятся из БД знаки вопросов(

          1. Может быть кому-то пригодися: проблему с кодировкой решил путём установки кодировки для MySQL в файле my.ini, итоговое содержимое которого у меня следующее:

            [client]
            default-character-set = utf8
            [mysql]
            default-character-set=utf8
            [mysqld]
            sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
            datadir="c:/Server/data/DB/data/"
            default_authentication_plugin=mysql_native_password
            skip-grant-tables
            character-set-server = utf8
            collation-server = utf8_general_ci
            init_connect='SET collation_connection = utf8_general_ci'

            После этого в командной строке нужно перезагрузить mysql:

             net stop mysql

             net start mysql

             

  4. При попытке запустить строчки:
    C:\Server\bin\mysql-8.0\bin\mysqld --initialize-insecure --user=root и т.д.

    Выскакивает ошибка: Не удается продолжит выполнение кода, поскольку система не обнаружила VCRUNTIME140_1.dll. Для устранение этой проблемы попробуйте переустановить программу.

    1. Для работы всех компонентов веб-сервера необходим файл «Visual C++ Redistributable for Visual Studio 2015-2019» - это официальный файл от Microsoft. Чтобы его скачать перейдите по ссылке. После скачивания, запустите этот файл и выполните установку

      (цитата из данной инструкции).

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

    При установке mysql выдает такую ошибку

    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
    PS C:\Windows\system32> net start mysql
    Неправильное имя службы.

    Для вызова дополнительной справки наберите NET HELPMSG 2185.

  6. Здравствуйте! После запуска mysql в папке data ничего не генерируется. Соответственно, при попытке проверить phpmyadmin пишет "расширение mysql не найдено…"

      1. После выполнения команд :

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

        C:\Server\bin\mysql-8.0\bin\mysqld --install

        net start mysql

         

        база данных в C:\Server\data\DB\data\  не создаётся.

         

        1. Какие сообщения выводятся на экран? 99% что не создали файл my.ini или неправильно скопировали в него настройки или назвали его my.ini.txt.

          1. в консоли пишет, что mysql успешно запущен, но тем не менее, ничего в C:\Server\data\DB\data\ не меняется. И нет, создал my.ini и скопировал:

            [mysqld]
            sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
            datadir="c:/Server/data/DB/data/"
            default_authentication_plugin=mysql_native_password

            1. А если так запустить:

              C:\Server\bin\mysql-8.0\bin\mysqld --initialize-insecure --user=root --datadir=C:\Server\data\DB\data\

              Если файлы в C:\Server\data\DB\data\ создадутся, значит всё-таки что-то не так с my.ini.

              Ещё напишите, что выводят команды

              dir C:\Server\bin\mysql-8.0\my.ini
              C:\Server\bin\mysql-8.0\bin\mysqld --print-defaults

              Лучше копировать-вставить или делать скриншоты, а не передавать своими словами.

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

                1 команда выводит:

                dir : Не удается найти путь "C:\Server\bin\mysql-8.0\my.ini", так как он не существует.
                строка:1 знак:1
                + dir C:\Server\bin\mysql-8.0\my.ini
                + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    + CategoryInfo          : ObjectNotFound: (C:\Server\bin\mysql-8.0\my.ini:String) [Get-ChildItem], ItemNotFoundExc
                   eption
                    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

                2 команда выводит:

                C:\Server\bin\mysql-8.0\bin\mysqld.exe would have been started with the following arguments:

                Спасибо большое. А то уже часа 2 сижу, ничего не понимаю)

            2. Вас не смущает строка "dir : Не удается найти путь "C:\Server\bin\mysql-8.0\my.ini", так как он не существует.". Если вас не смущает эта строка, то, думаю, я не смогу вам больше помочь. Кстати, файлы-то создались, но если оставить как есть и не найти причину проблемы (подсказка - причина проблемы в том, что "dir : Не удается найти путь "C:\Server\bin\mysql-8.0\my.ini", так как он не существует." Так вот, если не исправить причину проблемы, то эти созданные файлы всё равно не будут использоваться… Но если вам норм, пусть остаётся так…

  7. Просто поблагодарил за хоть какое-то продвижение. Издеваться было не обязательно. Я и так сижу, смотрю, что может быть не так с этим my.ini, и ничего не понимаю.

  8. Проблема была все же в расширении. Не сразу догадался его убрать. Только теперь после net start mysql пишет

    Не удалось запустить службу "MySQL".

    Служба не сообщает об ошибке.

    1. Я там не издевался — но мне тоже тяжело отвечать на одни и те же вопросы, и причину я вам сразу назвал.

      Теперь попробуйте так, после этого всё должно заработать:

      net stop mysql
      c:\Server\bin\mysql-8.0\bin\mysqld --remove
      C:\Server\bin\mysql-8.0\bin\mysqld --install
      net start mysql
      
  9. Здравствуйте! Все делала точно по инструкции, после того как зашла на сайт http://localhost/phpmyadmin/ появилась ошибка "Расширение mysqli не найдено. Пожалуйста, проверьте ваши настройки PHP. Смотрите [a@doc/html/faq.html#faqmysql@documentation]our documentation для дополнительной информации."
    Как устранить данную ошибку? Спасибо

      1. Посмотрела, проверила, единственное, что у меня отличалось, это то, что я не переименовала наименование файла. Теперь у меня все правильно "php.ini", но ошибка так и не исчезла. 

        1. Вы перезапустили веб-сервер? Если не знаете как это сделать, перезагрузите компьютер.

    1. Простите, вы шутите? Я имел в виду, в браузере откройте ссылку http://localhost/i.php. Вы точно делаете по этой статье? Там же упоминается этот файл и как проверить работу PHP.

      1. Добрый день!

        Аналогичная ошибка, сначала не было ничего в Loaded Configuration File, исправил опечатку - появилось (см. скрин), но по прежнему :

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

  10. Возможно, кому-то поможет:

    Сделал опечатку в параметре 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

    Все сработало нормально, но сервер отказывался запускаться.

    Нашел и исправил опечатку, выполнил команду C:\Server\bin\mysql-8.0\bin\mysqld --remove , затем повторный запуск команды C:\Server\bin\mysql-8.0\bin\mysqld --initialize-insecure --user=root . Но оказалось, что при этом не удаляются и не переписываются  ранее созданные служебные файлы из каталога C:\Server\data\DB\data. Поэтому сервер все равно не желал запускаться.

    Нашел подсказку в файле C:\Server\data\DB\data\notebook-a.err, который пришлось внимательно просмотреть предварительно. Там в одной из записей сказано: "удалите служебные файлы вручную".

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

  11. здравствуйте. все делала по инструкции дошла практически до конца. 

    "Настройка завершена, но нужно ещё выполнить инициализацию и установку, для этого открываем командную строку от имени администратора и последовательно вводим туда:

    1

    2

    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

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

    все вот это набираю и появляется:

    PS C:\WINDOWS\system32> C:\Server\bin\mysql-8.0\bin\mysqld -install
    Service successfully installed.
    PS C:\WINDOWS\system32> net start mysql
    Служба "MySQL" запускается..
    Служба "MySQL" успешно запущена.
     

    C:\Server\data\DB\data\ , но здесь не появляются никакие файлы

  12. Все советы хороши, а мпленькие помарки устранбтся через управление компьютером - службы. Для полного контроля apache и mysql лучше запускать вручную, и можно без командной строки.

    Спасибо

  13. Добрый день. Установлены Апач пхп и mysql.

    При установке composer выходит сообщение

    The PHP exe file you specified did not run correctly:
    C:\Server\bin\PHP\php.exe
    
    The php.ini used by your command-line PHP is: C:\Server\bin\PHP\php.ini
    
    A setting in your php.ini could be causing the problem: Either the 'extension_dir' value is incorrect or a dll does not exist.
    
    Program Output:
    PHP Warning:  PHP Startup: Unable to load dynamic library 'interbase' (tried: C:\Server\bin\PHP\ext\interbase (Не найден указанный модуль.), C:\Server\bin\PHP\ext\php_interbase.dll (Не найден указанный модуль.)) in Unknown on line 0

    Не подскажете в чем может быть проблемы.  Пхп нормально работает

    1. Ошибка в отсутствии модуля interbase (файл php_interbase.dll). Это расширение было перемещено в репозиторий PECL и больше не поставляется с PHP 7.4.0. То есть самый простой способ получить interbase — это установить PHP 7.3.* и больше не обновляться на PHP 7.4.* и выше.

      Этому расширению требуются следующие файлы в переменной PATH: fbclient.dll, gds32.dll. Если сервер Firebird/InterBase установлен на той же машине, где запускается PHP, то эти DLL уже должны присутствовать и путь к fbclient.dll, gds32.dll (gds32.dll создаётся установщиком для старых приложений) уже будет прописан в PATH.

      Для установки с PHP 7.4.*, можно обратиться к этим ссылкам:

      Если что, в Linux всё это можно получить несколькими командами, т. к. Присутствует в стандартных репозоиториях:

  14. Все делал по инструкции. При проверке работы PHP не открывается таблица. Только код.

    Сервер перезапускал. 

    1. Вы такой же комментарий оставили 2 недели назад на другом моём сайте. Неужели 2 недели этим мучаетесь? Я только что проверил с последними версиями программ — всё прекрасно работает.

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

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

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

      • 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
      • c:\Server\bin\Apache24\logs\access.log
      • c:\Server\bin\Apache24\logs\error.log

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

  15. 24.09.2020 инструкция верифицирована с последними версиями программ — всё работает!

  16. потомки, привет из 2020 (надеюсь COVID19 все пережили)
    при установки пхп8 нужно использовать не 

    LoadModule php7_module "C:/Server/bin/PHP/php7apache2_4.dll"

    LoadModule php_module "C:/Server/bin/php/php8apache2_4.dll"

    1. Приветствую! Спасибо за полезнейший комментарий. Прямо сейчас обновлю все инструкции.

  17. Здравствуйте.

    Локалхост не запускается. В командной строке сообщение , что инсталяция не будет из-за ошибки.

    1. Приветствую! Командную строку (или PowerShell) нужно открывать как администратор — ошибка исчезнет. В статье есть скриншот, посмотрите, какой именно пункт нужно выбирать.

    1. Служба уже установлена и запущена - видимо, вы делаете по второму разу.

  18. Подскажите, все сделала по инструкции, но все равно какая то ошибка в Apace. Сервер не коннектится с базой MYSQL

     

    1. На скриншоте показано, что веб-сервер не может запуститься из-за того, что какая-то программа уже прослушивает 80-й порт (про базы данных там ничего не сказано). Судя по всему, на этом компьютере уже установлен веб-сервер. Попробуйте открыть http://localhost/ в веб-браузере.

        1. Приветствую! Непонятно что вы имеете в виду под словами «база данных не коннектится»? Какие признаки этого? Что именно не работает и какие ошибки?

          То есть напишите:

          • что именно делаете
          • какого результата ожидаете
          • какой результат получаете
  19. Добрый день. Почему у меня на последнем действии вводим root. Поле пароля оставляем пустым, появляется ошибка? 

    1. В левой части этого скриншота должен быть перечень баз данных. Даже если вы не создавали ни одной БД, для нормальной работы MySQL пара баз данных создаётся автоматически. Но их нет. Поэтому и ошибка - MySQL не может нормально работать без нужных ей БД.

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

      Можно попробовать сделать очистку и провести инициализацию БД ещё раз. Как это сделать, написано здесь.

  20. Подскажите пожалуйста, после установки myphpadmin, сделал всё как требовалось, но после перехода по ссылке http://localhost/phpmyadmin/, выдаёт вот это:

    Composer detected issues in your platform: Your Composer dependencies require the following PHP extensions to be installed: mysqli, openssl

  21. В гайде по установке mysqladmin опечатка в строке
    $cfg['Servers'][$i]['extension'] = 'mysqli';

    должно быть 

    $cfg['Servers'][$i]['extension'] = 'mysql';
    Если это не исправить работать не будет.

    1. В официальной документации сказано:

      $cfg['Servers'][$i]['extension']

      Тип: строка

      Значение по умолчанию: 'mysqli'

      Указывает используемое расширение PHP MySQL (mysql или mysqli).

      Рекомендуется использовать mysqli во всех установках.

      Настройка устарела и начиная с версии 4.2.0 удалена вовсе. Расширение mysql будет использоваться только тогда, когда расширение mysqli недоступно. Начиная с 5.0.0, можно использовать только расширение mysqli.

      В PHP уже много лет доступно только расширение mysqli.

  22. Привет. Недавно приобрёл ноут (Lenovo 50-45), поставил новую сборку Apache 2.4, стала нормально, тест прошла. А капчу почему-то не видит - не может найти шрифт (ttf). На ХР-ке проблем не было.

    Подскажите - в чём дело?

  23. Привет. Приобрёл ноутбук (Lenovo 50-45), поставил сборку (отдельная благодарность) Apach 2.4. Тест сборка прошла. Поставил капчу (шрифт georgia.ttf в той-же папке) - получил: imagettftext(): Could not find/open font…На ХР-ке такого не было. Подскажите - что не так?

    1. Приветствую! Вам нужно обратиться с этой ошибкой к автору приложения/скрипта.

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

  24. """"Это означает, что веб-сервер работает. Чтобы увидеть там файлы, добавьте их в каталог c:\Server\data\htdocs\""""

     а ничего что папка htdocs после указанных выше манипуляций у нас находится  c:/Server/bin/Apache24   ???

    статья от лузера копипаста. просто пипец.

     

    1. В структуре директорий Apache имеется пустая папка htdocs. Если она вас раздражает, можете её удалить — никакой функциональной роли она не несёт.

      Мы создали собственную папку htdocs и прописали её в настройках. Поэтому функциональной является именно папка по пути c:\Server\data\htdocs\.

      Это мы делаем для того, чтобы не смешивать файлы программ и файлы с данными. Поскольку при обновлении Apache можно просто целиком заменить папку c:\Server\bin\Apache24 не беспокоясь об удалении каких-либо данных.

  25. Добрый день. Спасибо огромное за прекрасное описание по настройке.

    сервер запускаеется но при попытке открыть сайт выдает ошибки

    Warning: Undefined array key "session_key" in C:\Server\data\htdocs\ppls\index.php on line 3

    Fatal error: 'break' not in the 'loop' or 'switch' context in C:\Server\data\htdocs\ppls\includes\adodb\adodb-time.inc.php on line 1009

    подскажите пожалуйста решение очень нужно

    СПАСИБО

    1. Приветствую! Ключевое сообщение в этой ошибке:

      Fatal error: 'break' not in the 'loop' or 'switch' context in

      Означает:

      фатальная ошибка, 'break' находится не в контексте 'loop' или 'switch'

      Дело в том, что в PHP 5.x.x, выражение «break» вне выражений «for», «foreach», «while» или «switch» НЕ вызывает сообщение об ошибке с точки зрения синтаксиса это нормально.

      А в PHP 7.0 и выше, выражение «break» больше не разрешено вне «for», «foreach», «while» или «switch» и вызывает фатальную ошибку.

      Что можно сделать:

      1. Откатиться на версию PHP 5.x.x
      2. Скачать более актуальную версию запускаемого скрипта или обратиться с этой ошибкой к автору скрипта
  26. Хорошее и понятное описание. Все работает! Для удобства что бы не вводить каждый раз команы можно создать bat файлы с командами старт, стоп и рестарт.

  27. Приветствую! По отдельности все работает, php и БД, но вместе, ни как. В чем может быть проблема?

    1. С таким описанием проблемы вам никто не поможет. Напишите, какие именно ошибки, как проявляется, что не работает. Может вы используйте функцию mysql_connect(), которая устарела начиная с версии PHP 5.5.0 и будет удалена в будущем (в этом случае используйте расширение MySQLi, соответственно альтернатива для данной функции это mysqli_connect()).

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

      Если phpMyAmin работает, значит связка MySQL+PHP в порядке, а причина вашей проблемы в чём-то другом.

      1. Да согласен описал не корректно. Дело в том что не могу вызвать записи из БД через php везде используется mysqli_connect(). Через denwer все работало. Может в php.ini что то изменить или включить? При попытке вызвать какую то запись выводит пустой экран даже ошибки нет.

        1. Видимо, отключён вывод ошибок. Посмотрите содержимое файла C:\Server\bin\Apache24\logs\error.log

  28. Добрый день! Подскажите, как сделать чтобы вместо localhost вводить в адресную строку имя, и будет появляться страница HTML из папки HTDOCS?

    1. Приветствую!

      1. Доступ к локальному сайту на одном компьютере

      1. Придумайте имя сайта, например, site.loc

      2. Откройте файл C:\Windows\System32\drivers\etc\hosts и добавьте туда запись вида:

      127.0.0.1	ИМЯ_САЙТА

      Например:

      127.0.0.1	site.loc

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

      Сразу после этого ваш сервер будет доступен по адресу http://site.loc

      Также рекомендуется ознакомиться с разделом «Подключение виртуальных хостов Apache в Windows» из статьи «Настройка Apache в Windows».

      2. Доступ к локальному сайту с других компьютеров

      На каждом компьютере, с которых вы хотите чтобы открывался сайт по имени, нужно проделать операцию, показанному в предыдущем пункте, но вместо 127.0.0.1 нужно указывать IP адрес сервера в локальной сети (например, 192.168.1.33), либо его белый IP адрес, если требуется вход с компьютеров из Глобальной сети. Но в последнем случае проще купить доменное имя и хостинг.

      Рекомендуется для ознакомления: Как веб-сервер на своём компьютере сделать доступным для других

  29. Добрый день. Большое спасибо а понятную и подробную инструкцию. Все поставил и запустил согласно Вашим инструкциям. Однако PhpMyAdmin выдает следующие ошибки:

    1.Deprecation Notice in .\vendor\twig\twig\src\Loader\FilesystemLoader.php#40
     realpath(): Passing null to parameter #1 ($path) of type string is deprecated

    2.  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

    3.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

    4.Deprecation Notice in .\libraries\classes\Util.php#796
     Function strftime() is deprecated

    5.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

    6.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

    Насколько эти ошибки критичны? Что нужно сделать, чтобы их исправить? Или просто проигнорировать? С уважением, Олег

    1. Ошибка один в один, где-то говорят, что надо phpmyadmin обновить, но установлена последняя версия

    1. Судя по скриншоту, вы в эту папку вместо phpMyAdmin скопировали бинарные файлы PHP.

      1. Судя по скриншоту, вы в эту папку вместо phpMyAdmin скопировали бинарные файлы PHP

        спасибо так и было phpmyadmin запустился

  30. в cmd запускаю команду и такая ошибка

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

    Для вызова дополнительной справки наберите NET HELPMSG 3523.

    ошибка источник PHP-8.1.1

    php[13708]

     

     

     

    PHP Warning: PHP Startup: Unable to load dynamic library 'PDO_OCI' (tried: C:\Server\bin\PHP\ext\PDO_OCI (Не найден указанный модуль), C:\Server\bin\PHP\ext\php_PDO_OCI.dll (Не найден указанный модуль)) (C:\Server\bin\Apache24\bin\httpd.exe -d C:/Server/bin/Apache24)

    1. 🙄 Если вы скопировали PHP в папку с phpMyAdmin, может вы phpMyAdmin скопировали в PHP? Ну или что-то ещё — просто повторите инструкцию внимательно, без ошибок.

       

      1. здравствуйте, переустанавливаю сервер по новому иду поэтапно после апач ставлю mysql ошибка все таже ---

         C:\Windows\system32> net start mysql

        Не удалось запустить службу "MySQL".

        Служба не сообщает об ошибке.

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

        1. ошибка все та же

          Это неправда.

          Ваша ошибка «NET HELPMSG 3534», а в предыдущий раз была «NET HELPMSG 3523». То есть вы опять что-то сделали не так, но в этот раз что-то другое. Это, к стати, к вопросу о внимательности, которая необходима для данной инструкции.

          Журнал ошибок MySQL находится в файле в C:\Server\data\DB\data\*.err (конкретное имя файла зависит от имени компьютера). Посмотрите, что там в этом файле.

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

          1. в этой ситуации решил проблему она заключалось в том, была установленна инсталятором mysql на C диск в раздел programas file, при удалении базы данных  проблема решилась. Спасибо

        2. Поскольку вся «установка» MySQL заключается в распаковке архива, настройке файла my.ini, инициализации БД и запуске службы, то если предположить, что архив вы распаковали правильно и в файле my.ini нет ошибок, то можно ограничиться повторной инициализацией и переустановкой службы MySQL вместо выполнения инструкции заново. Как это сделать смотрите в разделе «Исправление MySQL после неудачной инициализации».

          Если опять что-то не получится, то сделайте скриншоты вывода команд с mysqld (инициализация и установка).

  31. здравствуйте

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

    все ошибки и проблемы на скрине

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

      C:\Server\bin\mysql-8.0\bin\mysqld --initialize-insecure --user=root
      C:\Server\bin\mysql-8.0\bin\mysqld --install
      net start mysql

      ?

      Что у вас в файле C:\Server\data\DB\data\*.err?

      Информация на скриншотах бесполезна. Разве что, можно подумать, что вы ещё и PHP неправильно настроили.

      1. А PHP вы 100% не так настроили — в инструкции указано, что модуль pdo_oci не должен быть активирован, а вы его активировали. Коротко говоря — все ошибки от того, что вы просто не следуете данной инструкции. Если вы хотите делать по-своему, тогда с вашими ошибками я помочь не могу.

          1. Я же вам вроде довольно ясно написал, что дело в расширении pdo_oci. Нажмите на этой странице CTRL+f и найдите все места где встрачается pdo_oci. Увидите раздел по настройке PHP — там написано, какие строки надо раскомментировать чтобы работало. В вашем файле php.ini строки не только раскомментированы неправильно, но и ещё названия расширений совпадают не полностью, к тому же этот фрагмент написан заглавными буквами, как будто вы этот фрагмент скопировали из какой-то другой инструкции.

            Устал повторять — просто сделайте как в инструкции на свежую голову.

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

  32. Спасибо!

    но ставить это дело под виндой которая сама работает через домен не советую…

  33. Вход без пароля запрещен при конфигурации (смотрите AllowNoPassword)

    Попробовала сделать очистку и провести инициализацию БД. Не помогло. В чем может быть ошибка? 

  34. Добрый день. Подскажите пожалуйста, при установке только Apache, как настроить его таким образом, чтобы при вводе в адресной строке браузера например "http://cats&quot; открывалась сверстаная мной страничка "cats.html" (а также в каком каталоге Apache она должна находится?)???.

    Спасибо!

    1. Приветствую! Добавьте в файл C:\Windows\System32\drivers\etc\hosts следующую строку:

      127.0.0.1 	cats

      Теперь если открыть в веб-браузере ссылку http://cats, то откроется веб-сервер, а именно содержимое папки c:\Server\data\htdocs\ (туда и поместите вашу веб-страницу).

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

    1. Приветствую, для установки веб-сервера вы использовали эту инструкцию? Как бы там ни было, смотрите здесь.

  36. Хочу выразить автору статьи свою благодарность. Все получилось с первого раза. Описано грамотно и подробно. 

  37. Установил APACHHE так как OPenserver не видел сайт (папка с наполнением сайта в нужном месте). после рекомендуемой установки стало еще хуже, потому что теперь Openserver вообще не запускается так как порт 80 захвачен прогой от APACHHE…

Добавить комментарий для Дмитрий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

wp-puzzle.com logo