apache2.2.10+mod_fastcgi+php-fpm

12 3
Zaqwr
На сайте с 08.08.2007
Offline
111
5763

Вот такую обезьянку пробую завести на

Linux c1 2.6.27-gentoo-r7-c-2 #1 SMP Sun Jan 11 18:39:51 MSK 2009 i686 Intel(R) Pentium(R) D CPU 3.00GHz GenuineIntel GNU/Linux

/usr/sbin/apache2 -V

Server version: Apache/2.2.10 (Unix)

Server built: Jan 12 2009 16:20:43

Server's Module Magic Number: 20051115:18

Server loaded: APR 1.3.3, APR-Util 1.3.4

Compiled using: APR 1.3.3, APR-Util 1.3.4

Architecture: 32-bit

Server MPM: Prefork

threaded: no

forked: yes (variable process count)

Server compiled with....

-D APACHE_MPM_DIR="server/mpm/prefork"

-D APR_HAS_SENDFILE

-D APR_HAS_MMAP

-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)

-D APR_USE_SYSVSEM_SERIALIZE

-D APR_USE_PTHREAD_SERIALIZE

-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT

-D APR_HAS_OTHER_CHILD

-D AP_HAVE_RELIABLE_PIPED_LOGS

-D DYNAMIC_MODULE_LIMIT=128

-D HTTPD_ROOT="/usr"

-D SUEXEC_BIN="/usr/sbin/suexec"

-D DEFAULT_PIDLOG="/var/run/httpd.pid"

-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"

-D DEFAULT_LOCKFILE="/var/run/accept.lock"

-D DEFAULT_ERRORLOG="logs/error_log"

-D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"

-D SERVER_CONFIG_FILE="/etc/apache2/httpd.conf"

/usr/bin/php-cgi -v

PHP 5.2.8-pl1-gentoo with Suhosin-Patch 0.9.6.3 (cgi-fcgi) (built: Jan 12 2009 14:47:31)

Copyright (c) 1997-2008 The PHP Group

Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies

/usr/bin/php -v

PHP 5.2.8-pl1-gentoo with Suhosin-Patch 0.9.6.3 (cli) (built: Jan 12 2009 14:43:41)

Copyright (c) 1997-2008 The PHP Group

Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies

with Suhosin v0.9.27, Copyright (c) 2007, by SektionEins GmbH

20_mod_fastcgi.conf

<IfDefine FASTCGI>

LoadModule fastcgi_module modules/mod_fastcgi.so

#AddHandler fastcgi-script fcg fcgi fpl

AddHandler fastcgi-script .fcg .fcgi .fpl .php

</IfDefine>

vhost.conf

<VirtualHost *:80>

.....

<IfModule mod_fastcgi.c>

# FastCgiExternalServer /var/www/public_html -host 127.0.0.1:9000

FastCgiExternalServer /var/www/public_html -socket /tmp/php-fpm.sock

</IfModule>

DirectoryIndex index.htm index.html index.php

</VirtualHost>

в планах посмотреть как и что под разными пользователям вирт-хостов...

