mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-24 10:02:29 +01:00
network/mod_fcgid: Initial import
This commit is contained in:
parent
2cc630e38f
commit
4c82c26e60
6 changed files with 264 additions and 0 deletions
53
network/mod_fcgid/README
Normal file
53
network/mod_fcgid/README
Normal file
|
@ -0,0 +1,53 @@
|
|||
mod_fcgid is alternative FastCGI module for apache 2.x
|
||||
(note that "old and proven" mod_fastcgi doesn't work at all with apache 2.2)
|
||||
|
||||
With mod_fcgid apache controls spawned FastCGI processes (as oposed to "external"
|
||||
FastCGI servers).
|
||||
|
||||
Some features:
|
||||
- Binary compatibility to mod_fastcgi
|
||||
- Strict control on process spawn
|
||||
- Simple spawning-speed control strategy
|
||||
- Fastcgi server error detection
|
||||
|
||||
Before running this script, you must have apache2 installed.
|
||||
Download and build apache2 build script from http://slackbuilds.org
|
||||
|
||||
To use it, add the following line to your httpd.conf file:
|
||||
Include /etc/apache2/extra/httpd-fcgid.conf
|
||||
|
||||
Sample SuEXEC php wrapper script:
|
||||
#!/bin/sh
|
||||
#
|
||||
# sample PHP FastCGI wrapper
|
||||
PHPRC="/etc" # directory which contains php.ini
|
||||
PHP_FCGI_CHILDREN=4
|
||||
PHP_FCGI_MAX_REQUESTS=250
|
||||
export PHPRC PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS
|
||||
exec /usr/bin/php-cgi
|
||||
|
||||
and apropriate vhost config:
|
||||
|
||||
# VirtualHost with SuExec and FastCGI PHP
|
||||
<VirtualHost *:80>
|
||||
# note: apache user should be member of 'vhost_group'
|
||||
SuexecUserGroup vhost_user vhost_group
|
||||
|
||||
ServerAdmin webmaster@vhost.example.com
|
||||
DocumentRoot /var/www/vhosts/vhost.example.com/htdocs
|
||||
ServerName vhost.example.com
|
||||
ServerAlias www.vhost.example.com
|
||||
ErrorLog /var/log/apache2/vhost.example.com-error_log
|
||||
CustomLog /var/log/apache2/vhost.example.com-access_log common
|
||||
|
||||
# note: chmod /var/www/vhosts/vhost.example.com to 0750
|
||||
<Directory /var/www/vhosts/vhost.example.com/htdocs>
|
||||
Options ExecCGI
|
||||
FCGIWrapper /var/www/vhosts/vhost.example.com/cgi-bin/php-wrapper .php
|
||||
DirectoryIndex index.html index.php
|
||||
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
</Directory>
|
||||
</VirtualHost>
|
15
network/mod_fcgid/doinst.sh
Normal file
15
network/mod_fcgid/doinst.sh
Normal file
|
@ -0,0 +1,15 @@
|
|||
#!/bin/sh
|
||||
|
||||
copy_config() {
|
||||
NEW="$1"
|
||||
OLD="`dirname $NEW`/`basename $NEW .new`"
|
||||
# If there's no config file by that name, mv it over:
|
||||
if [ ! -r $OLD ]; then
|
||||
mv $NEW $OLD
|
||||
elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
|
||||
rm $NEW
|
||||
fi
|
||||
# Otherwise, we leave the .new copy for the admin to consider...
|
||||
}
|
||||
|
||||
copy_config etc/apache2/extra/httpd-fcgid.conf.new
|
114
network/mod_fcgid/httpd-fcgid.conf
Normal file
114
network/mod_fcgid/httpd-fcgid.conf
Normal file
|
@ -0,0 +1,114 @@
|
|||
# Module and stuff
|
||||
LoadModule fcgid_module libexec/apache2/mod_fcgid.so
|
||||
|
||||
<IfModule mod_fcgid.c>
|
||||
|
||||
# IdleTimeout n (300 seconds)
|
||||
# An idle fastcgi application will be terminated after IdleTimeout seconds.
|
||||
IdleTimeout 600
|
||||
|
||||
# IdleScanInterval n (120 seconds)
|
||||
# The scan interval for idle fastcgi applications.
|
||||
IdleScanInterval 240
|
||||
|
||||
# BusyTimeout n (300 seconds)
|
||||
# A fastcgi application will be terminated if handing a single request
|
||||
# longer than busy timeout.
|
||||
BusyTimeout 300
|
||||
|
||||
# BusyScanInterval n (120 seconds)
|
||||
# The scan interval for busy timeout fastcgi applications.
|
||||
BusyScanInterval 120
|
||||
|
||||
# ErrorScanInterval n (3 seconds)
|
||||
# The scan interval for exit pending fastcgi applications. fastcgi
|
||||
# applications will be terminated within this scanning.
|
||||
ErrorScanInterval 6
|
||||
|
||||
# ZombieScanInterval n (3 seconds)
|
||||
# The scan interval for zombie process.
|
||||
ZombieScanInterval 6
|
||||
|
||||
# ProcessLifeTime n (3600 seconds)
|
||||
# A fastcgi application will be terminated if lifetime expired,
|
||||
# even no error is detected.
|
||||
ProcessLifeTime 3600
|
||||
|
||||
# SocketPath path (logs/fcgidsock)
|
||||
# The directory to put the UNIX domain socket. (UNIX only)
|
||||
# This directory should be writable only by apache user
|
||||
SocketPath /var/run/apache2/fcgid/fcgidsock
|
||||
|
||||
#SharememPath path (logs/fcgid_shm)
|
||||
#The share memory file path. (UNIX only) (version >= 2.1 only)
|
||||
SharememPath /var/run/apache2/fcgid/fcgid_shm
|
||||
|
||||
# SpawnScoreUpLimit n (10)
|
||||
# The spawn-speed control score up water limit. Score increases while
|
||||
# a process is spawned or terminated, and decreases as time progresses;
|
||||
# while the score is higher than SpawnScoreUpLimit, the spawning will be
|
||||
# held for a while. The higher this number is, the higher speed of the
|
||||
# spawning can be.
|
||||
SpawnScoreUpLimit 10
|
||||
|
||||
# SpawnScore n (1)
|
||||
# The weight of spawning. This weight will be plused to the spawn-control
|
||||
# score on every spawn. The higher this number is, the lower speed of
|
||||
# spawning can be.
|
||||
SpawnScore 1
|
||||
|
||||
# TerminationScore n (2)
|
||||
# The weight of termination. This weight will be plused to the score while
|
||||
# fastcgi process terminates. The higher this number is, the lower speed
|
||||
# of spawning can be.
|
||||
TerminationScore 2
|
||||
|
||||
# MaxProcessCount n (1000)
|
||||
# The max count of total fastcgi process count.
|
||||
MaxProcessCount 256
|
||||
|
||||
# DefaultMaxClassProcessCount n (100)
|
||||
# The maximum number of fastcgi application instances allowed to run for
|
||||
# particular one fastcgi application.
|
||||
DefaultMaxClassProcessCount 64
|
||||
|
||||
# DefaultMinClassProcessCount n (3)
|
||||
# The minimum number of fastcgi application instances for any one fastcgi
|
||||
# application.
|
||||
# Idle fastcgi will not be killed if their count is less than n
|
||||
# Set this to 0, and tweak IdleTimeout
|
||||
DefaultMinClassProcessCount 0
|
||||
|
||||
# DefaultInitEnv env_name env_value
|
||||
# The default environment variables before a fastcgi application
|
||||
# is spawned. You can set this configuration more than once.
|
||||
|
||||
|
||||
# IPCConnectTimeout n (3 seconds)
|
||||
# The connect timeout to a fastcgi application.
|
||||
IPCConnectTimeout 6
|
||||
|
||||
# IPCCommTimeout n (20 seconds)
|
||||
# The communication timeout to a fastcgi application. Please increase this
|
||||
# value if your CGI have a slow initialization or slow respond.
|
||||
IPCCommTimeout 40
|
||||
|
||||
# OutputBufferSize n (64k bytes)
|
||||
# CGI output cache buffer size.
|
||||
|
||||
# PHP_Fix_Pathinfo_Enable n(n=0/1, default 0)
|
||||
# If you are using PHP and set cgi.fix_pathinfo=1 in php.ini, set PHP_Fix_Pathinfo_Enable 1.
|
||||
# From php.ini:
|
||||
# cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's
|
||||
# previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
|
||||
# what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting
|
||||
# this to 1 will cause PHP CGI to fix it's paths to conform to the spec. A setting
|
||||
# of zero causes PHP to behave as before. Default is zero. You should fix your scripts
|
||||
# to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
|
||||
# cgi.fix_pathinfo=1
|
||||
#PHP_Fix_Pathinfo_Enable 1
|
||||
|
||||
AddHandler fcgid-script .php
|
||||
AddHandler fcgid-script .fcgi
|
||||
|
||||
</IfModule>
|
63
network/mod_fcgid/mod_fcgid.SlackBuild
Normal file
63
network/mod_fcgid/mod_fcgid.SlackBuild
Normal file
|
@ -0,0 +1,63 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Slackware build for mod_fcgid (to be used with Apache 2.2)
|
||||
# Version: 2.1.0 Date: 2007-02-27
|
||||
# Copyright (c) 2007 Adis Nezirovic.<adis _at_ linux.org.ba>
|
||||
# Licensed under GNU GPL v2
|
||||
|
||||
# Slightly modified by the slackbuild project
|
||||
set -e
|
||||
|
||||
|
||||
PRGNAM=mod_fcgid
|
||||
VERSION=2.1
|
||||
# CFLAGS are hardcoded in /usr/lib/apr-1.2.x/build-1/apr_rules.mk
|
||||
# and ARCH should reflect that, so don't change it ;-)
|
||||
ARCH=${ARCH:-i486}
|
||||
BUILD=${BUILD:-1}
|
||||
TAG=${TAG:-_SBo}
|
||||
CWD=$(pwd)
|
||||
TMP=${TMP:-/tmp/SBo}
|
||||
PKG=$TMP/package-$PRGNAM
|
||||
OUTPUT=${OUTPUT:-/tmp}
|
||||
|
||||
# Other important variables
|
||||
APACHE2_PREFIX=usr
|
||||
APACHE2_LIBEXEC=usr/libexec/apache2
|
||||
APACHE2_ETC=etc/apache2
|
||||
APACHE2_VAR_RUN=var/run/apache2
|
||||
|
||||
rm -rf $TMP/$PRGNAM.$VERSION $PKG
|
||||
mkdir -p $TMP $PKG $OUTPUT
|
||||
mkdir -p $PKG/{$APACHE2_LIBEXEC,$APACHE2_ETC/extra,$APACHE2_ETC/original/extra,$APACHE2_VAR_RUN}
|
||||
|
||||
cd $TMP
|
||||
tar xzvf $CWD/$PRGNAM.$VERSION.tar.gz
|
||||
cd $TMP/$PRGNAM.$VERSION
|
||||
chmod -R a-s,u+w,go+r-w .
|
||||
chown -R root:root .
|
||||
|
||||
make top_dir=/$APACHE2_PREFIX top_builddir=/$APACHE2_LIBEXEC top_srcdir=/$APACHE2_LIBEXEC || exit 1
|
||||
# make install spams the root partition, this is cleaner :-)
|
||||
/$APACHE2_LIBEXEC/build/instdso.sh SH_LIBTOOL=libtool $PRGNAM.la $PKG/$APACHE2_LIBEXEC || exit 1
|
||||
|
||||
( cd $PKG
|
||||
find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
|
||||
find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
|
||||
)
|
||||
|
||||
## mod_fcgid writes socket to this directory
|
||||
mkdir -p $PKG/$APACHE2_VAR_RUN/fcgid/fcgidsock
|
||||
chown -R apache2:apache2 $PKG/$APACHE2_VAR_RUN/fcgid
|
||||
chmod -R 700 $PKG/$APACHE2_VAR_RUN/fcgid
|
||||
|
||||
## mod_fcgid config
|
||||
cat $CWD/httpd-fcgid.conf > $PKG/$APACHE2_ETC/extra/httpd-fcgid.conf.new
|
||||
cat $CWD/httpd-fcgid.conf > $PKG/$APACHE2_ETC/original/extra/httpd-fcgid.conf
|
||||
|
||||
mkdir -p $PKG/install
|
||||
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||
cat $CWD/doinst.sh > $PKG/install/doinst.sh
|
||||
|
||||
cd $PKG
|
||||
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz
|
8
network/mod_fcgid/mod_fcgid.info
Normal file
8
network/mod_fcgid/mod_fcgid.info
Normal file
|
@ -0,0 +1,8 @@
|
|||
PRGNAM="mod_fcgid"
|
||||
VERSION="2.1"
|
||||
HOMEPAGE="http://fastcgi.coremail.cn"
|
||||
DOWNLOAD="http://dl.sourceforge.net/mod-fcgid/mod_fcgid.2.1.tar.gz"
|
||||
MD5SUM="0bc036276e378463c80617ff57e853dc"
|
||||
MAINTAINER="Adis Nezirovic"
|
||||
EMAIL="adis _at_ linux.org.ba"
|
||||
APPROVED="BP{k}"
|
11
network/mod_fcgid/slack-desc
Normal file
11
network/mod_fcgid/slack-desc
Normal file
|
@ -0,0 +1,11 @@
|
|||
mod_fcgid: mod_fcgid
|
||||
mod_fcgid:
|
||||
mod_fcgid: mod_fcgid is alternative FastCGI module for apache 2.x
|
||||
mod_fcgid: "old and proven" mod_fastcgi doesn't work at all with apache 2.2
|
||||
mod_fcgid: It is binary compatibility to mod_fastcgi, and has interesting
|
||||
mod_fcgid: process spawning strategy.
|
||||
mod_fcgid:
|
||||
mod_fcgid: Home page: http://fastcgi.coremail.cn for more info.
|
||||
mod_fcgid:
|
||||
mod_fcgid:
|
||||
mod_fcgid:
|
Loading…
Reference in a new issue