Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:


Руководство по установке PHP4 и PHP5 на одну машин

Поиск:
Установка PHP4/PHP5 под Windows на сервер Apache 1.3.xx

Внимание!
Не рекомендуется использовать PHP с сервером Apache 2.00.xx.
Используйте Apache 1.3.x


Данная инструкция предполагает установку на диск C в директорию www. Если устанавливаете в другую директорию, не забудьте поменять пути, прописанные в инструкции так.

Скачиваем необходимые дистрибьютивы:
(Нам нужны бинарники для Win32)
Apache (Качать Apache 1.3.xx! Не соблазняйтесь на Apache 2.00.xx, если не хотите иметь проблемм с эксплуатацией сервера.)
PHP4/PHP5


Создаем директорию c:\www
В ней размещаем два Apache:
c:\www\Apache\ApachePHP4
c:\www\Apache\ApachePHP5

Два Апача необходимо для того, чтобы на одном компьютере использовать одновременно как PHP4, так и PHP5. На один Apache поставить два модуля PHP проблемматично, поэтому мы ставим два Апача и не забиваем себе голову (благо, в большинстве своем, ресурсы компьютера позволяют сделать это). Дополнительно по этой теме читаем здесь.
Чтобы не настраивать в каждом конфиг файле обоих Apache виртуальные хосты, создаем директорию для размещения конфигурационных файлов, в которую мы положим файл настройки виртуальных хостов:
c:\www\Apache\ApacheConf
Файл настройки виртуальных хостов мы положим туда позже.

PHP размещаем в
c:\www\PHP\PHP4
c:\www\PHP\PHP5


В httpd.conf каждого Апача (c:\www\Apache\ApachePHPX\conf\httpd.conf) раскомментируем строки:
LoadModule vhost_alias_module modules/mod_vhost_alias.so
AddModule mod_vhost_alias.c

Это позволит нам использовать модуль mod_vhost_alias, позволяющий просто и удобно использовать и администрировать очень большое количество web-сайтов.
Там же добавляем строки:
Для ApachePHP4:
LoadModule php4_module /www/PHP/PHP4/sapi/php4apache.dll
AddModule mod_php4.c

Для ApachePHP5:
LoadModule php5_module c:/www/PHP/PHP5/php5apache.dll
AddModule mod_php5.c

Эти строки устанавливают PHP как модуль.
Примечание: Если вы пренебрегаете советами и используете Apache 2.00.xx, поменяйте phpXapache.dll на phpXapache2.dll

Устанавливаем Port 80 в httpd.conf Apache PHP4, и Port 85 httpd.conf Apache PHP 5.

В конец каждого файла httpd.conf дописываем строку:
Include c:/www/Apache/ApacheConf/vHosts.conf
Эта строка загружает файл с настройками виртуальных хостов.

vHosts.conf содержит в себе настройки виртуальных хостов:
Цитата
NameVirtualHost 127.0.0.1

<VirtualHost 127.0.0.1>

    ServerName somehost.tld
    ServerAdmin webmaster@somehost.tld

    <Directory />
        Options Indexes Includes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
   
    <IfModule mod_dir.c>
        DirectoryIndex index.php index.php3 index.php4 index.php5 index.phtml index.html index.htm
    </IfModule>
   
    UseCanonicalName Off

    VirtualDocumentRoot c:/www/Home/%-1/%-2
    VirtualScriptAlias  c:/www/Home/%-1/%-2/cgi-bin

    <IfModule mod_alias.c>
        ScriptAlias /cgi-bin/ "c:/www/Home/cgi-bin/"
    </IfModule>

    <Directory "c:/www/Home/cgi-bin/">
        AllowOverride None
        Options ExecCGI
    </Directory>

    <IfModule mod_mime.c>
        AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
        AddType application/x-httpd-php-source .phps
        AddHandler cgi-script .cgi .pl .bat .exe
    </IfModule>

    AddDefaultCharset windows-1251
</VirtualHost>

<VirtualHost _default_:*>

    ServerName somehost.tld
    ServerAdmin webmaster@somehost.tld

    <Directory />
        Options Indexes Includes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
   
    <IfModule mod_dir.c>
        DirectoryIndex index.php index.php3 index.php4 index.php5 index.phtml index.html index.htm
    </IfModule>

    UseCanonicalName On
    DocumentRoot c:/www/Home/htdocs

    <IfModule mod_alias.c>
        ScriptAlias /cgi-bin/ "c:/www/Home/cgi-bin/"
    </IfModule>

    <Directory "c:/www/Home/cgi-bin/">
        AllowOverride None
        Options ExecCGI
    </Directory>

    <IfModule mod_mime.c>
        AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
        AddType application/x-httpd-php-source .phps
    </IfModule>

    AddDefaultCharset windows-1251
</VirtualHost>

Теперь, при обращении
http://somehost.tld/index.php
Апач ищет путь
c:\www\Home\tld\somehost\index.php
и если находит, отдает соответствующий файл, если не находит, генерирует код ошибки 404.
Примечание: Если вы используете отличный от представленного здесь путь установки, не забудьте поменять его в Directory, DocumentRoot, VirtualDocumentRoot, VirtualScriptAlias, ScriptAlias.

В обе директории с Apache из соответствующих директорий с PHP кидаем php.ini и необходимые для работы либы, как то:
php4ts.dll (php5ts.dll)
libmysql.dll
iconv.dll (для PHP4)


Не забываем в php.ini для PHP5 раскомментировать строку extension=php_mysql.dll для поддержки MySQL.

Запускаем оба Апача как сервисы:
c:\www\Apache\ApachePHP4\apache.exe -i -n "Apache PHP4" -D PHP4
c:\www\Apache\ApachePHP5\apache.exe -i -n "Apache PHP5" -D PHP5

Теперь по 80-му порту нас слушает Апач с PHP4, а на 85 порту нас слушает Апач с PHP5.

В файле hosts, который размещается в Win9x в директории c:\Windows, а в WinXP в директории C:\WINDOWS\system32\drivers\etc прописываем таблицу хостов, типа:
Цитата
127.0.0.1    somehost1.tld
127.0.0.1    somehost2.tld
127.0.0.1    somehost3.tld
...
127.0.0.1    somehostN.tld

Создаем домашние директории:
c:\www\Home\tld\somehost1
c:\www\Home\tld\somehost2
c:\www\Home\tld\somehost3
...
c:\www\Home\tld\somehostN


Размещаем там свои сценарии, и используем:
http://somehostN.tld/index.php - PHP4
http://somehostN.tld:85/index.php - PHP5

Так же можно создать директорию:
c:\www\Home\htdocs
она не будет видна локально, но будет видна из вне по IP вашей машины.
Автор: arial
Сайт: http://






Просмотров: 6190

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную