Установка PHP как FastCGI

Opik

Новичок
Установка PHP как FastCGI

PHP+FastCGI

Устанвливал PHP по комментарию в мануале:
http://www.php.net/manual/ru/install.unix.commandline.php (2-ой коммент.)
Компилировал так:
./configure --with-mysql=.4]# /usr/include/mysql \
--enable-inline-optimization --with-openssl=/usr/local/ssl \
--with-ttf --enable-gd-native-ttf --enable-gd-imgstrttf --enable-mbstring --with-png-dir=/usr \
--with-gif-dir=/usr --with-zlib --with-freetype-dir=/usr \
--with-config-file-path=/usr/local/etc --with-gd --with-jpeg-dir=/usr --with-curl=/usr \
--with-xml --enable-ftp --with-dom \
--with-memcache=/usr/local/bin/memcached \
--enable-memory-limit --enable-force-cgi-redirect \
--enable-track-vars --with-pcre-regex --without-sqlite \
--without-mm --enable-fastcgi
В httpd.conf:
ScriptAlias /fcgi-bin/ /var/www/fcgi-bin/
<Location /fcgi-bin/>
Options ExecCGI
SetHandler fastcgi-script
</Location>
FastCgiExternalServer /fcgi-bin/phpfcgi -host domain.com:8080
AddType application/x-httpd-fastphp .fphp
Action application/x-httpd-fastphp /fcgi-bin/phpfcgi

Появляется вопрос.. где лежит файл phpfcgi ? и откуда его вообще брать? по доке, он должен появляется если стоит опция --enable-fastcgi но его нигде нету. и правильно ли вообще я устанавливаю php как FastCGI? Или ошибка в конфиге?
 

tony2001

TeaM PHPClub
не знаю почему ты "ставишь по комментарию", если есть мануал.
нет никакого phpfcgi, есть только php и лежит он в php-src/sapi/cgi/ или куда ты там сделал make install.

>--with-memcache=/usr/local/bin/memcached \
смешная опция.
где ты такое взял?
 

Opik

Новичок
В доке (который в архиве) пхп написано:
Now, we'll create a fcgi-bin directory, just like you would do with normal
CGI scripts. You'll need to create a directory somewhere to store your
FastCGI binaries. We'll use /space/fcgi-bin/ for this example. Remember to
copy the FastCGI-PHP binary in there. (named 'php-cgi') This sets up
php to run under mod_fastcgi as a dynamic server.

но нет этогоф файла, юзали поиск... до этого стоял mod_php
 

Разгильдяй

Новичок
Тони, что ты хочешь этим сказать?
Мы перерыли весь гугл, но ничего конкретного не смогли найти. Опыта в установке PHP как FastCGI тоже нет. Поэтому если можно, разъясни пожалуйста что куда нужно копировать и
В httpd.conf:
ScriptAlias /fcgi-bin/ /var/www/fcgi-bin/
<Location /fcgi-bin/>
Options ExecCGI
SetHandler fastcgi-script
</Location>
FastCgiExternalServer /fcgi-bin/phpfcgi -host domain.com:8080
AddType application/x-httpd-fastphp .fphp
Action application/x-httpd-fastphp /fcgi-bin/phpfcgi

какие тут ошибки?

with-memcache=/usr/local/bin/memcached
эта опция при сборке пхп не нужна?

-~{}~ 16.08.05 15:46:

есть только php и лежит он в php-src/sapi/cgi/php
файл нашел, что с ним нужно сделать?
 

Opik

Новичок
Копировать в ScriptAlias /fcgi-bin/ /var/www/fcgi-bin/

-~{}~ 16.08.05 16:50:

не знаю почему ты "ставишь по комментарию", если есть мануал.
Может я плохо искал, но в мануале про FastCGI не нашел.
Если только это http://www.php.net/manual/ru/features.commandline.php
 

tony2001

