Мне, программисту Битрикс, потребовались perl скрипты.
Чтобы их оттестировать поднимала сервер на Windows10
Сделала сервер и для php, и для perl
Предварительные действия
Устанавливаем не на диск с 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
D:\web\www\index.php -
D:\web\www\index.cgi
#!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 устанавливаем
ApacheZip архив 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\ Важно:
- чтобы VS совпадало у php apache
- php был Thread Safe
- в архиве php был файл php8apache2_4.dll (или php7apache2_4.dll)
|
perl
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" |
раскомментируем и меняем имя сервера
Файлы логов
ErrorLog "D:\web\log\apache-error.log" |
CustomLog "D:\web\log\apache-access.log" common |
Подключаем php
в любом месте файла, но лучше где остальные LoadModule
если php8
LoadModule php_module "D:\web\php\php8apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "D:\web\php"
|
если php7
LoadModule php7_module "D:\web\php\php7apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "D:\web\php"
|
меняем DirectoryIndex
DirectoryIndex index.cgi index.pl index.php index.html |
Подключаем perl
строчку
Options Indexes FollowSymLinks |
меняем на
Options Indexes FollowSymLinks ExecCGI |
строчку
#AddHandler cgi-script .cgi |
расскомментируем и меняем на
AddHandler cgi-script .cgi .pl |
Сохраняем файл D:\web\apache\conf\httpd.conf
Настройка 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" |
расширения расскомментируем или добавляем
часовой пояс, выбрать свой тут
https://www.php.net/manual/ru/timezones.php date.timezone = Europe/Moscow |
ставим
Обновить 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.
Установка ApacheC:\Windows\System32\cmd.exe запуск от имени администратора
установка Apache
D:\web\apache\bin\httpd.exe -k install |
перезапуск Apache
D:\web\apache\bin\httpd.exe -k restart |
удаление Apache
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
поправить настройки apache
- Открыть D:\web\apache\conf\httpd.conf
- Раскомментируйте строку Include conf/extra/httpd-vhosts.conf
- Сохраните файл httpd.conf
Когда Apache увидит, что у него есть доступ к httpd-vhosts.conf, то он перестанет принимать во внимание указанные ранее параметры в httpd.conf: - DocumentRoot
- ServerName
- ErrorLog
- CustomLog
Все эти параметры будут взяты из файла конфигурации виртуальных хостов, а самый первый указанный хост будет считаться за localhost. |
В файле
D:\web\apache\conf\extra\httpd-vhosts.conf описываем хосты
<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> |
перезапускаем apache
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