localhost и php_mbstring.dll или httpd.conf?

localhost не работает. Скачали денвер. Развернули его. Установили. По-умолчанию: всё работает и php и mysql в том числе. В «морде локалхоста»! Но нам нужен мегасуперпроект, каких свет не видел — с поддоменами, папками, и прочими приблудами! Но руки конечно чешутся, хочется конечно всё улучшить и что бы всё работало как надо и сверх того надо. Вот вам и капризный результат деяний! Обычно, всё как всегда на старом добром Windows XP работало — теперь Денвер работает и на Windows максимальная — это хорошо. Но после того, как решил добавить интересные библиотеки в php.ini (c:\denver\usr\local\php5\php.ini) раскомментарить, такие как: ;extension=php_bz2.dll, extension=php_curl.dll, extension=php_dba.dll, extension=php_dbase.dll, extension=php_exif.dll, extension=php_fdf.dll, extension=php_gd2.dll, extension=php_gettext.dll, extension=php_gmp.dll, extension=php_ifx.dll, extension=php_imap.dll, extension=php_interbase.dll, extension=php_ldap.dll extension=php_mbstring.dll, extension=php_mcrypt.dll, extension=php_mhash.dll, extension=php_mime_magic.dll, extension=php_ming.dll, extension=php_msql.dll, extension=php_mssql.dll extension=php_mysql.dll extension=php_mysqli.dll, extension=php_oci8.dll, extension=php_openssl.dll, extension=php_pdo.dll, extension=php_pdo_firebird.dll, extension=php_pdo_mssql.dll extension=php_pdo_mysql.dll, extension=php_pdo_oci.dll, extension=php_pdo_oci8.dll, extension=php_pdo_odbc.dll, extension=php_pdo_pgsql.dll, extension=php_pdo_sqlite.dll, extension=php_pgsql.dll, extension=php_pspell.dll, extension=php_shmop.dll, extension=php_snmp.dll, extension=php_soap.dll, extension=php_sockets.dll, extension=php_sqlite.dll, extension=php_sybase_ct.dll, extension=php_tidy.dll, extension=php_xmlrpc.dll, extension=php_xsl.dll, extension=php_zip.dll и всё бы замечательно, если бы сразу же не появилась ошибка в apache — не могу запустить php! Отсутствует библиотека: php_mbstring.dll В чём причина — есть вариант починить! Есть следующее:
Причём в c:\denver\usr\local\php5\ext\ — он как и другие есть! Что за бред блин. localhost — отказывался работать при не запущеном апаче!  И это понятно, apache2 то «ложится», да php тоже не грузиться. Как-то раньше, давным давно — надо было модернизировать на локалке один web-проект под тот же денвер — всё установилось без проблем тогда — на раз два. А тут, после моих «редакций улучшения» всё валяется! Коментарю обратно Ctrl+Z! Stop, потом Start! Опять:  Отсутствует библиотека: php_mbstring.dll! Неужели, в c:\denver\usr\local\apache\conf\httpd.conf — не прописан путь? Так я этот файл и вообще не трогал! Или он сам перезаписывается? Решил пойти от обратного, думаю — надо посмотреть — не закоментарена ли там: php_mbstring.dll — точно! Пишу полный путь до неё. Ставлю первой в загрузку! Запускаем! Ура PHP-заработало! localhost нет! Останавливаем. Меняем местами строчки: сначала обязан стартовать apache2 а уж потом дурацкая php_mbstring.dll (прописал им полный путь с C://), которая в первый раз была почему-то закоментарена в httpd.conf, когда всё по-умолчанию работало. Потом когда я её расскоментарил — она завалилась, а прописав полный путь — снова заработала. Что-то перезаписывается? Не понимаю. Теперь рестаруем. Ура! Заработал localhost и php отрабатывает корень локалхоста. Я уж было обрадовался. Но, теперь проблема N2! Отвалился путь к MySQL (https://localhost/Tools/phpMyAdmin/) блин, опять путь писать в httpd.conf, или раскоментарить php.ini библиотеку или может редактировать vhosts.conf (c:\denver\usr\local\apache\conf\vhosts.conf) Выбираем vhosts, т.к. php работает же! Денвер пишет следующее:

Not Found

The requested URL /Tools/phpMyAdmin/ was not found on this server. Подсказка Денвера:

Вы ошиблись (Я не мог ошибиться — идиоты мля 🙂 ) при наборе URL в браузере. Вероятнее всего, сервер пытается найти файл С:/denver/localhost/www/Tools/phpMyAdmin/, которого не существует.

В случае использования CGI-скриптов, корректные пути к CGI-директориям следующие:

URL Куда указывает
https://***/cgi-glob/script.cgi /home/cgi-glob/script.cgi
https://***/cgi/script.cgi /home/***/cgi/script.cgi
https://***/cgi-bin/script.cgi /home/***/cgi-bin/script.cgi

 

Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8k PHP/5.3.3 Server at localhost Port 80

Да собственно плевал я на такие подсказки! Я упёртый на такие вещи! Ну раз подсказка-то php-шная, значит всё работает? Этим всё можно только корень localhost назвать и более ничего! Верно, всё кроме правильных путей. Лезем vhosts.conf апачевский. Там всё устроено, по аналогии c .htacess (если конечно вам довадилось его редактировать ручками, особенно ReWrite engine с перенаправлениями альязов и разрешений на запуск). Выглядит внутри он так:

Listen 127.0.0.1:80
NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
# DocumentRootMatch «/home/(?!cgi-)(.*)^1/(?!cgi$|cgi-)(.*)»
# DocumentRootMatch «/home/(?!cgi-)(.*)/public_html^1»
# DocumentRootMatch «/home/(?!cgi-)(.*)/public^1»
# DocumentRootMatch «/home/(?!cgi-)(.*)^1/html/(.*)»
# DocumentRootMatch «/home/(?!cgi-)(.*)^1/domains/(?!cgi$|cgi-)(.*)»
# DocumentRootMatch «/var/www/html/(?!cgi-)~(.*)^1/(?!cgi$|cgi-)(.*)»
DocumentRoot «D:/denver/localhost/www»
ServerName «localhost»
ServerAlias «localhost» «www.localhost»
ScriptAlias /cgi/ «/home/localhost/cgi/»
ScriptAlias /cgi-bin/ «/home/localhost/cgi-bin/»
</VirtualHost>

# Host /home/webproject (1):
#Listen 127.0.0.1:80
#NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
DocumentRoot «C:/denver/webproject/administrator»
ServerName «webproject»
ServerAlias «webproject» «www.webproject»
ScriptAlias /cgi/ «/home/webproject/cgi/»
ScriptAlias /cgi-bin/ «/home/webproject/cgi-bin/»
</VirtualHost>

Но вся «балалайка» в том, что данный файл был сгенерирован автоматически. Порт слушает 80! Ок! Любые изменения,  несенные в него, потеряются после перезапуска Денвера. Если вы хотите изменить параметры какого-то отдельного хоста, вам необходимо перенести  соответствующий блок <VirtualHost> в httpd.conf (там написано, куда именно). Пожалуйста, не изменяйте этот файл. Теперь понятно — он при запуске перезаписывается! А редактировать в нашем случае надо лишь: httpd.conf Поэтому и путь от localhost до… куда нам надо — не работает! Правим его (c:\denver\usr\local\apache\conf\httpd.conf) и у нас всё должно получиться! Да ещё нужно C:\\Windows\System32\Drivers\etc\hosts на предмет перехвата нашего localhost и убедиться, что управление «передано» денверу, а не виндоуз (путь # коментраим) и пути соответствуют localhost!

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a ‘#’ symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host

# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost

127.0.0.1  putenvv

127.0.0.1  midvediff

127.0.0.1  bomber

127.0.0.1  drugers

127.0.0.1  hacking

Смотрим ещё файлы с путями. Пользуемся поиском фраз usr или localhost. Запускам после редакции снова, Start — Ура всё заработало! Скачать последнюю сборку денвера со всем «фаршем» можно тут на официальном сайте denver, но настраивать вам самим — ручками. Главное, что на ошибках учатся! И прежде чем чего-то «улучшать» нужно изучить этот вопрос целиком, как можно более полно! Удачи!