TeaM PHPClub
>эта опция при сборке пхп не нужна?
такой опции и нет, я уже поправил мануал, это моя опечатка была.
и уж точно вам она не нужна, если вы не ставите с memcache.

>файл нашел, что с ним нужно сделать?

вот это именно и сделать:
>Копировать в ScriptAlias /fcgi-bin/ /var/www/fcgi-bin/
 

Разгильдяй

Новичок
Автор оригинала: tony2001
>эта опция при сборке пхп не нужна?
такой опции и нет, я уже поправил мануал, это моя опечатка была.
и уж точно вам она не нужна, если вы не ставите с memcache.
будет ли работать memcache с FastCGI?
 

tony2001

TeaM PHPClub
будет, конечно.
99.99% процентов модулей никак не зависит от Server API.
 

Opik

Новичок
При установке апача:
]# make install
Installing PHP SAPI module: apache
[activating module `php5' in /usr/local/apache/conf/httpd.conf]
cp libs/libphp5.so /usr/local/apache/libexec/libphp5.so
cp: cannot stat `libs/libphp5.so': No such file or directory
apxs:Break: Command failed with rc=1
make: *** [install-sapi] Error 1

Нужно ли указывать? Когда пхп стоит как FastCGI
--activate-module=src/modules/php5/libphp5.a
 

tony2001

TeaM PHPClub
я не понимаю: а что вы делаете?
так вы МОДУЛЬ статически вкомпиливается в Апач или FASTCGI собираете (отдельный бинарник)?
вы хоть для себя определитесь.
 

Разгильдяй

Новичок
Автор оригинала: tony2001
я не понимаю: а что вы делаете?
так вы МОДУЛЬ статически вкомпиливается в Апач или FASTCGI собираете (отдельный бинарник)?
вы хоть для себя определитесь.
Собираем FastCGI как отдельный бинарник.

-~{}~ 16.08.05 18:11:

Автор оригинала: tony2001
я не понимаю: а что вы делаете?
так вы МОДУЛЬ статически вкомпиливается в Апач или FASTCGI собираете (отдельный бинарник)?
вы хоть для себя определитесь.
[activating module `php5' in /usr/local/apache/conf/httpd.conf]

а почему он пытается это сделать?

Опции для сборки апача:

./configure \
--prefix=/usr/local/apache --enable-module=so --enable-module=rewrite \
--enable-shared=rewrite --disable-module=userdir \
--activate-module=src/modules/extra/mod_geoip.c --enable-module=vhost_alias \
--activate-module=src/modules/extra/mod_deflate.o

Опции для сборки ПХП:

./configure --with-mysql=.4]# /usr/include/mysql \
--enable-inline-optimization --with-openssl=/usr/local/ssl \
--with-ttf --enable-gd-native-ttf --enable-gd-imgstrttf --enable-mbstring --with-png-dir=/usr \
--with-gif-dir=/usr --with-zlib --with-freetype-dir=/usr \
--with-config-file-path=/usr/local/etc --with-gd --with-jpeg-dir=/usr --with-curl=/usr \
--with-xml --enable-ftp --with-dom \
--with-apxs=/usr/local/apache/bin/apxs \
--enable-memory-limit --enable-force-cgi-redirect \
--enable-track-vars --with-pcre-regex --without-sqlite \
--without-mm --enable-fastcgi

что я не так делаю?
 

tony2001

TeaM PHPClub
>--with-apxs=/usr/local/apache/bin/apxs \
это - сборка динамического модуля.

> --enable-fastcgi
а это - флаг для CGI, чтобы CGI собрался как FastCGI.

никаких --with-apache/--with-apxs для CGI/FastCGI не надо.
CGI и FastCGI в оригинале вообще про апач не знают - это сторонние бинарники для него.
 

Разгильдяй

Новичок
Понял, спасибо. Просто собираю первый раз, хочется сделать не просто тупо как в мануале написано, а еще знать и понимать почему так надо делать и для чего.
Убрал все заработало, а самое главное теперь знаю как и почему!
 
Сверху