Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: определить: php установлен как модуль апач, или как CGI ?
Форумы портала PHP.SU » » Вопросы новичков » определить: php установлен как модуль апач, или как CGI ?

Страниц (1): [1]
 

1. dadli - 28 Февраля, 2012 - 14:54:14 - перейти к сообщению
приветствую, две вопрос:
1) как определить: php установлен как модуль апач, или как CGI ?
настолко понял, если первие три символ, из резyлтата функции php_sapi_name() => cgi, то php установлен как CGI. иначе как модул апач. ето так?
2) если пхп установлен как модул, то в етом случае на каком язике будит написан CGI програма? на перл-е?
2. EuGen - 28 Февраля, 2012 - 15:13:04 - перейти к сообщению
1. Не совсем так, но есть список, который будет возвращаться этой функцией - по нему можно определить, cgi это или нет (разумеется, если скрипт исполняется под управлением веб-сервера, а не, скажем, через консоль) - список можно увидеть здесь:
http://ru2.php.net/manual/en/fun...hp-sapi-name.php

2. Вы, вероятно, не правильно понимаете смысл CGI. CGI=Common Gateway Interface, то есть шлюз между интерпретатором и веб-сервером, тогда как модуль непосредственно загружается как библиотека в приложение (процесс) самого веб-сервера. По сути, это разные способы организации, однако язык всегда будет PHP
3. dadli - 28 Февраля, 2012 - 15:34:14 - перейти к сообщению
EuGen
1) список в каком случае будит? со мнои вернёт строки, то есть на домашном компютере установлен мне денвер, и там етот функця вернёт: "apache2handler", а есть еше реални "бесплатни" хостинг и там вернёт "cgi".
2) понятно.

еше один вопрос: что лучшее, когда пхп установлен как модул или когда пхп CGI ?
4. EuGen - 28 Февраля, 2012 - 16:11:04 - перейти к сообщению
1. Если вернулся cgi - значит, php 100% установлен как cgi
2. У каждого способа свои преимущества, однако я рекомендую устанавливать как модуль веб-сервера.
CGI плох в основном тем, что каждый раз веб-сервер взаимодействует с исполняемым файлом php; тот, в свою очередь, загружает(перечитывает) php.ini, все свои модули (такие как php_mysql, php_mbstring и т.п.) - то есть много накладной работы каждый раз. Это, правда, может рассматриваться и как преимущество - ведь для изменения параметров PHP достаточно изменить php.ini и веб-сервер уже не нужно перезапускать, т.к. при следующем исполнении скрипта php.ini перечитается. Однако если важна скорость, то загрузка php как модуля веб-сервера дает преимущество.
5. dadli - 28 Февраля, 2012 - 16:33:04 - перейти к сообщению
EuGen
понятно, спасибо болшое Улыбка
6. DeepVarvar - 29 Февраля, 2012 - 11:05:36 - перейти к сообщению
EuGen, для полной картины можно упомянуть еще и FastCGI, когда интерпретатор, один раз запустившись ждет когда ему "дадут работу", и не выгружается из памяти, присутствую там в виде демона слушающего порт/сокет.
Естественно после изменения php.ini перезапускать нужно, но не апач, а сам php.

(могу ошибаться в конкретиках, но смысл передал)

 

Powered by ExBB FM 1.0 RC1