Apache fastcgi (Español)
From ArchWiki
| i18n |
|---|
| English |
| Español |
El objetivo de este "how-to" es configurar Apache para que utilice un módulo fastcgi externo.
--cactus 19:35, 9 Sep 2005 (EDT)
Contents |
[edit] Requisitos
Tendrá que satisfacer todos los requisitos antes de poder correr Apache con fastcgi. Estos requisitos son:
- apache
- fcgi
- mod_fastcgi
[edit] Instalación
[edit] Para satisfacer los requisitos
Instale apache con pacman.
$ pacman -Sy fcgi apache
[edit] Descargue mod_fastcgi
$ wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz
[edit] Desempaquete mod_fastcgi
$ tar -xzf mod_fastcgi-2.4.2.tar.gz $ cd mod_fastcgi-2.4.2
[edit] Modifique algunos archivos
$ cp Makefile.AP2 Makefile
Ahora tiene que editar el Makefile:
builddir = .
top_dir = /home/httpd
top_srcdir = ${top_dir}
top_builddir = ${top_dir}
include ${top_builddir}/build/special.mk
APXS = apxs
APACHECTL = apachectl
#DEFS=-Dmy_define=my_value
INCLUDES=-I/usr/include/apache
LIBS=-L/usr/lib/apache/
all: local-shared-build
install: install-modules-yes
clean:
-rm -f *.o *.lo *.slo *.la
Ahora tiene que aplicar un parche a fcgi.h para solventar el problema de renombrado de la nueva API:
$ patch -Np0 -i fcgi.patch
fcgi.patch :
--- fcgi.h.orig 2003-02-04 00:07:37.000000000 +0100 +++ fcgi.h 2005-12-07 21:05:55.000000000 +0100 @@ -73,6 +73,36 @@ #define ap_reset_timeout(a) #define ap_unblock_alarms() +/* starting with apache 2.2 the backward-compatibility defines for + * 1.3 APIs are not available anymore. Define them ourselves here. + */ +#ifndef ap_copy_table + +#define ap_copy_table apr_table_copy +#define ap_cpystrn apr_cpystrn +#define ap_destroy_pool apr_pool_destroy +#define ap_isspace apr_isspace +#define ap_make_array apr_array_make +#define ap_make_table apr_table_make +#define ap_null_cleanup apr_pool_cleanup_null +#define ap_palloc apr_palloc +#define ap_pcalloc apr_pcalloc +#define ap_psprintf apr_psprintf +#define ap_pstrcat apr_pstrcat +#define ap_pstrdup apr_pstrdup +#define ap_pstrndup apr_pstrndup +#define ap_push_array apr_array_push +#define ap_register_cleanup apr_pool_cleanup_register +#define ap_snprintf apr_snprintf +#define ap_table_add apr_table_add +#define ap_table_do apr_table_do +#define ap_table_get apr_table_get +#define ap_table_set apr_table_set +#define ap_table_setn apr_table_setn +#define ap_table_unset apr_table_unset + +#endif /* defined(ap_copy_table) */ + #if (defined(HAVE_WRITEV) && !HAVE_WRITEV && !defined(NO_WRITEV)) || defined WIN32 #define NO_WRITEV #endif
[edit] Construya mod_fastcgi
$ make < become root > $ make install
[edit] Configuración
Ahora tiene que cargar el módulo fastcgi.
Edite su archivo httpd.conf de Apache. Para lograr que arranque añada lo siguiente:
LoadModule fastcgi_module lib/apache/mod_fastcgi.so <IfModule mod_fastcgi.c> AddHandler fastcgi-script .fcgi </IfModule>
Esto se ocupará de cualquier archivo con extensión .fcgi; recuerde que son de aplicación las restricciones estándar de cgi, los archivos deben estar enmarcados en un "ExecCGI enabled" o situados en directorio de guiones para ser ejecutados.
Si está utilizando php fastcgi puede modificar el archivo httpd.conf de la siguiente manera:
LoadModule fastcgi_module lib/apache/mod_fastcgi.so <IfModule mod_fastcgi.c> ## Example for php fastcgi ### <Location /php-fcgi/> Options ExecCGI SetHandler fastcgi-script </Location> FastCGIExternalServer /php-fcgi/phpfcgi -host 127.0.0.1:9000 AddType application/x-httpd-fastphp .php .cphp .php4 .php5 Action application/x-httpd-fastphp /php-fcgi/phpfcgi </IfModule>
De esta manera todos los archivos que terminan en .php, .cphp, .php5, o .php4, deberián ser reenviados al manejador del servidor fcgi.
[edit] Más
Esta guía no cubre actualmente la configuración de de los procesos externos generados con anterioridad. Para ver ejemplos de esto, visite los siguientes enlaces:
Lighttpd_For_Both_SSL_And_Non-SSL
Fastcgi_and_lighttpd
Para conseguir que compile mod_fastcgi si está utilizando Apache 2.2.2 debe aplicar el parche que se detalla a continuación: http://fastcgi.com/archives/fastcgi-developers/2005-December/004060.html