As Apache Module
To configure Apache to install PHP as a module, use an ASCII text editor to open the Apache configuration file, «httpd.conf». If you use Apache 1.x, the file is found in «c:\Program Files\Apache Group\Apache\conf\». Apache 2.0.x users can find it in «C:\Program Files\Apache Group\Apache2\conf\» while Apache 2.2.x users can find it in «C:\Program Files\Apache Software Foundation\Apache2.2\conf\». Basically, it’s in the «conf» folder of wherever you installed Apache.
Search for the section of the file that has a series of «LoadModule» statements. Statements prefixed by the hash «#» sign are regarded as having been commented out.
If you are using Apache 1.x, add the following line after all the LoadModule statements:
LoadModule php5_module «c:/php/php5apache.dll»
If you are using Apache 2.0.x, add the following line after all the LoadModule statements:
LoadModule php5_module «c:/php/php5apache2.dll»
If you are using Apache 2.2.x, add the following line instead:
LoadModule php5_module «c:/php/php5apache2_2.dll»
Note carefully the use of the forward slash character («/») instead of the traditional Windows backslash («\»). This is not a typographical error.
If you are using Apache 1.x, search for the series of «AddModule» statements, and add the following line after all of them. You do not have to do this in any of the Apache 2 series of web servers.
AddModule mod_php5.c
Next, search for «AddType» in the file, and add the following line after the last «AddType» statement. Do this no matter which version of Apache you are using. For Apache 2.2.x, you can find the «AddType» lines in the <IfModule mime_module> section. Add the line just before the closing </IfModule> for that section.
AddType application/x-httpd-php .php
If you need to support other file types, like «.phtml», simply add them to the list, like this:
AddType application/x-httpd-php .phtml
Finally, for those using one of the Apache 2 versions, you will need to indicate the location of your PHP ini file. Add the following line to the end of your httpd.conf file.
PHPIniDir «c:/php»
Of course, if you used a different directory for your PHP installation, you will need to change «c:/php» to that path. Remember to use the forward slash («/») here again.
If you are using Apache 1, you will have already placed your php.ini file in either the Windows directory or somewhere in your PATH, so PHP should be able to find it by itself. You can, of course, do the same if you are using Apache 2, but I find modifying the Apache configuration file a better solution than cluttering your c:\windows directory or your PATH variable.
Running PHP 5 as a CGI Binary
If you have configured PHP 5 to run as an Apache module, skip forward to the next section. This section is for those who want to configure PHP to run as a CGI binary.
The procedure is the same whether you are using the Apache 1.x series or one of the 2.x series.
Search for the portion of your Apache configuration file which has the ScriptAlias section. Add the line from the box below immediately after the ScriptAlias line for «cgi-bin». If you use Apache 2.2.x, make sure that the line goes before the closing </IfModule> for that <IfModule alias_module> section.
Note that if you installed PHP elsewhere, such as «c:\Program Files\php\», you should substitute the appropriate path in place of «c:/php/» (for example, «c:/Program Files/php/»). Observe carefully that I used forward slashes («/») instead of the usual Windows backslashes («\») below. You will need to do the same.
ScriptAlias /php/ «c:/php/»
Apache needs to be configured for the PHP MIME type. Search for the «AddType» comment block explaining its use, and add the AddType line in the box below after it. For Apache 2.2.x, you can find the AddType lines in the <IfModule mime_module> section. Add the following line just before the closing </IfModule> for that section.
AddType application/x-httpd-php .php
As in the case of running PHP as an Apache module, you can add whatever extensions you want Apache to recognize as PHP scripts, such as:
AddType application/x-httpd-php .phtml
Next, you will need to tell the server to execute the PHP executable each time it encounters a PHP script. Add the following somewhere in the file, such as after the comment block explaining «Action». If you use Apache 2.2.x, you can simply add it immediately after your «AddType» statement above; there’s no «Action» comment block in Apache 2.2.x.
Action application/x-httpd-php «/php/php-cgi.exe»
Note: the «/php/» portion will be recognized as a ScriptAlias, a sort of macro which will be expanded to «c:/php/» (or «c:/Program Files/php/» if you installed PHP there) by Apache. In other words, don’t put «c:/php/php.exe» or «c:/Program Files/php/php.exe» in that directive, put «/php/php-cgi.exe».
If you are using Apache 2.2.x, look for the following section in the httpd.conf file:
<Directory «C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin»>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
Add the following lines immediately after the section you just found.
<Directory «C:/php»>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
Configuring the Default Index Page
This section applies to all users, whether you are using PHP as a module or as a CGI binary.
If you create a file index.php, and want Apache to load it as the directory index page for your website, you will have to add another line to the «httpd.conf» file. To do this, look for the line in the file that begins with «DirectoryIndex» and adds «index.php» to the list of files on that line. For example, if the line used to be:
DirectoryIndex index.html
change it to:
DirectoryIndex index.php index.html
The next time you access your web server with just a directory name, like «localhost» or «localhost/directory/», Apache will send whatever your index.php script outputs, or if index.php is not available, the contents of index.html.
Restart the Apache Web Server
Restart your Apache server. This is needed because Apache needs to read the new configuration directives for PHP that you have placed into the httpd.conf file. The Apache 2.2 server can be restarted by double clicking the Apache Service Monitor system tray icon, and when the window appears, clicking the «Restart» button.
Previous: Install PHP on IIS in Windows 7
Next: Install WAMP
В статье описывается установка Apache 2.4 + PHP 5.6 + MySQL 5.6 на операционную систему Windows 7 / 8 / 8.1 / 10
Данная инструкция будет полезна начинающим WEB-разработчикам, которые собираются установить на своем ПК с ОС Windows WEB-сервер Apache с интерпретатором PHP последних версий. Конечно же, намного проще установить сборку, наподобие Denwer или прибегнуть к использованию инсталляторов и не париться по поводу настроек. Однако каждый WEB-разработчик обязан понимать процесс работы WEB-сервера, процесс его установки и настройки.
Если Вы хотите установить PHP 7, то после прочтения этой статьи обратитесь к этой статье.
Если в процессе сборки сервера по этой инструкции Вы столкнулись с проблемами и все еще считаете себя WEB-разработчиком, то будет правильным шагом разобраться в возникших проблемах, а не писать в комментарии что инструкция говно. Инструкция рабочая. Проверено временем и сотнями инсталляций. Будьте внимательней при выполнении простых шагов. Выполнение шагов вручную и разбор ситуаций, если не заработало, добавит Вам skill как разработчику. Если Вы не WEB-разработчик и не планируете им быть, то подыщите простой способ установки в интернете — данная инструкция не для Вас.
Обратите внимание, что под Windows XP данные версии VC11 запустить будет невозможно (или крайне затруднительно).
Подготовительные работы
#
Убедитесь, что у вас именно Windows 7 или новее. Если у Вас Windows XP, данная инструкция не поможет Вам, так как описанная здесь версия Apache не работает под Windows XP.
Удалите все WEB-серверы, которые устанавливали до этого, зайдите в службы и убедитесь, что там нет служб Apache или IIS. Если у вас уже установлен какой-либо веб-сервер, второй параллельно скорее всего не заработает вовсе.
Если у Вас есть Скайп, обязательно отключите в настройках использование 80 порта. В конечном итоге Вы должны убедиться, что ни одна служба не использует 80й порт.
Для работы очень желательно иметь файловый менеджер, позволяющий создавать файлы с любыми расширениями, либо, что еще лучше, редактор кода, наподобие Sublime Text или Notepad++ или полноценную IDE.
Структура папок может быть различной, однако данная инструкция написана под определенную структуру и, если ей следовать, всё гарантированно заработает.
Перед тем как начать, создайте на диске D папку USR, внутри которой создайте 5 подпапкок: apache, php, tmp, www, log. Именно так. Без указания номеров версий.
В каталоге www создаем индексные файлы (при помощи файлового менеджера или редактора кода), которые будут нужны для проверки того, что все работает:
- index.html с содержимым:
It works!
- index.php с содержимым:
<?php phpinfo(); ?>
В системную переменную PATH добавляем:
;D:\USR\apache;D:\USR\apache\bin;D:\USR\php;
Замечания!
#
Приведенные в примерах конфигурационных файлов номера строк могут отличаться для других версий apache и php.
Все команды, включая редактирование файлов, должны осуществляться от имени Администратора.
Установка Apache 2.4
#
Хотя для простой разработки на PHP и нет необходимости в отдельном WEB-сервере (в PHP встроен собственный WEB-сервер, которого почти всегда достаточно для разработки одного проекта), все же рекомендуется произвести установку и настройку WEB-сервера Apache, хотя бы потому, что программист обязан знать эти тонкости. В конечном итоге придется работать с WEB-сервером и придется разбираться с его конфигурацией. Так что приступим.
- Загружаем Apache 2.4 binaries VC11 под свою систему по ссылке http://www.apachelounge.com/download/VC11/ Скорее всего у Вас 64 разрядная ОС, поэтому Вам понадобится файл с именем, наподобие httpd-2.4.xx-win64-VC11.zip
- Если нужны какие-то дополнительные модули, их можно загрузить там же (для базовой установки нет необходимости)
- Разархивируем содержимое папки Apache24 из скаченного архива в
D:\USR\apache
. Обратите внимание, что вD:\USR\apache
нужно положить не папку Apache24 из архива, а ее содержимое. Инсталлировать ничего не требуется - В файле D:\USR\apache\conf\httpd.conf изменяем значение
ServerRoot
на"d:/USR/apache"
(строка 37) и значениеDocumentRoot
(иDirecroty
) на"d:/USR/www"
(строки 242 и 243). Так же следует раскомментировать строку 218 и изменить ее на:ServerName localhost:80
- Изменяем параметры хранения логов в том же файле (находим параметры и изменяем):
ErrorLog "D:/USR/log/apache-error.log" CustomLog "D:/USR/log/apache-access.log" common
- Устанавливаем сервис Apache (от имени Администратора). Открываем командную строку от имени Администратора и вставляем туда следующую строку:
D:\USR\apache\bin\httpd.exe -k install
- Следим за сообщениями об ошибках во время установки сервиса. Если все сделано верно, никаких ошибок быть не должно. Если у вас после выполнения строки не появилась снова командная строка, то вы что-то сделали неправильно. Просто воспользуйтесь функциями скопировать и вставить, чтобы не допускать ошибок при перепечатке.
- Создаем на рабочем столе ярлык для
D:\USR\apache\bin\ApacheMonitor.exe
и/или помещаем его в автозагрузку (для открытия окна автозагрузки в WIN8 необходимо нажать WIN+R, затем ввестиshell:Startup
и нажать ОК) - Запускаем «ApacheMonitor». В системном трее появится ярлык. Нажимаем на него левой кнопкой, выбираем Apache24 -> Start
- В браузере заходим на http://localhost/ — должны увидеть It works!
- Если не увидели такой надписи, разбираемся, что пошло не так (читаем логи, гуглим, пытаемся самостоятельно разобраться с проблемой, раз уж решили разбираться в тонкостях работы веб-сервера)
Установка PHP 5.6
#
- Загружаем последнюю версию VC11 x86 Thread Safe или VC11 x64 Thread Safe по ссылке http://windows.php.net/download/. Обратите внимание, что нужен именно VC11 и именно Thread Safe. Разрядность должна быть как у Apache. Файл, который Вам нужен, скорее всего будет называться наподобие: php-5.6.11-Win32-VC11-x86.zip или php-5.6.11-Win32-VC11-x64.zip
- Извлекаем содержимое архива в
D:\USR\php
. Как в случае с Apache, инсталлировать ничего не требуется - В файл D:\USR\apache\conf\httpd.conf добавляем строки:
LoadModule php5_module "d:/USR/php/php5apache2_4.dll" AddHandler application/x-httpd-php .php # Путь к файлу php.ini PHPIniDir "D:/USR/php"
- И изменяем значение
DirectoryIndex
наindex.html index.php
(строка 276) - Используя «ApacheMonitor» перезапускаем Apache (Apache24 -> Restart)
- Заходим браузером http://localhost/index.php и убеждаемся, что PHP работает.
- Делаем копию файла D:\USR\php\php.ini-development с именем D:\USR\php\php.ini
- Пользуясь поиском находим, раскомментируем и изменяем параметры:
extension_dir = "D:/USR/php/ext" sys_temp_dir = "D:/USR/tmp" extension=php_mysql.dll extension=php_mysqli.dll extension=php_openssl.dll date.timezone = Europe/Zaporozhye
- Выполняем в командной строке
php -m
чтобы просмотреть список подключенных модулей. - Перезапускаем Apache используя «ApacheMonitor»
Виртуальные хосты в Apache
#
- Если на компьютере производится отладка нескольких проектов, то могут понадобиться виртуальные хосты (сайты). На примере будем рассматривать два виртуальных хоста:
s1.localhost
иs2.localhost
. Для удобства будем создавать папки с такими же названиями, что совсем не обязательно в реальной системе. - Следует учесть, что при использовании виртуальных хостов, параметр
DocumentRoot
конфигурационного файла Apache более не имеет смысла. Основным хостом сервера (который будет доступен по адресу http://localhost/) теперь является первый виртуальный хост в конфигурационном файле виртуальных хостов! - Для начала необходимо добавить в файл
c:\Windows\System32\drivers\etc\hosts
строки:127.0.0.1 s1.localhost 127.0.0.1 s2.localhost
Делать это нужно от имени Администратора. Желательно после этого перезагрузиться, но на практике этого не требовалось. Если изменить файл не удается (права доступа), вы можете скопировать его на рабочий стол, изменить, а затем скопировать обратно.
- Создаем папки для виртуальных хостов
D:\USR\www\s1.localhost
иD:\USR\www\s2.localhost
, в которых будут располагаться файлы. В каждой из папок создаем файлindex.html
с содержимымS1
иS2
соответственно (для контроля того, что все работает как нужно) - Затем создаем папки для логов:
D:\USR\log\s1.localhost
иD:\USR\log\s2.localhost
— тут будут храниться логи каждого из сайтов. Вообще-то, логи можно хранить в одной папке, но я привык делать так — мне так более удобно. - Далее необходимо включить поддержку виртуальных хостов. В файле D:\USR\apache\conf\httpd.conf раскомментировать строку
Include conf/extra/httpd-vhosts.conf
- Далее редактируем файл d:\USR\apache\conf\extra\httpd-vhosts.conf — он должен выглядеть так (каждому виртуальному хосту свой блок
VirtualHost
):<VirtualHost *:80> ServerAdmin webmaster@s1.localhost DocumentRoot "D:/USR/www/s1.localhost" ServerName s1.localhost ServerAlias www.s1.localhost ErrorLog "D:/USR/log/s1.localhost/error.log" CustomLog "D:/USR/log/s1.localhost/access.log" common </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@s2.localhost DocumentRoot "D:/USR/www/s2.localhost" ServerName s2.localhost ServerAlias www.s2.localhost ErrorLog "D:/USR/log/s2.localhost/error.log" CustomLog "D:/USR/log/s2.localhost/access.log" common </VirtualHost>
- Первый виртуальный хост s1.localhost теперь будет основным хостом системы, т.к. его блок следует первым в конфигурационном файле, т.е. будет доступен при входе на http://localhost/
- Перезапускаем Apache используя ApacheMonitor и заходим по очереди на http://s1.localhost/ и http://s2.localhost/.
- Итак. Для добавления нового виртуального хоста будет достаточно: создать папку для файлов хоста в D:\USR\www, создать папку для логов хоста в D:\USR\log, прописать имя хоста в файле hosts, добавить блок
VirtualHost
в файл конфигурации виртуальных хостов.
Установка MySQL 5.6
#
- Загружаем MySQL Installer MSI (mysql-installer-community) по ссылке: http://dev.mysql.com/downloads/windows/installer/5.6.html
- Во время установки на этапе Choosing a Setup Type выбираем: Custom, затем удаляем из устанавливаемых продуктов всё (в правой колонке), за исключением самого MySQL сервера (автоматически будут добавлены необходимые обязательные модули). Проще удалить все и добавить только сервер — все необходимые компоненты при этом добавятся сами
- Запускаем установку, нажав на Execute в следующем окне
- После установки сервера нажимаем несколько раз Next и переходим к конфигурированию сервера
- Выбираем тип Development Machine, опции оставляем как есть и нажимаем Next
- Устанавливаем пароль основного пользователя root (обязательно) — здесь же можно добавить пользователей, но пока этого делать не нужно, нажимаем Next
- Указываем, нужно ли сделать так, чтобы сервер запускался автоматически со стартом Windows (у меня автозапуск выключен, т.к. локальный MySQL-сервер используется только для отладки в очень редких случаях), нажимаем Next
- апускаем конфигурирование кнопкой Execute. Всё должно пройти успешно, после чего нажимаем Next и затем Finish
- Установка сервера MySQL завершена. Поздравляем!
- Если вы оставили в настройках автозагрузку сервера, то более ничего делать не нужно. Сервер MySQL будет запускаться автоматически вместе со стартом операционной системы Windows. Иначе придется запускать сервер из окна Службы панели Управления компьютером Windows (или написать свой минискрипт для запуска и остановки службы). Я работаю на ноутбуке и постоянно запущенный сервер мне не нужен (расход ресурсов).
- Для работы с MySQL сервером есть множество полезных и удобных утилит. Я рекомендую использовать dbforge Studio for MySQL. При помощи этого инструмента можно создавать пользователей БД и назначать права доступа. Возможно, есть более удобные и быстрые инструменты. Из всех, что я использовал, этот наиболее функциональный, хоть и не особо быстрый.
Часто задаваемые вопросы (FAQ)
#
Q: В браузере отображается РНР-сценарий вместо результата.
A: Вы невнимательно читали статью и все таки скачали не ту версию РНР, которая требуется. Обращаю еще раз внимание — нужна именно Thread Safe версия РНР, разрядность которой должна совпадать с разрядностью Apache. Убедиться в том, что ошибка именно в этом можно по отсутствию файла d:/USR/php/php5apache2_4.dll. Почему-то это самая частая проблема, хотя в тексте на этом специально заострено внимание.
Q: При старте Apache ошибка: The requested operation has failed.
A: Apache VC11 не работает под Windows XP. Если у Вас Windows 7-10, то проверьте, чтобы порт 80 не был занят другими процессами, например каким нибудь другим WEB-сервером, который Вы устанавливали до этого. Проверьте, чтобы в приложении Skype было отключено использование 80 порта.
Q: При старте Apache ошибка об отсутствии библиотек типа VCRUNTIME140.dll и тому подобных, название которых содержит VC.
A: Установите пакет Visual C++ с сайта Microsoft по ссылке.
Q: Как установить PHPMyAdmin?
A: PHPMyAdmin — это такое же WEB-приложение, как и любое другое. Создайте для него виртуальный хост по инструкции из этой статьи, как для любого другого сайта, разархивируйте архив с PHPMyAdmin в созданную для хоста папку, перейдите в браузере на адрес этого виртуального хоста и следуйте инструкция по установке. За более подробной информацией обращайтесь на сайт PHPMyAdmin.
Web developers wants to run Apache and PHP on their machine for a convenient way for script testing. This will allow them to eliminate or decrease bugs before they put it in the cloud. This post will teach you how to install Apache, PHP5 and PostgreSQL.
NOTE: There is a software bundle called WAPP that automatically configures Apache, PHP and PostreSQL to work side-by-side but software bundles usually have disadvantages and sometimes will not give the users the full capabilities of the softwares involved.
How To Install PostgreSQL:
1. Visit PostreSQL’s download page and download the binary installer of the version you prefer to use. The latest is PostgreSQL v.9.0
2. After downloading, run the installer.
3. A wizard will guide you throughout the installation process. Let the fields have default values(recommended for beginners).
How To Install Apache:
1. Visit Apache.org and download the Win32 Binary Installer(MSI Installer) for any Apache version you want. The la version is Apache 2.2.x.
2. A wizard will guide you through the installation process. In the Server Information part, enter localhost. In the last field, enter your email address. (See image for more info)
3. Select the option All Users, on Port 80, as a Service. This will allow Apache to run in the backround. Click Next
4. Finish all the dialog boxes with default options unchanged. Click Install to finish the Apache installation. Don’t be alarmed if Windows Command Prompt open and close several times. This is normal.
5. After the installation, open a web browser and type the url http://localhost. You should see a page that say that Apache is working.
You’re done installing Apache!
How To Install PHP5
1. Go to the PHP download page. Choose the package you want to download. I recommend using the Thread Safe version. You can choose the binary installer for Windows but I will use the zip package in this tutorial.
2. Create a folder PHP in your hard disk for PHP. I strongly recommend using C:/PHP.
3. Unzip all the files in the directory you created. The PHP folder will now contain several other folders and about 30 files.
4. In the PHP folder, locate the file called php.ini-development. Make a copy of it and rename the copy php.ini
5. Open the php.ini file with any text editor.
6. Configure the following:
Enable Short Open Tags
Search the line: short_open_tag = Off and change it to short_open_tag = On
Go to the Error Handling ang Logging Section and locate error_reporting = E_ALL & ~E_NOTICE and change it to error_reporting = E_ALL
This will ensure that your PHP is robust.
Go to the Path and Directories Section and locate extension_dir = “./” and change it to extension_dir = “C:\php\ext\”
NOTE: Change the path to where you extracted the PHP files.
Go to the Dynamic Extensions Section. You will see a long list of titled Windows Extensions. You can enable these extra features any time by removing the semicolon from the beginning of the line for the extension you want. Here’s a list of important extensions:
;extension=php_mbstring.dll
;extension=php_gd2.dll
;extension=php_mysql.dll and ;extension=php_mysqli.dll and add these two lines extension=php_pdo.dll and extension=php_pdo_mysql.dll– for mySQL
;extension=php_pdo_pgsql.dll and ;extension=phppgsql.dll -for PostgreSQL
Go to the Module Setting Section. Edit only for Mail Function
Change SMTP = localhost to SMTP = smtp.yahoo.com
Note: Change smtp.example.com to your appropriate outgoing address. For instance, your email address is rod_xavier_14@yahoo.com, your outgoing address is probably smtp.yahoo.com. Remove the semicolon from the beginning of the line
sendmail_from = then put the necessary email address.
Last, locate this line
;session.save_path = “/tmp”
Remove the semicolon from the beginning of the line and change the setting in quotes to
session.save_path = “C:\Windows\Temp”
7. Save and close php.ini
Add PHP to your environment variables:
1. Open the Windows Contol Panel(Start -> Settings -> Control Panel). Double Click the System icon. Select the Advanced tab and click Environment Variables
2. In the System Variables pane at the bottom of the dialog box, highlight Path and click Edit
3. A smaller dialog box will open. Edit the Variable value field. Insert the path where you placed your PHP folder. Click OK
4. Create a System Variable with variable name PHPRC. The variable value is the path to your PHP folder.
5. Click OK to close all the dialog boxes.
Configure Apache to work with PHP
1. Locate and open the Apache configuration file httpd.conf using a script editor. The file is located in C:\Program Files\Apache Software Foundation\Apache2.2\conf (for Apache 2.2)
2. Find the list of items that being with LoadModule. At the end of the list, add
LoadModule php5_module “C:/php/php5apache2_2.dll” (for Apache 2.2)
LoadModule php5_module “C:/php/php5apache2.dll” (for Apache 2.0)
3. Locate this line
DirectoryIndex index.html and replace it with
DirectoryIndex index.html index.php
4. Find the AddType commands and add
AddType application/x-httpd-php .php
5. At the end of httpd.conf file add
PHPIniDir “C:/PHP” Note: Change path accordingly
Restart the Apache Web Server
How To Test Your PHP Installation:
1. Create a php file containing
<?php phpinfo(); ?>
2. Save the file as index.php. Place it in the htdocs folder located in your Apache folder.(eg. C:\Program Files\Apache Software Foundation\Apache2.2\htdocs)
3. Open your web browser and type in the url http://localhost/index.php. If PHP installation was successful, this would display all the information about your PHP installation.
Congratulations! You’re done with the tutorial!
Happy Coding! Let’s be PHP(Positively Happy People)!
Email me if you have questions or you need assistance:
rod_xavier_14@yahoo.com
rodxavier14@gmail.com
Thanks!
Навигация по статье:
- Подготовка
- Apache
- Что такое Apache?
- Скачивание
- Установка
- Виртуальные хосты
- Примеры работы с виртуальными хостами
- Пример 1 – сервер для локальной разработки
- Пример 2 – сервер в локальной сети
- Пример 3 – сервер, доступный из глобальной сети
- Поиск ошибок в конфигурации Apache
- PHP
- Что такое PHP?
- Скачивание
- Установка
- Расширения
- Проверка корректной установки
- MySQL
- Что такое MySQL?
- Скачивание
- Установка
- Защищённая инициализация
- Незащищённая инициализация
- Смена пароля пользователя root
- Авторизация в защищённом режиме
- Авторизация в незащищённом режиме
- Смена пароля
- Смена пароля в старых версиях MySQL
- Восстановление пароля MySQL
- phpMyAdmin
- Что такое phpMyAdmin?
- Скачивание
- Установка
- Установка без виртуальных хостов Apache
- Установка с виртуальными хостами Apache
- Добавление нового сайта
1. Подготовка
Дабы не разводить беспорядок на компьютере, давайте условимся, что упорядочим папки, в которых будут располагаться нужные нам компоненты веб-сервера.
В корне системного локального диска (диск C: ), создайте папку WebServer. Сюда мы засунем всё, что будет относиться к веб-серверу.
Внутри папки WebServer создайте две папки: core и sites. Внутри core мы будем хранить основные компоненты веб-сервера (Apache, PHP, MySQL, phpMyAdmin), а внутри sites – непосредственно Web-сайты (Apache поддерживает возможность разместить несколько веб-сайтов на одном веб-сервере).
Далее в папке core создайте четыре папки: apache, php, mysql и pma. Каждая из папок будет отвечать за свой компонент.
Таким образом мы получим следующее дерево папок:
2. Apache
2.1. Что такое Apache?
Apache HTTP Server, или просто Apache – это свободно распространяемый веб-сервер, который может быть установлен на различных операционных системах, включая Windows, macOS и Linux. Apache является одним из самых популярных веб-серверов в мире и используется для хостинга миллионов веб-сайтов.
Apache предоставляет возможность обрабатывать запросы от клиентов, которые могут быть отправлены через Интернет или через локальную сеть. При получении запроса Apache ищет соответствующий файл на сервере и отправляет его обратно клиенту.
Apache также поддерживает модульную архитектуру, что означает, что пользователи могут добавлять дополнительные функции и возможности, чтобы улучшить производительность и безопасность веб-сервера. Это делает Apache гибким и мощным инструментом, который может быть настроен на различные нужды и требования пользователей.
2.2. Скачивание
Скачать Apache можно с сайта Apache Lounge. Перейдите на данный сайт и нажмите в меню слева «Downloads»:
Здесь требуется определиться, какую версию Apache вы будете использовать. Выбирать версию Apache необходимо в зависимости от того, на какой операционной системе вы будете запускать Apache. Список версий и совместимых версий Windows приведён ниже.
VC10 | VC11 | VC14 | VC15 | VS16 | VS17 | Примечание | |
---|---|---|---|---|---|---|---|
Windows XP | + | – | – | – | – | – | |
Windows Vista | + | + | + | + | + | + | Требуется SP2 |
Windows 7 | + | + | + | + | + | + | Требуется SP1 |
Windows 8 | + | + | + | + | + | + | |
Windows 8.1 | + | + | + | + | + | + | |
Windows 10 | + | + | + | + | + | + | |
Windows 11 | ~ | ~ | ~ | + | + | + | |
Windows Server 2003 | + | – | – | – | – | – | |
Windows Server 2008 | + | + | + | + | + | + | Требуется SP2 или R2 SP1 |
Windows Server 2012 | + | + | + | + | + | + | |
Windows Server 2016 | + | + | + | + | + | + | |
Windows Server 2019 | ~ | ~ | + | + | + | + | |
Windows Server 2022 | ~ | ~ | ~ | + | + | + |
«–» – не поддерживается
«+» – поддерживается
«~» – поддержка официально не заявлена
И так, вы выбрали подходящую вам версию. Смело нажимайте на ссылку, которая начинается с «httpd-…» (1). Ссылок может быть две: для 32-разрядных систем и для 64-разрядных.
32-разрядный веб-сервер Apache запустится и на 32-разрядной системе, и на 64-разрядной (с ограничением используемой ОЗУ), а 64-разрядный запустится только на 64-разрядной системе.
Также обратите внимание: для работы Apache, вам необходимо установить библиотеки Visual C++. Ссылка на библиотеки нужной версии располагаются в верхней части той же страницы (2).
Если у вас установлена операционная система с 32-битной разрядностью, скачать необходимо только 32-разрядные библиотеки (обозначаются как x86 или 32bit), а если система 64-разрядная, то желательно скачать обе версии библиотек: и 32-бит, и 64-бит.
2.3. Установка
Откройте скачанный архив с Apache любым архиватором, например 7-Zip. Внутри вы увидите папку «Apache24». Скопируйте всё содержимое папки «Apache24» из архива в папку C:\WebServer\core\apache. Убедитесь в том, что вы скопировали не всю папку Apache24 целиком в папку apache, а лишь её содержимое.
Далее, чтобы избежать ошибки при установке Apache, откройте файл C:/WebServer/core/apache/conf/httpd.conf любым текстовым редактором (можно стандартным Блокнотом, но мы рекомендуем что-нибудь более продвинутое, например Notepad++, так как стандартный блокнот сохраняет файлы в кодировке Windows-1251, а файлы конфигурации по умолчанию в кодировке UTF-8, и их изменение в блокноте может привести к неожиданным ошибкам) и найдите строку, в которой аргументом будет стандартный путь к папке Apache:
"c:/Apache24"
Замените этот путь на путь, где вы разместили Apache. В нашем случае новый путь будет таков:
"C:/WebServer/core/apache"
Далее запустите командную строку от имени администратора и введите следующую команду:
C:\WebServer\core\apache\bin\httpd -k install
Данная команда установит сервис Apache, который будет автоматически запускать веб-сервер при каждой загрузке операционной системы.
Как можно заметить, при установке Apache как сервиса, возникло замечание проверки конфигурационного файла. Представленное замечание не критично и лишь говорит о том, что в конфигурационном файле не указана директива ServerName, которая не является обязательной.
Вернитесь в окно командной строки (запущенной от имени администратора) и введите команду, которая запустит сервис Apache:
net start Apache2.4
Вы должны получить сообщение о том, что служба успешно запущена или служба уже была запущена ранее:
После этого перейдите в браузере по адресу http://127.0.0.1/. Если всё установлено корректно, перед вами должна открыться страница с надписью «It works!»:
Данная страница означает, что веб-сервер успешно запустился и отобразил файл C:\WebServer\core\apache\htdocs\index.html. Для проверки, вы можете открыть данный файл текстовым редактором, что-нибудь написать, сохранить файл и перезагрузить страницу.
В принципе, вы уже можете пользоваться веб-сервером Apache, размещая необходимые вам файлы в каталоге C:\WebServer\core\apache\htdocs, однако это позволит развернуть лишь один сайт на веб-сервере. Если же вы хотите развернуть несколько сайтов – необходимы виртуальные хосты.
2.4. Виртуальные хосты
Виртуальные хосты позволяют развернуть на веб-сервере несколько сайтов. Это полезно, если вы хотите работать с несколькими проектами на одном компьютере, или же собираетесь «хостить» несколько сайтов на одном сервере.
Для включения виртуальных хостов, откройте в текстовом редакторе файл C:\WebServer\core\apache\conf\httpd.conf.
В этом файле найдите блок кода, отвечающий за подключение файла виртуальных хостов. Он выглядит так: «#Include conf/extra/httpd-vhosts.conf». Раскомментируйте данную строку, убрав из её начала символ «#».
Также найдите строку: «#LoadModule vhost_alias_module modules/mod_vhost_alias.so» и раскомментируйте её – это модуль псевдонимов для доменных имён виртуальных хостов, он нам пригодится:
В самом начале файла, где вы указывали путь к папке с Apache, вставьте следующую строку, заменив путь на каталог к папке с сайтами. Мы будем использовать эту переменную SITES для подстановки в пути в виртуальные хосты:
Define SITES "c:/WebServer/sites"
Также в этом же файле нужно найти строку DocumentRoot, закомментировать её и следующей за ней блок Directory:
А также нужно найти блок <Directory /></Directory> и тоже его закомментировать:
Также по желанию вы можете закомментировать строку ServerAdmin, поскольку она не влияет на работоспособность сервера:
На этом мы закончили с файлом httpd.conf. Далее откройте в текстовом редакторе файл с виртуальными хостами: C:\WebServer\core\apache\conf\extra\httpd-vhosts.conf
В этом файле вы увидите два стандартных блока виртуальных хостов (в начале файла будет около 20 строк комментариев, их можно удалить):
Разберём, из чего эти блоки состоят:
- Части
<VirtualHost *:80>
и</VirtualHost>
отвечают за один виртуальный хост и описывают его. То есть это открывающий и закрывающий теги блока.
Комбинация символов астериска-двоеточия-цифр (*:80
) в данном контексте определяет, что Apache будет обрабатывать этим виртуальным хостом запросы, пришедшие на любой IP-адрес этого компьютера по 80 порту. - DocumentRoot – директория, из которой веб-сервер будет брать файлы при обращении к определённому виртуальному хосту.
- ServerName – основное имя домена, на который будет срабатывать виртуальный хост.
- ServerAlias – альтернативные имена домена, на которые будет срабатывать виртуальный хост. Может быть несколько, перечисленных через запятую. Для работы этой директивы необходимо подключить модуль mod_vhost_alias.so.
- ServerAdmin – электронная почта администратора сервера. Используется в основном при запросах с сервисов Whois.
- ErrorLog – путь к файлу лога ошибок при обращении к конкретно этому виртуальному хосту.
- CustomLog – путь к файлу пользовательских логов.
Давайте разберём небольшой простенький пример конфигурации виртуальных хостов:
- Первый виртуальный хост будет «заглушкой». Всё, что он будет делать – это загружать каталог C:\WebServer\sites\dummy в том случае, если клиент обращается к нашему веб-серверу, но на веб-сервере отсутствует виртуальный хост с таким именем (ServerName или ServerAlias).
- Второй виртуальный хост будет загружать каталог C:\WebServer\sites\example.com\www в том случае, если пользователь заходит по адресам http://example.com/ (ServerName) или http://www.example.com/ (ServerAlias).
- Третий виртуальный хост будет загружать каталок C:\WebServer\sites\example.com\second при обращении к адресу http://second.example.com/
Обратите внимание: обработка адресов виртуальных хостов (ServerName, ServerAlias) возможна только в том случае, если запрос от клиента приходит именно на наш сервер. Переадресация запросов с имени домена на ваш сервер возможна только в случае, если DNS-сервер, используемый клиентом, ассоциирует имя домена с IP-адресом вашего сервера.
Алярма!
Изменения, внесённые в конфигурационные файлы Apache и PHP, вступают в силу только после перезапуска службы Apache!
Для перезапуска можно использовать команду в командной строке:
net stop Apache2.4 & net start Apache2.4
2.5. Примеры работы с виртуальными хостами
2.5.1. Пример 1 – сервер для локальной разработки
Предположим, вы хотите запустить несколько сайтов, которые будут доступны только на вашем компьютере. Такой вариант полезен, например, для локальной разработки веб-сайтов, когда к ним не нужен доступ ни из локальной сети, ни из глобальной сети. То есть вы будете с ними работать единолично, всегда из под одного компьютера.
Предположим, что вы хотите развернуть три локальных сайта: mysite.com, client.mysite.com и myanothersite.com. В этом случае конфигурация виртуальных хостов будет представлять из себя что-то вроде:
При этом, должны существовать каталоги:
- C:\WebServer\sites\mysite.com\www – для mysite.com и www.mysite.com
- C:\WebServer\sites\mysite.com\client – для client.mysite.com
- C:\WebServer\sites\myanothersite.com\www – для myanothersite.com и www.myanothesite.com
Также вам нужно ассоциировать перечисленные адреса именно с вашим компьютером. То есть компьютер должен понимать: «Если я обращаюсь к домену mysite.com – значит я должен обратиться к своему же IP-адресу».
Если вы используете эти сайты именно для локальной разработки, то есть не обязательно, чтобы эти сайты работали из локальной или глобальной сети, вы можете использовать для этого файл C:\Windows\System32\drivers\etc\hosts.
Файл hosts играет роль простенького «DNS-сервера» (очень утрированно, но всё же). При обращении к любому доменному имени, система сначала проверяет, присутствует ли запись об этом доменном имени в файле hosts. Если такая запись присутствует – все запросы к этому доменному имени в будущем направляются на указанный в этом файле IP-адрес. В случае, если доменное имя в этом файле не указано, то отправляется запрос на DNS-сервер в локальной сети (если таковой существует), а далее – на глобальный DNS-сервер.
В контексте нашего примера, содержимое файла hosts будет представлять из себя следующее:
IP-адреса в диапазоне 127.X.X.X (кроме 127.0.0.0 и 127.255.255.255) всегда ссылается на текущий компьютер.
В случае, если вы внесли изменения и в файл виртуальных хостов, и в hosts, а также создали перечисленные папки, все перечисленные сайты откроются:
2.5.2. Пример 2 – сервер в локальной сети
Предположим, что вы хотите развернуть все те же самые сайты, что и в примере 1, но чтобы они были доступны в пределах локальной сети. Такое полезно, например, для организации веб-платформ внутри предприятия.
В этом случае конфигурация виртуальных хостов в Apache не изменится, однако необходимо каким-либо образом дать понять другим компьютерам в пределах локальной сети, что при обращении к mysite.com, они должны будут не искать этот домен на глобальных DNS-серверах, а отправляться на сервер внутри локальной сети.
Предположим, что Apache развёрнут на компьютере с именем Server и статическим IP-адресом 192.168.1.100. Остальные компьютеры в организации имеют имена и IP-адреса: PC1 — 192.168.1.101, PC2 — 192.168.1.102, PC3 — 192.168.1.103.
В этом случае есть два варианта:
- Простой вариант. На всех компьютерах клиентов (PC1, PC2 и PC3) в файл hosts добавить строки, которые будут перенаправлять запросы к необходимым нам сайтам на IP-адрес 192.168.1.100 (IP-адрес сервера):
192.168.1.100 mysite.com 192.168.1.100 www.mysite.com 192.168.1.100 client.mysite.com 192.168.1.100 myanothersite.com 192.168.1.100 www.myanothersite.com
- Сложный вариант. В пределах локальной сети развернуть DNS-сервер, который будет ассоциировать имена необходимых вам доменов с IP-адресом сервера (а не перечисленные адреса перенаправлять на какой-либо глобальный DNS-сервер), и либо вручную задать данный DNS-сервер на каждом компьютере, либо дополнительно поднять DHCP-сервер, который будет сообщать об адресе локального DNS-сервера компьютерам при их подключении к сети.
Данный вариант сложный и объёмный по своей информационной нагрузке, поэтому в деталях в рамках этой статьи мы его разбирать не будем.
Также существует обходной, несколько «костыльный» вариант, не требующий редактирования файла hosts на клиентах, а также не требующий поднятия DNS-сервера. Однако данный вариант не позволяет использовать доменные имена. Доступ к сайтам в этом случае будет происходить по IP-адресам.
Для данного варианта необходимо задать сетевому адаптеру сервера несколько статических IP-адресов, например 192.168.1.10, 192.168.1.11, 192.168.1.12 (количество IP-адресов должно быть больше или равно количеству сайтов).
Конфигурацию виртуальных хостов же следует переделать, придав ей вид наподобие:
В этом случае, любой из клиентов, который зайдёт по адресу http://192.168.1.10/ попадёт в каталог C:\WebServer\sites\mysite.com\www, при входе на http://192.168.1.11/ – в каталог C:\WebServer\sites\mysite.com\client, а при входе на http://192.168.1.12/ – в каталог C:\WebServer\sites\myanothersite.com\www.
2.5.3. Пример 3 – сервер, доступный из глобальной сети
Предположим, что вы хотите, чтобы сайт был доступен из глобальной сети (пожалуй, самое популярное использование веб-серверов в принципе).
В этом случае вам необходимо приобрести домен у регистратора доменных имён. Регистраторов существует огромное множество, например: nic.ru, reg.ru, 2domains.ru, beget.com, timeweb.com и прочие. Вы можете приобрести у регистратора любой домен при условии, что данный домен свободен и доступен для покупки. Цена варьируется в зависимости от доменной зоны (.ru, .com, .net и пр.), а также от востребованности домена: например домен a.travel будет стоить значительно дороже, чем какой-нибудь HelloIAmVasyaPupkinThisIsMyFirstWebSite.ru.
Также необходимо, чтобы шлюз, через который сервер получает доступ к интернету, имел статический «белый» IP-адрес. Арендовать статический публичный IP-адрес можно у интернет-провайдера, который предоставляет доступ к интернету. Цены варьируются в зависимости от провайдера, региона и вашего юридического статуса (физическое или юридическое лицо). Кроме того, некоторые (в частности местечковые) провайдеры не предоставляют возможность аренды «белого» IP-адреса физическим лицам из-за ограниченного количества таких адресов «в наличии» – учитывайте это.
Предположим, вы хотите приобрести доменное имя mycompany.ru, и хотите, чтобы у вас работали непосредственно сам домен, а также поддомены: cabinet.mycompany.ru, landing.mycompany.ru и help.mycompany.ru.
В данном случае ваш алгоритм действий будет примерно следующим:
- Арендовать «белый» IP-адрес у провайдера
- Арендовать домен у регистратора доменных имён
- Запустить веб-сервер на компьютере в локальной сети, сконфигурировать виртуальные хосты. Одна из возможных реализаций файла виртуальных хостов:
- Настроить переадресацию портов на шлюзе, чтобы запросы, приходящие на шлюз, например на 80 порт, перенаправлялись на «серый» IP-адрес машины, на котором запущен веб-сервер
- У регистратора доменных имён изменить DNS-записи вашего домена, заменив/добавив DNS-записи типа A, ссылающиеся на «белый» IP-адрес, который вам выдал провайдер:
Имя Тип Значение @ A IP-адрес от провайдера cabinet A IP-адрес от провайдера landing A IP-адрес от провайдера help A IP-адрес от провайдера
Через несколько часов после внесения DNS-записей, сайт заработает.
2.6. Поиск ошибок в конфигурации Apache
Если сервис Apache не может запуститься, необходимо понять, из-за какой ошибки он не запускается. Для того, чтобы понять, какие вообще ошибки и замечания содержатся в конфигурационном файле, введите следующую команду:
C:\WebServer\core\apache\bin\httpd -t
Данная команда произведёт проверку используемого файла конфигурации и всех подключаемых файлов и оповестит вас о всех найденных ошибках и замечаниях. Если ошибок и замечаний нет, команда проверки конфигурации выдаст лишь сообщение «Syntax OK»:
Разберём устранение ошибки на примере замечания о том, что в конфигурационном файле не указана директива ServerName. Данное замечание не является критичным и не мешает работе Apache, но дабы оно не мозолило глаза, исправим его.
Дело в том, что по умолчанию директива ServerName просто-напросто закомментирована. Вы можете раскомментировать её в конфигурационном файле C:\WebServer\core\apache\conf\httpd.conf – убрать символ «#» в начале строки и изменить www.example.com, например, на test.local, после чего ошибка пропадёт.
Обратите внимание: после любых изменений конфигурационных файлов Apache или PHP, требуется перезапустить Apache, так как изменения применятся только при следующем запуске веб-сервера.
Перезапустить веб-сервер можно командами в командной строке:
net stop Apache2.4 net start Apache2.4
На этом с установкой Apache мы закончили. Перейдём к установке PHP.
3. PHP
3.1. Что такое PHP?
PHP — это язык программирования, который используется для создания веб-приложений и динамических сайтов. Он был создан в 1995 году Расмусом Лердорфом и с тех пор стал одним из наиболее популярных языков программирования для веб-разработки.
Основная цель PHP — обработка данных на сервере. Он может быть использован для работы с базами данных, чтения и записи файлов, отправки электронной почты и многого другого. Кроме того, PHP имеет множество библиотек и фреймворков, которые упрощают и ускоряют процесс разработки.
Существует множество крупных веб-сайтов, которые используют PHP в своей основе, таких как Facebook, Wikipedia и WordPress. Он также поддерживается на большинстве серверов и операционных систем, что делает его доступным для широкого круга разработчиков.
3.2. Скачивание
Для скачивание препроцессора PHP перейдите на сайт в раздел Downloads на Windows.PHP.net
В этом разделе вам необходимо найти версию PHP, подходящую к версии Apache. Например, если вы скачали Apache VS17, то необходимо использовать и PHP для версии VS17.
На момент публикации этой статьи, PHP VS17 ещё не вышла, поэтому мы используем VS16 (они совместимы).
Найдите раздел под разрядность вашей системы с припиской «Thread Safe» и скачайте Zip-архив:
Разархивируйте содержимое архива в папку C:\WebServer\core\php:
3.3. Установка
В каталоге с распакованным PHP переименуйте файл php.ini-development в php.ini:
Далее откройте файл конфигурации Apache – C:\WebServer\core\apache\conf\httpd.conf и вставьте в конец файла следующий текст:
LoadModule php_module "C:/WebServer/core/php/php8apache2_4.dll" PHPIniDir "C:/WebServer/core/php" AddHandler application/x-httpd-php .php
- LoadModule – загружает модуль с названием «php_module» из DLL-файла, находящегося по пути C:/WebServer/core/php/php8apache2_4.dll.
- PHPIniDir – указывает, в каком каталоге располагается файл php.ini. Если в данном каталоге нет файла php.ini (например вы забыли его переименовать из php.ini-development в php.ini), то PHP использует стандартные настройки.
- AddHandler – указывает веб-серверу Apache, что файлы с расширением *.php будут обрабатываться препроцессором PHP.
В случае со старыми версиями PHP (до PHP 7 включительно), первая строка может отличаться: вместо «LoadModule php_module» должно быть «LoadModule php7_module», где цифра 7 – версия PHP. Также для версии PHP 5: «LoadModule php5_module»
Также в этом же файле найдите строку: «DirectoryIndex index.html» и замените её на «DirectoryIndex index.php index.html».
Данная строка отвечает за то, чтобы при открытии пути-директории, без имени файла, открывать перечисленные файлы. То есть, если пользователь зайдёт по адресу http://example.com/ , Apache попытается найти файл http://example.com/index.php, и если он существует – он откроется без изменения URL. Если файла index.php в этом каталоге нет, будет произведён поиск файла index.html. Если он есть – он откроется, а если его нет – будет либо выдан список файлов в этой директории, либо ошибка «403 Forbidden» (в зависимости от настроек Apache).
3.4. Расширения
Большинство сайтов используют не только «голый» функционал PHP, но и дополнительные функции, идущие в комплекте расширений для PHP. По умолчанию все расширения PHP отключены, и было бы полезно включить некоторые из них, чтобы впоследствии не столкнуться с ошибками при работе с сайтами.
Откройте файл C:\WebServer\core\php\php.ini и найдите строку «;extension_dir = «ext»». Раскомментируйте её, убрав точку с запятой из начала строки, и укажите верный путь к папке расширений PHP (C:\WebServer\core\php\ext):
Сами расширения можно включить в этом же файле, найдя и раскомментируя строку «extension=ИМЯ_РАСШИРЕНИЯ» (или добавив свою строку того же формата, разместив расширение в папке php/ext):
Наиболее часто используемыми дополнениями являются: gd, mbstring, exif, mysqli, pdo_mysql. Можете их сразу раскомментировать, чтобы в будущем не сталкиваться с ошибкой отсутствия этих расширений.
3.5. Проверка корректной установки
После внесения изменений в httpd.conf и php.ini, необходимо перезапустить Apache:
net stop Apache2.4 & net start Apache2.4
Теперь вы можете создать файл в любой директории, указанной в созданном виртуальном хосте (или в C:\WebServer\core\apache\htdocs, если не создавали виртуальные хосты), например index.php, и добавить в него следующий текст:
<?php phpinfo(); ?>
Если всё настроено правильно, при входе на страницу с адресом этого файла, вы увидите стандартную страницу с информацией о PHP, которая выводится функцией phpinfo():
4. MySQL
4.1. Что такое MySQL?
MySQL — это система управления реляционной базой данных (СУБД), которая широко используется для создания и управления различными типами веб-приложений. Она является одной из самых популярных СУБД в мире благодаря своей простоте, надежности и гибкости.
Работа с MySQL поддерживается множеством языков программирования, включая PHP, Python, Ruby, Java и другими.
4.2. Скачивание
Перейдите на сайт MySQL.com в раздел Downloads:
Внизу страницы перейдите по ссылке «MySQL Community (GPL) Downloads»:
На этой странице нажмите по ссылке «MySQL Community Server»:
На этой странице можно скачать MySQL в двух форматах: установщик (1) и ZIP-архив (2). Поскольку установщик – это слишком просто (¯\_(ツ)_/¯), разберём ручную установку из ZIP-архива.
После перехода по ссылке для скачивания архива, входить/регистрироваться не обязательно. Просто нажмите «No thanks, just start my download»:
После скачивания, откройте архив, перейдите внутри архива в папку «mysql-версия-разрядность» и распакуйте всё содержимое папки в C:\WebServer\core\mysql:
4.3. Установка
Для установки MySQL, в первую очередь необходимо установить сервис MySQL. Сделать это можно следующей командой:
C:\WebServer\core\mysql\bin\mysqld --install
Результатом данной команды должно быть сообщение о том, что сервис успешно установлен:
Теперь нужно создать пустую базу данных. Данный процесс в рамках MySQL называется «инициализация».
Инициализировать базу данных можно двумя способами:
- В защищённом режиме
- В незащищённом режиме
В защищённом режиме, при инициализации, пользователю root – основному пользователю базы с полными правами на управление базой задастся случайный пароль. В незащищённом режиме – пароль будет пустым.
Oracle, владельцы MySQL, всегда рекомендуют использовать только защищённый режим инициализации, поскольку пароль задан буквально с создания базы, и недоброжелатель не сможет «достучаться» до базы в промежуток времени между незащищённой инициализацией и заданием пароля для рута.
4.3.1. Защищённая инициализация
Для защищённой инициализации введите в командной строке следующую команду:
C:\WebServer\core\mysql\bin\mysqld --initialize
После выполнения этой команды, в папке C:\WebServer\core\mysql появится папка data: в этой папке и хранится база данных.
Как мы уже упомянули, при защищённой инициализации, MySQL создаёт случайный пароль для пользователя root. Данный пароль можно узнать в файле лога ошибок, который создаётся в каталоге созданной базы.
Найдите в папке C:\WebServer\core\mysql\data файл с расширением .err. Его название также генерируется случайным образом и при каждой инициализации будет разным.
Откройте данный файл с помощью блокнота. В нём вы найдёте строку: «A temporary password is generated for root@localhost: …» – это и есть случайный пароль пользователя root.
4.3.2. Незащищённая инициализация
Для защищённой инициализации введите в командной строке следующую команду:
C:\WebServer\core\mysql\bin\mysqld --initialize-insecure
При этом, как и в случае с защищённой инициализацией, будет создана папка data, где будут располагаться все файлы базы данных.
Не забудьте запустить службу
После инициализации базы данных, необходимо запустить службу MySQL, так как она не запускается после установки.
Запустить службу MySQL можно следующей командой:
net start MySQL
В принципе, установка MySQL на этом окончена. Однако, вам может потребоваться изменить пароль пользователя root, поскольку, например, phpMyAdmin не позволяет авторизоваться в БД, если для авторизации используется пустой пароль (если вы использовали незащищённую авторизацию --initialize-insecure
).
4.4. Смена пароля пользователя root
После инициализации, вне зависимости от её типа (защищённая, незащищённая) вам может потребоваться изменение пароля пользователя root.
Для смены пароля рута (да и любого пользователя), необходимо подключиться к базе данных. Убедитесь, что вы запустили службу MySQL, иначе получите ошибку: «Can’t connect to MySQL server on…»:
Для подключения к базе данных, нам необходим файл mysql.exe из папки C:\WebServer\core\mysql\bin.
Заметьте: утилита mysqld.exe (которую мы использовали для установки сервиса и инициализации БД) – отвечает за сервер MySQL, а mysql.exe – это клиент подключения к БД. Не путайте их.
4.4.1. Авторизация в защищённом режиме
Если вы инициализировали базу в защищённом режиме (аргументом --initialize
), вам необходимо авторизоваться в базе данных с использованием пароля. Воспользуйтесь следующей командой для подключения к БД:
C:\WebServer\core\mysql\bin\mysql -u root -p
После ввода команды, MySQL запросит пароль от пользователя root (как уже упоминалось, найти его вы можете в файле с расширением .err в каталоге с базой данных – папке data).
После ввода команды нажмите Enter. MySQL спросит пароль для пользователя root, введите его.
В случае успешной авторизации, вы увидите приветственное сообщение: «Welcome to the MySQL monitor».
Аргумент -u root
в данном контексте обозначает, что мы будем авторизоваться от имени пользователя root, а аргумент -p
означает, что для входа в базу данных будет использован пароль. Без этого аргумента, MySQL выдаст ошибку: «Access denied for user…».
4.4.2. Авторизация в незащищённом режиме
Данный вариант возможен только в случае, если вы инициализировали базу данных в незащищённом режиме (аргументом --initialize-insecure
).
Для авторизации используйте команду:
C:\WebServer\core\mysql\bin\mysql -u root
После этого вы сразу же попадёте в монитор MySQL, без необходимости вводить пароль.
Использование аргумента -p
, как в случае с авторизацией в защищённом режиме, здесь наоборот не нужно, так как пользователь root в данном случае – беспарольный, и попытка выполнить вход с любым паролем выдаст ту же ошибку «Access denied for user…»:
4.4.3. Смена пароля
Для смены пароля пользователя root введите следующую команду:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'НОВЫЙ_ПАРОЛЬ';
Результатом выполнения данной операции должен быть ответ: «Query OK». После смены пароля, вы можете выйти из базы командой quit, после чего попробовать вновь авторизоваться с использованием нового пароля:
C:\WebServer\core\mysql\bin\mysql -u root -p
4.4.4. Смена пароля в старых версиях MySQL
MySQL до версии 5.7.5 включительно и MariaDB (базированная на MySQL) до 10.1.20 включительно не поддерживают команду ALTER USER
. Для этих версий необходимо использовать иной синтаксис команды:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('НОВЫЙ_ПАРОЛЬ');
После изменения пароля перезагрузите привилегии командой:
FLUSH PRIVILEGES;
4.5. Восстановление пароля MySQL
Данный способ поможет вам в случае, если вы по какой-то причине потеряли пароль пользователя root, а соответственно и доступ к MySQL.
Узнать установленный пароль MySQL, к сожалению, нельзя. Однако можно установить новый пароль для пользователя.
Для этого в корне диска C: создайте текстовый файл init.txt. Внутрь данного файла напишите команду изменения пароля, например:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new-root-password';
Далее завершите службу MySQL командой:
net stop MySQL
Теперь запустите сервер MySQL с указанием пути к файлу инициализации и включении консольного вывода:
C:\WebServer\core\mysql\bin\mysqld --init-file=C:\init.txt --console
Когда в выводе увидите строку вида: «C:\WebServer\core\mysql\bin\mysqld: ready for connections. Version:…», нажмите сочетание клавиш Ctrl+C – это завершит сервер MySQL.
После этого вновь запустите сервер MySQL командой:
net start MySQL
Готово. Теперь вы можете авторизоваться по паролю, который установили в команде в файле init.txt. Не забудьте удалить файл init.txt чтобы избежать компрометации пароля.
5. phpMyAdmin
5.1. Что такое phpMyAdmin?
phpMyAdmin — это бесплатный инструмент с открытым исходным кодом, который предоставляет веб-интерфейс для управления базами данных MySQL. С помощью phpMyAdmin вы можете легко создавать, редактировать и удалять базы данных, таблицы, записи и пользователей.
Кроме того, phpMyAdmin предоставляет множество функций для работы с данными, таких как импорт и экспорт данных, выполнение SQL-запросов, создание отчетов и диаграмм и многое другое. Он широко используется веб-разработчиками и администраторами баз данных для управления своими базами данных MySQL.
Кроме того, phpMyAdmin работает скорее как веб-проект (например как тот же WordPress), а не как отдельный компонент, требующий установки (как Apache, PHP и MySQL).
5.2. Скачивание
Для скачивания phpMyAdmin перейдите на сайт phpMyAdmin.net и нажмите кнопку «Download».
Откройте скачанный архив. Внутри вы увидите папку phpMyAdmin-версия-языки, перейдите в неё.
5.3. Установка
5.3.1. Если вы не используете виртуальные хосты в Apache
Создайте в папке C:\WebServer\core\apache\htdocs папку pma. Скопируйте всё содержимое из папки phpMyAdmin-версия-языки из архива в папку pma.
Теперь вы можете войти по адресу http://127.0.0.1/pma/ и попасть в интерфейс phpMyAdmin.
5.3.2. Если вы используете виртуальные хосты Apache
Распакуйте из папки phpMyAdmin-версия-языки из архива в папку C:\WebServer\core\pma.
Далее откройте файл конфигурации виртуальных хостов в Apache: C:\WebServer\core\apache\conf\extra\httpd-vhosts.conf. Добавьте новый виртуальный хост:
<VirtualHost *:80> ServerName pma.localhost DocumentRoot "c:/WebServer/core/pma" </VirtualHost>
В файл C:\Windows\system32\drivers\etc\hosts добавьте следующую строку:
127.0.0.1 pma.localhost
В файле C:\WebServer\core\php\php.ini убедитесь, что строка подключения расширения mysqli раскомментирована:
Перезапустите веб-сервер Apache командой:
net stop Apache2.4 & net start Apache2.4
После этого зайдите через любой браузер по адресу http://pma.localhost/. У вас должна открыться страница авторизации phpMyAdmin. Для авторизации используйте логин-пароль от MySQL.
На этом установка Apache, PHP, MySQL и phpMyAdmin окончена.
При возникновении вопросов, вы можете задать их в комментариях к статье. Мы постараемся ответить на все вопросы, а так же, при необходимости – дополним статью ответами на эти вопросы.
6. Добавление нового сайта
Для создания нового сайта (например mysite.ru) в пределах веб-сервера, выполните следующие действия:
- В каталоге C:\WebServer\sites создайте папку mysite.ru, внутри неё – папку www.
- В файле виртуальных хостов C:\WebServer\core\apache\conf\extra\httpd-vhosts.conf создайте следующий блок виртуального хоста:
<VirtualHost *:80> DocumentRoot "${SITES}\mysite.ru\www" ServerName mysite.ru ServerAlias www.mysite.ru </VirtualHost>
- В файл C:\Windows\System32\drivers\etc\hosts добавьте строки:
127.0.0.1 mysite.ru 127.0.0.1 www.mysite.ru
- Перезапустите службу Apache, например командой в Командной строке (от имени администратора):
net stop Apache2.4 & net start Apache2.4
- Поместите необходимые файлы сайта (например CMS) в созданный каталог: C:\WebServer\sites\mysite.ru\www
- Теперь вы можете открыть в любом браузере ссылку http://mysite.ru/ и ваш сайт откроется.
Mar 17, 2012
Recently decided to install a working Apache 2.4 / PHP 5.4.9 and MySQL 5.5 running locally on my Windows 7 laptop for web design, not using XAMPP or WAMP installation methods. Which are great but this round I wanted to match my Linux server.
Apache 2.4 Install
First download Apache 2.4 from http://www.apachelounge.com/download/ (httpd-2.4.1-win32.zip) Apache 2.4.1
with IPv6 apr-1.4.6 apr-util-1.4.1 apr-iconv-1.2.1 pcre-8.21 lua-5.1 libxml2-2.7.8 openssl-1.0.0g zlib-1.2.6. This release is supported by the PHP 5.4 install from windows.php.net for Apache 2.4.
Extract the zip and copy it to the root of C:\. This will be C:\Apache24 when it is all done.
Update 01-17-2013: The version of the php5apache2_4.dll must match the version of PHP you are installing. The link that was reference before has been changed and moved to http://www.apachelounge.com/download/additional/ for versions 5.4.9 and earlier. As of PHP 5.4.10 the module is now included in the Windows build.
PHP 5.4.9 and Earlier
Download PHP 5.4.9 VC9 x86 Thread Safe from http://windows.php.net/download/releases/archives/php-5.4.9-Win32-VC9-x86.zip . Extract and rename folder to php and move to C:\
Also, download php5apache2_4.dll-php-5.4-win32.zip (http://www.apachelounge.com/download/win32/modules-2.4/php5apache2_4.dll-php-5.4-win32.zip)
Runs with PHP 5.4 Thread Safe (TS), and only with Apache 2.4 Win32 VC9 or VC10.
PHP 5.4.10 and higher
Download PHP 5.4 VC9 x86 Thread Safe from http://windows.php.net/download/ . Extract and rename folder to php and move to C:\.
Update 01-17-2013: This next edit seems to cause issues with php5apache2_4.dll not found errors, so I have added two options for PHP 5.4.9 and earlier and PHP 5.4.10 and above. I want to thank all those who have brought this to my attention and I hope this helps out. Also, due to the addition of the php5apache2_4.dll being included in PHP 5.4.10 and above builds you no longer need to download the module separately.
PHP 5.4.9 and earlier Option 1
Extract php5apache2_4.dll-php-5.4-win32.zip and copy php5apache2_4.dll to the c:\php\ directory. This is needed to allow Apache to use PHP. Edit Apache’s config file, c:\Apache24\conf\httpd.conf and add the following lines to the bottom of the file.
LoadModule php5_module "c:/php/php5apache2_4.dll" AddHandler application/x-httpd-php .php
# configure the path to php.ini PHPIniDir "C:/php"
While we are at it we can add index.php to Apache’s list just incase we want to have a starting page as php.
Find Directory index and add index.php
DirectoryIndex index.html index.php
Next we need to input a value for ServerName variable. You will have to un-comment it. Save the changes to the config file. Next move to the Register Apache Service step.
PHP 5.4.9 and earlier Option 2
Extract php5apache2_4.dll-php-5.4-win32.zip and copy php5apache2_4.dll to the c:\php\ext directory. This is needed to allow Apache to use PHP. Edit Apache’s config file, c:\Apache24\conf\httpd.conf and add the following lines to the bottom of the file.
LoadModule php5_module "c:/php/ext/php5apache2_4.dll" AddHandler application/x-httpd-php .php
# configure the path to php.ini PHPIniDir "C:/php"
While we are at it we can add index.php to Apache’s list just incase we want to have a starting page as php.
Find Directory index and add index.php
DirectoryIndex index.html index.php
Next we need to input a value for ServerName variable. You will have to un-comment it. Save the changes to the config file. Next move to the Register Apache Service step.
PHP 5.4.10 and newer
Edit Apache’s config file, c:\Apache24\conf\httpd.conf and add the following lines to the bottom of the file.
LoadModule php5_module "c:/php/php5apache2_4.dll" AddHandler application/x-httpd-php .php
# configure the path to php.ini PHPIniDir "C:/php"
While we are at it we can add index.php to Apache’s list just incase we want to have a starting page as php.
Find Directory index and add index.php
DirectoryIndex index.html index.php
Next we need to input a value for ServerName variable. You will have to un-comment it. Save the changes to the config file. Next move to the Register Apache Service step.
Register Apache Service
Now let’s register Apache as a service. Open a command prompt and type.
c:\apache24\bin\httpd -k install
If do not want Apache starting automatically at start-up/reboot:
GUI Way
- START | RUN
- Type in services.msc, hit Enter or click OK
- Locate Apache2 service and double-click (or right-click for Properties)
- Find the caption Startup type: (in the middle of the dialog box), use the pull-down and select Manual
- Click OK
Command line
C:\> sc config Apache2.4 start= demand
Add
c:\Apache24; c:\Apache24\bin
to PATH in Environment variables. PATH ENVIRONMENT (System Properties | Advanced | Environment Variables | System variables | Path).
Example:
;c:\php;c:\apache24;c:\apache24\bin;
Now lets check Apache settings by issuing the command, c:\Apache24\bin\httpd -S
PHP Edits
Now we have to do a few edits to the php.ini file to tell it to load support for mysql and the location for the extensions. Since there is not a already set php.ini file we need to rename one of the two examples to php.ini.
Rename c:\php\php.ini-development to php.ini
Now let’s edit php.ini
Uncomment extension directory.
; Directory in which the loadable extensions (modules) reside. ; http://php.net/extension-dir ; extension_dir = "./" ; On windows: extension_dir = "ext" Uncomment mysql modules extension=php_mysql.dll extension=php_mysqli.dll
Save the changes and open a command prompt. Check to make sure it shows loaded modules.
C:\> php -m
So now we have Apache running and configured to use php. Lets create a file called info.php, save it and see if Apache parses the info correctly to display the results.
Open Notepad or your favorite Windows editor and type and save the following.
<?php phpinfo(); ?>
Open your browser and type, localhost/info.php for the location and you should receive alot of information about PHP.
MySQL
Download and install mysql-5.5.21-win64.msi. Change installation directory to C:\MySQL\MySQL Server 5.5 instead of Program files as there could be permissions issues. Once the installation is completed you can let the configuration wizard run and setup the database server. The defaults will work just fine, but remember what you set the password to for root.
PHPMyAdmin
PHPMyAdmin is a very nice tool to use for administering your MySQL installation.
Download and install phpmyadmin-3.4.10.1-english.zip.
Extract the file and move to c:\apache24\htdocs. Rename directory to phpmyadmin.
Create a config directory under phpmyadmin. Open a browser and type localhost/phpmyadmin/setup/index.php to complete the installation.
At this point you should have a working Apache / PHP / MySQL installation running and ready for you to start developing !!!