11 августа 2024 г.

Еще раз об Apache, PHP, MySQL на Windows

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

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

Для начала создайте папки. Одну – место хранения Apache, PHP, вторую – для ваших веб-приложений. Предположим это будут C:\Users\username\apps и C:\Users\username\dev\www. Данные действия не обязательны, но, с моей точки зрения, очень полезны.

Сегмент username меняем на имя своего пользователя.

PHP

Для работы с Apache через обработчик надо брать потокобезопасную версию PHP. На момент этой статьи это 8.3.10 отсюда. В более быстрой потоконебезопасной почему-то нет драйвера обработчика для Apache.

Распаковываем в папку C:\Users\username\apps\php-8.3.10 и в ней редактируем файл php.ini. Если его нет, то можно переименовать из php.ini-development. В файле меняем значения на:

  • max_execution_time = 300 - в секундах, можно поставить любое значение, но не меньше 30
  • memory_limit = 512M - можно поставить любое значение, но не меньше 256
  • error_reporting = E_ALL - чтобы ошибки отображались все
  • display_errors = On - для отображения ошибок
  • post_max_size = 200M - не меньше 30
  • upload_max_filesize = 200M - не меньше 30
  • max_file_uploads = 1000 - не меньше 20
  • extension_dir = "C:/Users/username/apps/php-8.3.10/ext"
  • upload_tmp_dir = "C:/Users/username/dev/www/tmp"

Надо раскомментировать расширения:

  • curl - обязательно для нашего случая
  • gd - обязательно для нашего случая
  • mbstring - обязательно для нашего случая
  • mysqli - обязательно для нашего случая

Apache

Нам потребуется Apache для Windows, качаем отсюда версию 2.4.62, распаковываем в C:\Users\username\apps\apache-2.4.62.

Редактируем файл conf\httpd.conf:

  • Define SRVROOT "C:/Users/username/apps/apache-2.4.62/" - меняем
  • LoadModule rewrite_module modules/mod_rewrite.so - раскомментируем
  • LoadModule php_module "C:/Users/username/apps/php-8.3.10/php8apache2_4.dll" - добавляем
  • AddHandler application/x-httpd-php .php - добавляем
  • PHPIniDir "C:/Users/username/apps/php-8.3.10" - добавляем
  • ServerName localhost:80 - меняем
  • Добавить фрагмент кода 1 ниже
  • DirectoryIndex index.html index.php - меняем
  • Include conf/extra/httpd-vhosts.conf - раскомментируем

Фрагмент кода 1:

DocumentRoot "C:/Users/username/dev/www/"
<Directory "C:/Users/username/dev/www/">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Редактируем файл conf\extra\httpd-vhosts.conf.

<VirtualHost _default_:80>
    DocumentRoot "C:/Users/username/dev/www/"
</VirtualHost>
<!-- понадобится чуть позже -->
<VirtualHost *:80>
    DocumentRoot "C:/Users/username/dev/www/Joomla-5.1.2"
    ServerName joomla.localhost
    ErrorLog "logs/joomla-error.log"
    CustomLog "logs/joomla-access.log" common
    <Directory "C:/Users/username/dev/www/Joomla-5.1.2">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

В папке C:\Users\username\apps\apache-2.4.62\bin выполняем проверку конфигурации:

httpd.exe -k config -n "Apache2.4.62"

и если ошибок нет, то устанавливаем и запускаем службу:

httpd.exe -k install -n "Apache 2.4.62"
httpd.exe -k start -n "Apache 2.4.62"

Проверка связки Apache и PHP

Создаем файл C:\Users\username\dev\www\info.php:

<?php
phpinfo();

В браузере заходим по адресу http://localhost/info.php и смотрим, чтобы Loaded Configuration File был C:\Users\username\apps\php-8.3.10\php.ini, присутствовали модули curl, gd, mbstring, mysqli.

MySQL

Отсюда качаем архив с версией 8.4 и распаковываем в C:\Users\username\apps\mysql-8.4.0. В этой папке выполняем команду:

bin\mysql_configurator

Если она не создала пользователя, то можно зайти:

mysql -u root

и выполнить:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

phpMyAdmin для управления БД

Далее качаем отсюда, распаковываем в C:\Users\username\dev\www\phpmyadmin. Переименовываем config.sample.inc.php в config.inc.php, заходим по адресу http://localhost/phpmyadmin/ и создаем базу данных joomla-test со сравнением utf8mb4_general_ci.

Joomla

Отсюда качаем последнюю версию и распаковываем в C:\Users\username\dev\www\Joomla-5.1.2. Потом заходим по адресу http://joomla.localhost/installation/ и следуем мастеру установки.

Комментариев нет:

Отправить комментарий