упёрся в вот что, картинки и все фалй отличный от html получаю как Сontent-Type text/html, а должно быть к примеру application/x-bzip2 и т..д.. тоесть у меня всё что в /var/www/public_html/*.* заворачивается через fastcgi ?

ну и вот что в броузере

Parse error: syntax error, unexpected ',' in /var/www/public_html/download/2032.zip on line 2460

Администрирование, Linux, Cisco, Juniper
V
На сайте с 25.07.2006
Offline
128
#1

С таким конфигом ничего кроме .fcg .fcgi .fpl .php в fastcgi не обрабатывается.

Каждый mime-тип должен быть описан в конфиге апача отдельно строкой вида.

AddType application/x-gzip .gz .tgz

Если это не сделать, он будет отдаваться с заголовком согласно директивы DefaultType.

Погуглив типа "AddType application bz" легко можно найти список директив AddType для большинства распространенных расширений.

Приватный linux-администратор
Zaqwr
На сайте с 08.08.2007
Offline
111
#2
vapetrov:
С таким конфигом ничего кроме .fcg .fcgi .fpl .php в fastcgi не обрабатывается.

wget........logo-2.gif

Length: unspecified [text/html]

Saving to: `logo-2.gif'

запускаем апач без fascgi

Length: 1891 (1.8K) [image/gif]

если в php.ini поменять default_mimetype = "text/html" к примеру на text/plain то всё отдаётся в text/plain и картинки и архивы все файлы

в мод mod_mime.conf есть и AddType image/gif .gif и AddType application/x-bzip2 .bz2 и всё остальное

и кстати server-info и server-ststus = No input file specified. всё упирается в FastCgiExternalServer стоит его убрать из виртуалхоста сразу всё работает, за исключением php разумеется

и ещё вот что свидетельствует о том, что всё заворачивается в fcgi No such file or directory: FastCGI: stat() of "/var/www/public_html/robots.txt" failed

Roxis
На сайте с 19.11.2006
Offline
40
#3

Для начала настройте простой php-cgi

AddHandler php-cgi .php

Action php-cgi /cgi-bin/php.cgi

AddHandler cgi-script .cgi

И только после того, как он заработает, беритесь за fastcgi.

AddHandler php-fastcgi .php

Action php-fastcgi /cgi-bin/php.cgi

AddHandler fastcgi-script .cgi

FastCgiExternalServer /home/user/document_root/cgi-bin/php.cgi -socket /tmp/php.sock

Zaqwr
На сайте с 08.08.2007
Offline
111
#4
Roxis:
Для начала настройте простой php-cgi

настроил, работает.

Roxis:
Action php-fastcgi /cgi-bin/php.cgi

из чего следует что все php-fastcgi обрабатывать /cgi-bin/php.cgi

как следствие процесс (/usr/bin/php-cgi /var/www/cgi-bin/php-cgi) при запуски php скриптов

и после

/etc/init.d/php-fpm stop

* Stopping PHP FastCGI server ...

php продолжает успешно работать значит не работает php-fpm, ну и ещё вопросик FastCgiExternalServer не должен существовать в файловой системе, вы же мне указываете, как я понимаю на существующий файл.

..парадокс если указанный в FastCgiExternalServer не существует всё работает через /usr/bin/php-cgi, если существует то через FastCgiExternalServer , тоесть через php-fpm...

Roxis
На сайте с 19.11.2006
Offline
40
#5

приведите полную конфигурацию

Zaqwr
На сайте с 08.08.2007
Offline
111
#6

cat 20_mod_fastcgi.conf

<IfDefine FASTCGI>

LoadModule fastcgi_module modules/mod_fastcgi.so

AddHandler php-fastcgi .php

Action php-fastcgi /cgi-bin/php-cgi

</IfDefine>

cat 01_vhost.conf

<VirtualHost *:80>

ServerName vhost

ServerAlias vhost

SuexecUserGroup vhost vhost

DocumentRoot "/var/www/public_html"

CustomLog /var/log/apache2/vhost.access.log combined

ErrorLog /var/log/apache2/vhost.error.log

ScriptAlias /cgi-bin/ /var/www/cgi-bin/

<IfModule mod_fastcgi.c>

FastCgiExternalServer /var/www/cgi-bin/php-cgi -socket /tmp/php-fpm-vhost.sock

</IfModule>

DirectoryIndex index.htm index.html index.php

</VirtualHost>

всё работает, мне только непонятно почему

The FastCgiExternalServer directive defines filename as an external FastCGI application. If filename does not begin with a slash (/) then it is assumed to be relative to the ServerRoot. The filename does not have to exist in the local filesystem. URIs that Apache resolves to this filename will be handled by this external FastCGI application.
Хелпзонович
На сайте с 15.06.2005
Offline
133
#7

Глупость сморозил

Вы там держитесь! Хорошего вам настроения. Здоровья.
Roxis
На сайте с 19.11.2006
Offline
40
#8

Я бы перевёл как: файл не обязан существовать.

Не имеет значения, есть ли файл /var/www/cgi-bin/php-cgi или нет.

Zaqwr
На сайте с 08.08.2007
Offline
111
#9

но указывать он должен именно туда, куда и Action , всем спасибо, разобрался.

RAS
На сайте с 27.11.2005
Offline
126
RAS
#10

а вот зачем fpm патч на пхп под схему с mod_fastcgi ?

Администрируем сервера, впс, вдс. Ускоряем загрузку сайтов - DLE, Word Press, Joomla, Modx... Настраиваем безопасность. Ручная чистка rootkit/malware/вирусов. (/ru/forum/867860) Разработка - shell/bash/sh/python/perl.
12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий