Чтобы их оттестировать поднимала сервер на Windows10
Сделала сервер и для php, и для perl
статьи исходники https://upweek.ru/windows-apache-mysql-php-webserver https://apache-windows.ru/%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D0%B2%D0%B5%D0%B1-... |
Устанавливаем не на диск с windows, я устанавливаю на диск D
создаем папки
- D:\web\
- D:\web\apache\
- D:\web\php\
- D:\web\perl\
- D:\web\tmp\
- D:\web\www\
- D:\web\log\
D:\web\www\index.html
Hello world |
<?php phpinfo(); ?> |
#!D:\web\perl\perl\bin\perl.exe print "Content-type: text/html; charset=iso-8859-1\n\n"; print "<html>"; print "<body>"; print "Test Page"; print "</body>"; print "</html>"; |
Microsoft Visual C++
Свежий компонент vc_redist.x86.exe, его можно скачать бесплатно с сайта Microsoft https://www.microsoft.com/ru-ru/download/details.aspx?id=52685 устанавливаем
Apache
Zip архив Apache https://www.apachelounge.com/download/ Я взяла httpd-2.4.47-win32-VS16.zip
Из архива все содержимое папки Apache24 копируем в D:\web\apache\
php
https://windows.php.net/download/ . Я взяла VS16 x86 Thread Safe (2021-Apr-28 01:16:50). Из архива все содержимое копируем в D:\web\php\
Важно:
|
https://www.activestate.com/products/activeperl/downloads/ или https://strawberryperl.com/
Мне нужен был 32-bit, я взяла strawberry-perl-5.32.1.1-32bit.msi
Запускаем установку и выбираем путь D:\web\perl\
В данной папке relocation.txt переименовываем в relocation.pl.bat и запускаем
mysql
https://dev.mysql.com/downloads/windows/installer/
я взяла Windows (x86, 32-bit), MSI Installer 5.7.34 (8.0.24 у меня не пошел)
тут написано как установить https://upweek.ru/windows-apache-mysql-php-webserver шаг 5.2-5.10
Настройка Apache
Файл настроек Apache D:\web\apache\conf\httpd.conf немного меняем
корневая папка Apache
Define SRVROOT "D:\web\apache" |
DocumentRoot "D:\web\www" |
<Directory "D:\web\www"> |
ServerName localhost:80 |
ErrorLog "D:\web\log\apache-error.log" |
CustomLog "D:\web\log\apache-access.log" common |
в любом месте файла, но лучше где остальные LoadModule
если php8
LoadModule php_module "D:\web\php\php8apache2_4.dll" AddHandler application/x-httpd-php .php PHPIniDir "D:\web\php" |
LoadModule php7_module "D:\web\php\php7apache2_4.dll" AddHandler application/x-httpd-php .php PHPIniDir "D:\web\php" |
DirectoryIndex index.cgi index.pl index.php index.html |
строчку
Options Indexes FollowSymLinks |
Options Indexes FollowSymLinks ExecCGI |
#AddHandler cgi-script .cgi |
AddHandler cgi-script .cgi .pl |
Настройка PHP
изменить имя файла с D:\web\php\php.ini-development на D:\web\php\php.ini
открываем теперь php.ini и изменяем
extension_dir = "D:\web\php\ext" |
sys_temp_dir = "D:\web\tmp" |
extension=mysqli |
extension=mbstring |
date.timezone = Europe/Moscow |
short_open_tag = On |
Обновить PHP
- Переименовать папку D:\web\php в php_old
- Распоковать новую версию PHP в D:\web\php
- Перенести php.ini из папки php_old в папку php.
- Если это новая версия php (был php7, изменили на php8), изменить в apache загрузку модуля php, например, на LoadModule php_module "D:/web/php/php8apache2_4.dll"
- Если все ок — удалить папку php_old.
C:\Windows\System32\cmd.exe запуск от имени администратора
установка Apache
D:\web\apache\bin\httpd.exe -k install |
D:\web\apache\bin\httpd.exe -k restart |
D:\web\apache\bin\httpd.exe -k uninstall |
Настройка виртуальных хостов на Apache
файл C:\Windows\System32\drivers\etc\hosts
Если файл hosts не получается сохранить файл host можно скопировать, например, на Рабочий стол, где его можно отредактировать, сохранить, переместить обратно и подтвердить операцию с административными привилегиями |
Добавить строки, например
127.0.0.1 host1.localhost 127.0.0.1 host2.localhost |
создать папки
для размещения фалов сайта
- D:\web\www\host1.localhost
- D:\web\www\host2.localhost
- D:\web\log\host1.localhost
- D:\web\log\host2.localhost
- Открыть D:\web\apache\conf\httpd.conf
- Раскомментируйте строку Include conf/extra/httpd-vhosts.conf
- Сохраните файл httpd.conf
Когда Apache увидит, что у него есть доступ к httpd-vhosts.conf, то он перестанет принимать во внимание указанные ранее параметры в httpd.conf:
Все эти параметры будут взяты из файла конфигурации виртуальных хостов, а самый первый указанный хост будет считаться за localhost. |
<VirtualHost *:80> ServerAdmin webmaster@host1.localhost DocumentRoot "D:\web\www\host1.localhost" ServerName host1.localhost ServerAlias www.host1.localhost ErrorLog "D:\web\log\host1.localhost\error.log" CustomLog "D:\web\log\host1.localhost\access.log" common </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@host2.localhost DocumentRoot "D:\web\www\host2.localhost" ServerName host2.localhost ServerAlias www.host2.localhost ErrorLog "D:\web\log\host2.localhost\error.log" CustomLog "D:\web\log\host2.localhost\access.log" common </VirtualHost> |
Mysql
«Диспетчер задач» Windows mysqld.exe в фоновых процессах.
Вкладка «Службы» и увидите службу по имени MySQL80, которую вы можете останавливать и запускать по правому клику мыши.
Дополнительно
для php модуль CGI поставить
Берем отсюда https://metacpan.org/pod/CGI::Compile из архива копируем содержимое папки CGI-XXX/lib/ (у меня CGI-4.51/lib/) в папку D:\web\perl\perl\lib