Apache2 + PHP5 + MySQL5 + Perl на Windows (Часть II)
Вторая часть статьи о том, как замутить у себя на компьютере web-сервер с php, perl’ом и mysql для тестов, а возможно и как рабочий сервак под управлением Windows. В первой части я рассказал, как поставить Apache + php, это не слишком сложно, впрочем, во второй части тоже ничего сложного нет, главное следовать инструкциям и быть внимательным. Начнем.
1. Скачиваем Perl (на момент установки работала ссылка http://downloads.activestate.com/ActivePerl/Windows/5.8/ActivePerl-5.8.8.820-MSWin32-x86-274739.msi) и устанавливаем, например в С:\Program Files\Perl. После установки нужно протестить как поставилось. Для этого создаем test.pl, с содержанием
#!/usr/bin/perl
print “Content-type: text/html\n\n”;
print “OK”;
и кидаем в корень С:\, заходим в cmd (winkey +r и там cmd), далее cd C:\ и пишем perl test.pl, если видим “OK” то значит все нормально, perl работает.
2. Настройка взаимодействия Apache + Perl. Открываем httpd.conf и находим строку с AddHandler и добавляем .pl .cgi и расскоментируем строку ScriptInterpreterSource registry. Сохраняемся. По умолчанию, обрабатываются скрипты, которые лежат в “С:\Program Files\Apache Software Foundation\Apache2.2\cgi-bin\” (можно в любой момент изменить на любой другой путь, который интересует). Кидаем наш test.pl в папку cgi-bin и открываем в браузере http://localhost/cgi-bin/test.pl, если видим “OK”, значит Perl с сервером взаимодействуют нормально.
3. Настраиваем MySQL. Скачиваем MySQL-сервер (например, по ссылке http://www.mysql.ru/download/files/mysql-5.0.18-win32.zip). В процессе конфигурирования оставляем все по умолчанию, в пункте default character set выбираем кодировку cp1251 и далее задаем пароль рута. После установки появится новая служба MySQL (проверить, набрав services.msc в “Выполнить” и посмотреть список активных служб).
4. Настраиваем MySQL и проверяем взаимодействие связки. Идем в директорию, куда поставили MySQL и открываем для редактирования файл my.ini, в секцию [mysqld] добавляем
character-set-server=cp1251
collation-server=cp1251_general_ci
init-connect=”SET NAMES cp1251″
Перезапускаем службу.
5. Далее в httpd.conf добавляем директиву PHPIniDir “path_to_php”, где path_to_php – путь до папки с php. Это нужно, чтобы
Apache видел, где лежит php.ini. Еще нужно подключить для php расширения, чтобы он нормально работал с MySQL. Открываем php.ini и расскоментируем строку с extension php_mysql.dll (ну и extension php_mysqli.dll заодно). Из папки с php копируем libmysql.dll в system32.
6. Для тестирования коннекта с БД, создаем файл mysql.php с содержанием:
<?php
$dbServer=’localhost’;
$dbUser=’root’;
$dbPass=’пароль_который_задали_при_установке_mysql ‘;
$dbName=’test’;
mysql_connect(“$dbServer”, “$dbUser”, “$dbPass”, “$dbName”) or die
(“Could not connect”);
?>
кидаем его в htdocs и открываем в браузере http://localhost/mysql.php, если не появится сообщения “Could not connect”, то значит коннект с базой прошел удачно и связка работает. На этом настройка связки Apache + PHP + PERL + MySQL закончена, можно еще поставить PhpMyAdmin для управления базами через web-интерфейс, но там нету ничего сложного и ман по установке можно найти на оффсайте. Удачи!

13 сентября, 2007 в 13:20
Я только начинаю, поэтому прошу отнестись с пониманием , если вопросы глупыми покажутся. Все делал как написано, первая часть прошла без замечаний Apache и PHP в связке прошли тесты, а вот во второй части проблемы- Perl в ответ на тест пишет:
Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.
C:\Documents and Settings\Vadey>cd C:\
C:\>perl perl test.pl
Can’t open perl script “perl”: Permission denied
C:\>
т.е. я так понимаю не работатет, ну и соответственно второй тест с Perl не проходит.
и кстати в httpd.config нет строки AddHandler в чистом виде , а есть AddHandler cgi-script. cgi. и она закоментирована, просто когда такие нестыковки даже маленькие я как начинающий теряюсь, в инструкции написано что добавляем pl. и cgi. ? и получается что cgi. прописываем второй раз , та ли эта строка вообще???
Куда писать диррективу PHPIniDir “path_to_php” в httpd.config?
MySQL на тест при запросе http://Localhost/mysql.php выдал
Parse error: syntax error, unexpected T_STRING in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mysql.php on line 4
В инструкции написано , если не выдаст “Could not connect” то все нормально базы работают, но судя по на написаному наверное что -то не так.
И подскажите- обязательно включать в связку все или можно так Apache+PHP+Mysql хотелось бы на PHP пока остановиться…
Заранее благодарен! С уважением Вадим!
14 сентября, 2007 в 15:27
Хм, насчет перла. В статье благодаря тебе нашел опечатку
Было написано “perl perl test.pl”, 2 раза perl. Нужно писать “perl test.pl”, должно заработать. AddHandler в httpd.conf просто раскомментируй и добавь .pl только (если .cgi у тебя уже имеется). PHPIniDir можно кинуть в конец конфига http.conf, только путь пропиши правильный до php
Все должно работать после этого.
23 октября, 2007 в 23:14
MySQL всерно не работает… путь правильный… все правильно, но пишут такую же ошибку как описано выше…
23 октября, 2007 в 23:46
Стукнись в асю ко мне, помогу чем смогу.
24 октября, 2007 в 19:53
Помогите плиз. У меня возникла вот такая проблема с Mysql. Знач содлал это файл mysql.php захожу через браузер все как написано выше но мне выдается вот такая страница
Parse error: syntax error, unexpected T_STRING in E:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mysql.php on line 4
Как это исправить? подскажите плиз… Желательно на мыло.
26 октября, 2007 в 18:17
Спасиб я исправил долгими мучениями просто перенел php.ini в папку system32 и теперь сраницы выражены красиво. но при установки базы мускула вылезает вот это
Fatal error: Call to undefined function mysql_connect() in E:\Program Files\Apache Software Foundation\Apache2.2\htdocs\includes\database\mysql.php on line 13
подскажите что и как? плииииз
27 октября, 2007 в 0:32
Покажи файл mysql.php, по ходу связи пхп и мускула нетъ…
27 октября, 2007 в 12:38
я вот еще отрыл phpmyadmin русский и ну короч открыл его браузером через локалхост и мне написали нет связи с mysql так что точняк она но хз как исправить
6 ноября, 2007 в 10:57
Уважаемый автор забыл написать, что для работы расширения php_mysql.dll требуется библиотека libmysql.dll, т.к. эта библиотека по умолчанию идет в каталоге с PHP то ее система не находит и расширение не загружается.
Нужно libmysql.dll скопировать в Windows\System32\ и тогда все должно заработать.
6 ноября, 2007 в 20:55
Да, про него забыл. Поправил текст
9 ноября, 2007 в 10:29
все написано хорошо, но..
mysql_connect(”$dbServer”, “$dbUser”, “$dbPass”, “$dbName”) – это неверный вызов. $dbName тут ну никак не нужно и кавычки непонятно зачем.
правильно так:
mysql_connect($dbServer, $dbUser, $dbPass) or die(“Could not connect”);
mysql_select_db($dbName) or die(“Could not select database”);
9 ноября, 2007 в 15:39
Если глянуть на php.net, то можно увидеть там синтаксис, а именно по адресу http://ru2.php.net/manual/ru/function.mysql-connect.php – синтаксис функции mysql_connect. Это во-первых. Ну а во-вторых, эта конструкция была сделана лишь для проверки работоспособности связки php + mysql и усложнять её нет никакой необходимости
24 января, 2008 в 16:52
теперь здесь запоролся, perl его мать не пахает, грит мол нету у тя test.pl – раз(ет через броузер када его пытаешся выполнить), а если через cmd попробовать выполнить грит – unrecognized character \x93 in column 7 и т.д. причем волнует больше всего чтоб в броузере он не писал – The requested URL /cgi-bin/test.pl was not found on this server.
26 января, 2008 в 1:02
Не находит файл, читаем опять же внимательнее статью..
12 февраля, 2008 в 21:21
что бы php 5 работала с mysql в винде нужно в path добать
c:\php\
c:\php\ext\
а в system32 кинуть библиотеки
php_mysql.dll
libmysql.dll
21 февраля, 2008 в 9:00
Спасибо большое за статью! помогла решить проблему со связыванием пхп и mysql ^)
17 марта, 2010 в 12:30
как заставить perl крутиться при возникновении ошибок
НАДО просто проверить написание кавычек после просто копирования с этой страницы и все будет работать.
Нашел из своего опыта