Здравствуйте! Сегодня я вместе с Вами буду создавать локальный сайт (а в будущем зальём его на хостинг).
На самом деле когда я первый раз устанавливал на свой ПК сервер, я руководствовался статьёй HackWare.ru. Знаниями из этой статьи я пользуюсь до сих пор.
Итак, начнем.
Что нам нужно:
Apache (непосредственно веб-сервер)
PHP - среда для работы PHP программ (требуется практически всеми веб-сайтами)
MySQL - система управления базами данных (требуется большинством веб-сайтов)
phpMyAdmin - очень удобный инструмент для управления базами данных
vc_redist.x64.exe - Visual C++ Redistributable for Visual Studio
Скачиваем Apache24 - apachelounge.com/download
Скачиваем PHP - https://windows.php.net/download/. Выбираем Thread Safe версию. Внимательнее с битностью системы!
Скачиваем MySQL. Бесплатная версия - https://dev.mysql.com/downloads/mysql/.
Скачиваем phpMyAdmin - phpmyadmin.net
Visual C++ Redistributable for Visual Studio (прямая ссылка на скачивание 64-битной версии; прямая ссылка на скачивание 32-битной версии).
Важное примечание при работе с расширениями файлов . Если вы используете Проводник Windows для создания и переименования конфигурационных файлов, помните, что по умолчанию он не показывает файловое расширение, поэтому вы можете видеть my.ini, но на самом деле это файл my.ini.txt. Поэтому сервер не видит этот файл и не применяет настройки из него, что ведёт к ошибкам.
Поэтому при создании файлов:
- либо используйте Double Commander (Бесплатный аналог Total Commander) , эта программа всегда показывает расширения файлов, и вообще очень хороший кроссплатформенный, с открытым исходным кодом двухоконный менеджер файлов
- либо включите показ расширений файлов в Проводнике, об этом рассказано в краткой инструкции «Как сделать так, чтобы Windows показывала расширения файлов »
Теперь создание структуры веб-сервера.
В корне диска C создадим папку Server. В этой папке создадим еще две папки: bin (для исполнимых файлов) и data.
В папке data создадим папки DB (база данных) и htdocs (для сайтов).
В папке DB создадим папку data.
Установка Apache.
Содержимое скаченного архива httpd-2.4.46-win64-VS16.zip распакуйте в C:\Server\bin\ .
Перейдите в каталог c:\Server\bin\Apache24\conf\ и откройте файл httpd.conf любым текстовым редактором.
В нём нам нужно заменить ряд строк.
- Define SRVROOT "c:/Apache24" на Define SRVROOT "c:/Server/bin/Apache24"
- # ServerName www.example.com:80 на ServerName localhost (в примере после # идёт пробел, в оригинале его нет! В следующих строках, где используется # ситуация такая же)
- DocumentRoot "${SRVROOT}/htdocs" на DocumentRoot "c:/Server/data/htdocs"
- <Directory "${SRVROOT}/htdocs"> на <Directory "c:/Server/data/htdocs">
- DirectoryIndex index.html на DirectoryIndex index.php index.html index.htm
- (здесь же всё точно так, как и должно быть в файле)
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
AllowOverride None
В последней строке меняем None на All - # LoadModule rewrite_module modules/mod_rewrite.so
на
LoadModule rewrite_module modules/mod_rewrite.so
Сохраняем файл и закрываем. Настройка сервера завершена!
Откройте командную строку (это можно сделать нажав одновременно клавиши Win+X). Выберите там Windows PowerShell (администратор) и скопируйте туда:
c:\Server\bin\Apache24\bin\httpd.exe -k install
Если поступит запрос от файервола в отношение Apache, то нажмите Разрешить.
Теперь вводим в командную строку:
c:\Server\bin\Apache24\bin\httpd.exe -k start
Сервер запущен! Теперь в браузере набираем http://localhost/ и видим следующее:
Установка и настройка MySQL
В каталог bin распаковываем файлы MySQL (из архива mysql-8.0.23-winx64.zip). Переименовываем папку mysql-8.0.23-winx64.zip в 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
Теперь служба MySQL будет запускаться при каждом запуске Windows.
Установка и настройка PHP 8
В папке c:\Server\bin\ создаём каталог PHP и копируем в него содержимое архива php-8.0.3-Win32-vs16-x64.zip.
В файле c:\Server\bin\Apache24\conf\httpd.conf в самый конец добавляем строчки:
PHPIniDir "C:/Server/bin/PHP"
AddHandler application/x-httpd-php .php
LoadModule php_module "C:/Server/bin/php/php8apache2_4.dll"
Перезапускаем 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
Установка и настройка phpMyAdmin
В каталог c:\Server\data\htdocs\ копируем содержимое архива phpMyAdmin-5.1.0-all-languages.zip. Переименовываем phpMyAdmin-5.1.0-all-languages.zip в phpmyadmin (для лаконичности)
В каталоге c:\Server\data\htdocs\phpmyadmin\ создаём файл config.inc.php и копируем туда:
В браузере набираем http://localhost/phpmyadmin/
В качестве имя пользователя вводим root. Поле пароля оставляем пустым. Если всё сделано правильно, то всё должно выглядеть так:
Использование сервера и бэкап данных
В каталоге c:\Server\data\htdocs\ создавайте папки и файлы, например:
c:\Server\data\htdocs\test\ajax.php – этот файл, соответственно, будет доступен по адресу http://localhost/test/ajax.php и т.д.
Для создания полного бэкапа всех сайтов и баз данных достаточно скопировать каталог C:\Server\data\ .
Перед обновлением модулей, делайте бэкап папки bin – в случае возникновения проблем, можно будет легко откатиться к предыдущим версиям.
При повторной установке сервера или при его обновлении, необходимо заново настраивать конфигурационные файлы. Если у вас есть копии этих файлов, то процесс можно значительно ускорить. Желательно забэкапить следующие файлы:
- c:\Server\bin\Apache24\conf\httpd.conf
- c:\Server\bin\mysql-8.0\my.ini
- c:\Server\bin\PHP\php.ini
- c:\Server\data\htdocs\phpMyAdmin\config.inc.php
В них и хранятся все настройки.