Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > HTTP сервера > Установка php5 на Apache2.0 (win32)


Автор: Altermann 14.08.04, 07:28
Где есть нормальное описание, как установить php5(4) на Apache2.0, работающего под win2000

Автор: Argentum 14.08.04, 07:56
Вообще есть в папке с PHP: файлик install.txt - это описание установки пхп на различные сервера(на английском языке). Приведены описания установки PHP под Apache как модуль и как CGI binary.

Добавлено в :
А вообще:

В дире апачи есть конфиг: hhttpd.conf
Правишь его, добавляя строки:

Код:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     
    LoadModule php5_module c:/php5/php5apache2.dll
    #AddModule mod_php5.c
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .phtml


Затем из дистриба ПХП копируешь php5ts.dll и копируешь в папку /bin куда установлен апаче, и в winnt/system32 на всякий случай. ;)
Это для пхп5!!!
Также в строке DocumentRoot прописываешь локальный путь к корню сайта. Всё! :D

Автор: troll 16.08.04, 12:09
А где вообще взять эти установочные файлы для PHP под APACHE??

Автор: tserega 16.08.04, 12:19
www.php.net - разве тут нет?

Автор: troll 16.08.04, 13:12
Цитата tserega @ 16.08.04, 15:19
www.php.net - разве тут нет?

Ну первый раз я в PHP...
и нашел все что нужно... просто с постом поспешил.. сорьки, больше не буду

Добавлено в :
Это кусок из моего hhttpd.conf
(прописал после установки PHP5)

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, in addition to the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
#
#Listen 12.34.56.78:80
Listen 80

LoadModule php5_module c:/php5/php5apache2.dll
#AddModule mod_php5.c
AddType application/x-httpd-php .php
AddType application/x-httpd-php .phtml

постоле того как прописал эту бодягу - скопировал в %apachedir%\bin и %systemroot%\system32 файл php5ts.dll, но при старте сервера он(сервер) говорит мне, что "request operation failed"...

че делать??

Автор: Trustmaster 16.08.04, 14:06
А php5apache2.dll ты туда же скопировал?

Автор: troll 16.08.04, 14:25
вообще не трогал! потомучто:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    LoadModule php5_module c:/php5/php5apache2.dll

Автор: Trustmaster 16.08.04, 14:51
Лучше скопируй. Причем все расширения тоже неплохо туда скопировать. А еще очень внимательно с php.ini - в четвертой и пятой версиях они разные.

У меня, когда ставил PHP, было то же самое. Когда наконец-то поставил, то обнаружилось, что php5 вылетает с ошибкой:
Цитата
Обнаружена Ошибка!
Приложение будет закрыто.
Обратитесь к разработчикам. Отправить отчет: Да, Нет

Поэтому пришлось вернуться к PHP4.

Автор: troll 16.08.04, 15:08
Ну хорошо хоть так!
А уменя вообще непонятно че творится, толи я httpd.conf неправильно поредактировал, толи фиг знает, кстати, даже если закоментировать записи которые добавил после установки PHP, то сервер все равно не стартует.. Сейчас попробую откатиться на 4 версию

Автор: Trustmaster 16.08.04, 15:13
Только осторожно с php.ini, как я уже говорил, в четвертой и пятой версиях они разные.

Автор: troll 16.08.04, 15:32
Цитата
Лучше скопируй. Причем все расширения тоже неплохо туда скопировать. А еще очень внимательно с php.ini - в четвертой и пятой версиях они разные.


А кстати, что такое расширение и еще всякие там библиотеки для работы с БД с флеш и т.д., как они называются как и где их подключать, как узнать какие функции содержатся в библиотеке?

Автор: Trustmaster 16.08.04, 18:00
Расширения находятся в папке:
Папка PHP/extensions, подключаются в php.ini, например:
Цитата
;Windows Extensions
;Note that MySQL and ODBC support is now built in, so no dll is needed for it.
;
extension=php_bz2.dll
extension=php_cpdf.dll
extension=php_crack.dll
extension=php_curl.dll
extension=php_db.dll
extension=php_dba.dll
extension=php_dbase.dll
extension=php_dbx.dll
extension=php_domxml.dll
extension=php_exif.dll
extension=php_fdf.dll
extension=php_filepro.dll
extension=php_gd2.dll
;extension=php_gettext.dll
extension=php_hyperwave.dll
extension=php_iconv.dll
;extension=php_ifx.dll
;extension=php_iisfunc.dll
extension=php_imap.dll
;extension=php_interbase.dll
extension=php_java.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_mssql.dll
;extension=php_msql.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_oracle.dll
extension=php_pdf.dll
;extension=php_pgsql.dll
;extension=php_printer.dll
extension=php_shmop.dll
extension=php_snmp.dll
extension=php_sockets.dll
;extension=php_sybase_ct.dll
extension=php_w32api.dll
extension=php_xmlrpc.dll
;extension=php_xslt.dll
extension=php_yaz.dll
extension=php_zip.dll

А вот про функции надо читать в PHP Manual'е (PHP Manual Online)

Автор: troll 18.08.04, 10:07
Ну вроде сдвинулось дело немножко!
Только блин вместо желаемого результата на странице получаю следующее:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    Security Alert! The PHP CGI cannot be accessed directly.
    This PHP CGI binary was compiled with force-cgi-redirect enabled. This means that a page will only be served up if the REDIRECT_STATUS CGI variable is set, e.g. via an Apache Action directive.
     
    For more information as to why this behaviour exists, see the manual page for CGI security.
     
    For more information about changing this behaviour or re-enabling this webserver, consult the installation file that came with this distribution, or visit the manual page.


вызываю ссылку: http://localhost/cgi-bin/test.php

