Последняя версия Денвера вышла в 2011-м году. И с тех пор ничего лучше для виртуальных хостов так и не сделали. AMPP, XAMPP - дерьмо полное, OpenServer - малость получше, но все равно дерьмо. Денвер имеет одно принципиальное преимущество - при работе он создает виртуальный диск и эмулирует на нем юниксовую файловую систему. На практике это означает, что при заливке написанных на Перле программ на реальный сервер - не нужно каждый раз в каждом файле руками править пути.
Разумеется, все то же самое можно сделать и настроить самому. Но нафига изобретать велосипед? Да и несмотря на древность Денвера он по прежнему актуален. Перл в нем заменяется на более новый элементарно - просто ставится поверх, а все остальное - работает и ладно. Но, с другой стороны, а почему бы разок не потратить время и полностью не пересобрать Денвер, заменив в нем на свежие версии вообще все? Просто, чтоб было. Мало ли что. Разумеется, нам нужен вариант на 100% portable.
Итак. При установке Денвера по очевидным причинам лучше выбирать тип установки 2 - с созданием виртуального диска при запуске денвера.
Порядковая буква виртуального диска хранится в /denver/CONFIGURATION.txt (параметр subst_drive), там его в любой момент можно изменить.
Если нам не нужен эмулятор SMTP, его можно отключить, убрав из /denwer/scripts/main в подпапках start, stop и restart скрипт 35_sendmail. Лучше не удалять, а куда-нибудь перенести, например, в созданную там же подпапку disabled с соответствующими путями. Вдруг нам когда-нибудь все-таки придется писать почтовые утилиты.
VC15
Download Microsoft Visual C++ 2015 Redistributable Update 3 from Official Microsoft Download Center
Вообще, не обязательно. Но для лучшей мобильности и универсальности лучше добавить.
Создаем папку /usr/local/vcredist и копируем туда DLL-ки.
Открываем /denwer/scripts/init.d/apache.pl и после объявления массива my @addPath = () добавляем
Там же, в хэше StartManager::action PATH => [] тоже добавляем путь (в начало)Код:$ENV{'PATH'} = '\usr\local\vcredist;' . $ENV{'PATH'};
'\usr\local\vcredist',
Заодно исправим там же в блоке
меняем команду наКод:if (my $p = fsgrep { /^openssl.cnf$/i } $phpdir) { $ENV{OPENSSL_CONF} = $p; }
MySQLКод:$ENV{OPENSSL_CONF} = Installer::getSubstDriveConfig() . $p;
MySQL :: Download MySQL Community Server
В файле /denwer/CONFIGURATION.txt указываем новое имя папки mysql (mysql-5.7).
в /usr/local/mysql-5.7 тупо распаковываем zip-версию mysql-5.7.25-win32.zip
из старой mysql-5.5 копируем mysql.ini, правим там пути и меняем дефолтную кодировку на utf8. В раздел [mysqld] добавляем параметр explicit_defaults_for_timestamp = 1.
Папку lib с целым гигом dll-ок можно грохнуть для экономии места, вряд ли мы соберемся что-нибудь из них компилировать.
Запускаем денвер, запускаем cmd, переходим на виртуальный диск в /usr/local/mysql-5.7/bin и выполняем команду
Выключаем денвер и закрываем cmd.Код:mysqld --initialize-insecure --console
Perl
http://downloads.activestate.com/ActivePerl/releases/
Самое главное. В последней версии Денвера стоит 5.8, которая умеет работать с юникодом только анально. Моя любимая на сегодняшний день - Active Perl 5.24. Качаем ее и ставим в /usr/local/perl, переименовав или удалив старый. Проблема: установщик Active Perl ставит только версию той разрядности, которая совпадает с осью. Если нам нужна версия x86 (например, для большей мобильности и универсальности), придется найти комп с вынь32, поставить Перл туда, а потом скопировать. Папку html с мануалами удаляем нафиг, мы это все и так давно знаем.
Для начала запускаем PPM и ставим компилятор MinGW. Непонятно, почему он не входит по умолчанию в комплект Active Perl.
Запускаем cpan и обновляем его - "install CPAN". Там же обновляем LWP::UserAgent.
Возвращаемся в PPM и первым делом обновляем CGI и DBI. Дальше ставим DBD::mysql. Тоже не понятно, почему его нет по умолчанию. Говорят, что-то там из-за лицензий посрались. Ставить/обновлять библиотеки лучше по одной, иначе при любой ошибке остановится весь список и будет не особо понятно, на которой из них сглючило.
Теперь ставим/обновляем библиотеки, которые мне точно понадобятся:
Switch
Encode
JSON::XS
WWW::Curl
Net::Ping
Date::Calc
URI::Encode
Time::Local
Data::Types
CGI::Session
Scalar::Util
Digest::SHA1
Spreadsheet::WriteExcel
(Примечание: Scalar::Util - в PPM называется Scalar-List-Utils).
Apache
Apache Haus Downloads
Далее надо заменить апач. Так бы и фиг с ним, он и так работает. Но без апача мы не сможем заменить PHP на более новый.
ПХП вообще-то тоже нахрен не нужен, но вот phpMyAdmin - удобный инструмент для работы с MySQL, а в последней версии денвера он корявенький. Но без нового ПХП его не поменять. Короче, придется идти по цепочке. Начнем с апача.
Переименовываем /usr/local/apache во что-нибудь другое, создаем новую папку с таким же именем, качаем туда и распаковываем httpd-2.4.38-x86-vc11.zip.
Из старого апача копируем bin/TrayApache.exe и bin/Apache.ico. Папки htdocs, include, lib можно удалить.
Дальше нужно долго и нудно править конфиги, но это описание займет простыню текста, поэтому проще сохранить готовый конфиг апача 2.4 для денвера. Сохраню его здесь, благо ничего не весит. Да и остальные конфиги туда добавлю.
PHP
PHP For Windows: Binaries and sources Releases
Короче, качаем php-7.3.1-Win32-VC15-x86.zip и распаковываем в /usr/local/php7.
Далее, лезем в /usr/local/apache/conf/httpd.conf, находим строку
LoadModule php5_module "/usr/local/php5/php5apache2_2.dll"
и меняем ее на
LoadModule php7_module "/usr/local/php7/php7apache2_4.dll"
Папки php4 и php5 можно грохнуть. В php7 файл php.ini-development переименовываем в php.ini.
В php.ini раскомментируем строки и приводим их в соответствующий вид:
Если phpMyAdmin начнет ругаться на ошибку session_start(), пишемКод:extension_dir = "ext" upload_tmp_dir = /tmp extension=bz2 extension=curl extension=gd2 extension=mbstring extension=mysqli extension=pdo_mysql extension=soap extension=sqlite3 extension=xsl session.save_path = /tmp session.gc_maxlifetime = 86400
session.save_path = "../../../../tmp"
phpMyAdmin
Downloads
Грохаем старый, папку phpmyadmin переносим из /home/localhost/www/tools в /home/localhost/www. Чтобы путь был стандартным для серваков.
Остальное в localhost тоже удаляем, оставляем только cgi-bin и phpmyadmin в www. Другие тестовые поддомены тоже удаляем. Cgi-glob в корне оставим, он нужен. Создаем для начала себе рабочий поддомен work (можно без .ru), в нем - cgi-bin (вместо cgi, тоже для стандартизации путей) и www.
Распаковываем в phpmyadmin свежескачанную софтину. Находим файл config.sample.inc.php и копируем его в config.inc.php. Открываем его дописываем в раздел
чуть ниже меняемКод:/* Authentication type */ $cfg['LoginCookieValidity'] = 86400; $cfg['Servers'][$i]['auth_type'] = 'config'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = '';
Запускаем Denwer. Открываем phpMyAdmin (http://localhost/phpmyadmin/). Где-то внизу он скромненько так намекнет, что хранилище конфигурации не полностью настроено. Разрешаем ему создать базу под названием "phpmyadmin". Вроде все. Пакет весьма потяжелел, так что, если мы хотим работать с флэшки, флешка понадобится потолще. Но в наше время это не проблема.Код:$cfg['Servers'][$i]['host'] = '127.0.0.1'; $cfg['Servers'][$i]['AllowNoPassword'] = true;
-
Скрыть объявление
Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.
-
Скрыть объявлениеЕсли Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.
Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
- Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
- Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
- Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
- Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
С уважением, администрация форума Old-Games.RU
Комментарии
Сортировать комментарии по