URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 5408
[ Назад ]

Исходное сообщение
"PHP & FastCGI"

Отправлено alexvs , 09-Дек-07 03:19 
Необходимо ли вносить какие-то изменения в php скрипт для запуска его под fastcgi + Apache?
С PHP практически не знаком, но мне необходимо увеличить производительность одного сервиса, написанного на php под Апачом.

На Perl писал скрипт работающий под fastcgi, он компилился единожды и жил "вечно", в цикле ожидал запрос и обрабатывал его: while(my $req=new CGI::Fast) { process_request(); }. Но что-то подобного в PHP не могу найти.


Содержание

Сообщения в этом обсуждении
"PHP & FastCGI"
Отправлено CSX , 10-Дек-07 09:58 
>Необходимо ли вносить какие-то изменения в php скрипт для запуска его под
>fastcgi + Apache?
>С PHP практически не знаком, но мне необходимо увеличить производительность одного сервиса,
>написанного на php под Апачом.
>
>На Perl писал скрипт работающий под fastcgi, он компилился единожды и жил
>"вечно", в цикле ожидал запрос и обрабатывал его: while(my $req=new CGI::Fast)
>{ process_request(); }. Но что-то подобного в PHP не могу найти.
>

Нет, в коде ничего менять не нужно.


"PHP & FastCGI"
Отправлено alexvs , 10-Дек-07 12:47 
>[оверквотинг удален]
>>fastcgi + Apache?
>>С PHP практически не знаком, но мне необходимо увеличить производительность одного сервиса,
>>написанного на php под Апачом.
>>
>>На Perl писал скрипт работающий под fastcgi, он компилился единожды и жил
>>"вечно", в цикле ожидал запрос и обрабатывал его: while(my $req=new CGI::Fast)
>>{ process_request(); }. Но что-то подобного в PHP не могу найти.
>>
>
>Нет, в коде ничего менять не нужно.

Тогда в чём отличие от использования eacelerator'a, кроме большей безопасности?


"PHP & FastCGI"
Отправлено CSX , 10-Дек-07 13:10 
>>>
>>
>>Нет, в коде ничего менять не нужно.
>
>Тогда в чём отличие от использования eacelerator'a, кроме большей безопасности?

Ваш вопрос прямо ставит меня в тупик =) Это совершенно разные технологии... В чем отличие между файерволлом и mod_access ?

Кстати, php через  fcgi вполне может работать с eaccelerator'ом...


"PHP & FastCGI"
Отправлено alexvs , 10-Дек-07 15:21 
>>>Нет, в коде ничего менять не нужно.
>>
>>Тогда в чём отличие от использования eacelerator'a, кроме большей безопасности?
>
>Ваш вопрос прямо ставит меня в тупик =) Это совершенно разные технологии...
>В чем отличие между файерволлом и mod_access ?
>
>Кстати, php через  fcgi вполне может работать с eaccelerator'ом...

Ну, в perl под fastcgi я мог инициализировать глобальные переменные, соединения с базой и другими сервисами единожды и использовать для все всех запросов без переопределения. Получал значительный выигрыш в производительности. Но для достижения этого вносились изменения в обычный cgi-script. А как php + fastcgi это разруливыает, как узнаёт что я хочу использовать повторно при следующем соединения, а что нет?



"PHP & FastCGI"
Отправлено alexvs , 11-Дек-07 11:41 
?

"PHP & FastCGI"
Отправлено anonim , 17-Дек-07 03:28 
>[оверквотинг удален]
>>В чем отличие между файерволлом и mod_access ?
>>
>>Кстати, php через  fcgi вполне может работать с eaccelerator'ом...
>
>Ну, в perl под fastcgi я мог инициализировать глобальные переменные, соединения с
>базой и другими сервисами единожды и использовать для все всех запросов
>без переопределения. Получал значительный выигрыш в производительности. Но для достижения этого
>вносились изменения в обычный cgi-script. А как php + fastcgi это
>разруливыает, как узнаёт что я хочу использовать повторно при следующем соединения,
>а что нет?

http://ru2.php.net/manual/ru/function.mysql-pconnect.php


"PHP & FastCGI"
Отправлено angra , 17-Дек-07 05:34 
>http://ru2.php.net/manual/ru/function.mysql-pconnect.php

Чем поможет, скажем, при инициализации шаблонов из текстовых файлов? pconnect не из этой оперы и предназначен скорее для mod_php, чем для fcgi



"PHP & FastCGI"
Отправлено alexvs , 17-Дек-07 13:49 
>http://ru2.php.net/manual/ru/function.mysql-pconnect.php

Во первых, это уже изменение кода, а выше утверждалось что в этом нет необходимости.
Во вторых, это частный случай. Допустим у меня есть соединения (socket) с другими сервисами или  использование внешних фидов (xml, txt), которые можно б было единожды инициализировать (загрузить) и больше не тратится на это.

На перле это б выглядело так:
#!/usr/bin/perl
use strict;
use warnings;
use perl 5.8.8;

use CGI::Fast;

my $data = Load_Big_Hash();

while(my $req=new CGI::Fast) { main(); }

sub main {
  print "OK" if(exists($data->{$ENV{QUERY_STRING}}));
}

А на PHP?


"PHP & FastCGI"
Отправлено alexvs , 12-Дек-07 14:43 
>Ваш вопрос прямо ставит меня в тупик =) Это совершенно разные технологии...
>В чем отличие между файерволлом и mod_access ?

С помощью файерволла и mod_access можно управлять доступом к системе/сайту, но на разном уровне. Имеют как общие возможности (ограничить доступ по IP), так и разные (mod_access - доступ по логин/пароль, файерволла - шейп, ограничение количества конектов, размер и тип пакета ....).

А если сравнивать fcgi и eaccelerator для PHP, то принципиальной разницы не вижу: оба оптимизируют/ускоряют работу скриптов, в обоих случаях не нужно модифицировать код, а значит не возможности тонкого управления процессом оптимизации.