содержимое файла со скриптом:

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    #! C:/web/php/php.exe
    <? Echo "Если вы это читаете значит все работает"; phpinfo();?>


Может еще че-нить порешаем?? а?

Автор: tserega 18.08.04, 10:14
Первая строчка не нужна (так это похоже на запуск CGI).

Автор: troll 18.08.04, 10:21
Цитата tserega @ 18.08.04, 13:14
Первая строчка не нужна (так это похоже на запуск CGI).

Если я убираю эту строчку, то получаю на страницу следующее:

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     
    Server error!
    Error message:
    C:/web/apache/cgi-bin/test.php is not executable; ensure interpreted scripts have "#!" first line
    If you think this is a server error, please contact the webmaster
    Error 500
    127.0.0.1
    08/18/04 14:11:13
    Apache/2.0.35 (Win32)

Автор: tserega 18.08.04, 11:37
Что-то я не въезжаю :wacko:
Как надо запускать, чтобы работал PHP: как модуль, как CGI или все равно как?
Если как модуль, то проверь, есть ли в httpd.conf строки
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    ScriptAlias /php/ "c:/web/php5/"
    Action application/x-httpd-php /php/php.exe

Если нет, то добавть (по крайней мере, для Apache 1.x без них не работало...)


ЗЫ: что-то я сам начинаю путаться. Уж не запуск через CGI это? :wall:

Автор: troll 18.08.04, 11:43
Угу, у меня написанно вот-так:

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     
    ScriptAlias /_php/ "C:/web/php/"
    Action application/x-httpd-php "/_php/php.exe"


_php(алиас) - чтобы не запутаться в папках

Добавлено в :
Может, если исспользуешь Apache, то скинешь мне свой httpd.conf c подключенным php??

Добавлено в :
<b>Начнем сначала</b>
Делал так:

Цитата

1) Открываем http.conf.
2) Ищем строку #AddType application/x-httpd-php php и заменяем ее на AddType application/x-httpd-php php. В результате этого мы присвоили всем файлам с расширением php тип application/x-httpd-php.
3) После выполнения пункта 2 здесь же добавьте следующее:
— ScriptAlias /_php/ "C:/ваш_путь_к_php/" (например, C:/usr/php)
— Action application/x-httpd-php "/_php/php.exe"
Этим мы, во-первых, создаем синоним _php для директории с процессором PHP, чтобы Apache мог получить к нему доступ, а во-вторых, связываем все файлы с типом application/x-httpd-php с обработчиком php.exe.
Следует отметить: строка "_php" взята из такого расчета, чтобы она в будущем не конфликтовала с именами директорий, которые вы можете сделать на Вашем хосте.
4) Сохраняем внесенные изменения.
5) Открываем файл mime.types в той же директории.
6) Ищем там строку application/x-httpd-php3 phtml, если она есть — хорошо, если ее нет, то просто добавляем ее в любом месте.
7) Этим основная настройка закончилась.

Протестируем работоспособность PHP4. Для этого создаем файл test.php с таким содержанием <? Echo "Если вы это читаете значит все работает"; phpinfo();?>. Запускаем файл и смотрим, что там получилось.


Соответсвенно нифига не получилось, в чем трабл

Автор: tserega 18.08.04, 12:41
Вроде все правильно.
Может, дурацкий вопрос, но Apache после внесенных изменений перезапускал?

Цитата
Может, если исспользуешь Apache, то скинешь мне свой httpd.conf c подключенным php??

В аттаче

Кстати, все dll-ки из PHP перекинул ко всем системным (в windows\system32 или куда-то еще)?

Автор: troll 18.08.04, 13:40
По всему диску библы раскидал...
ладно.. сегодня на это пора забить, а завтра утром с чистым сердцем продолжить.... возможно есть смысл перегрузить машину или перейти на другую машину...

А веб-сервер перегружал после каждого изменения и все равно нифига не получилось.... просто эпопея какая-то! :angry:

Автор: Trustmaster 18.08.04, 18:41
Могу пожертвовать свои httpd.conf и php.ini (Apache 2.0.49, PHP 4.3.7).

Автор: tserega 19.08.04, 10:02
Да, кстати, еще одно замечание: не запускай php-скрипты из cgi-bin. Не по-php-шному это :no:

Автор: troll 19.08.04, 10:53
Цитата tserega @ 19.08.04, 13:02
Да, кстати, еще одно замечание: не запускай php-скрипты из cgi-bin. Не по-php-шному это :no:

Именно оттуда и запускал...
а что оттуда php-скрипт работать не будет?

Автор: troll 19.08.04, 11:00
Уррррррррррраааааа! заработало!!!!!

только помимо нужной мне строки я вижу еще такую страницу (zip в аттаче)

Автор: Trustmaster 19.08.04, 12:06
Это результат вызова функции phpinfo(). А в чем беда?

Автор: troll 19.08.04, 12:34
Цитата Trustmaster @ 19.08.04, 15:06
Это результат вызова функции phpinfo(). А в чем беда?

Блин, опять извиняюсь..

Братва пасибо.... до встречи....

.... позже начну подключать MySQL :D

И исчо маленький вопросик: сейчас, скрипт, котрый я вызываю лежит в апаче в папке htdocs, и оттуда этот скрипт и вызвался и заработал и т.д.... а какого фига он не запускался из папки... cgi-bin???

Автор: Trustmaster 19.08.04, 13:00
Папка cgi-bin предназначена для бинарных программ и CGI сценариев на языке Perl. PHP-интерпретатор, установленный в виде модуля работает в папке htdocs.

Вообще, cgi-bin - особая папка. Оттуда не будут скачиваться файлы, и сервер не даст вам просмотреть содержимое папки. Она предназначена только для CGI программ. В то же время, CGI бинарники не будут работать в htdocs.

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)