PDA

Ver la Versión Completa : php y apache, ¿CGI Binary o Apache Module?


D-MO
02-06-2006, 22:43:25
Hola, hace unos 15 minutos decidi actualizar a la última versión de apache y php que tenia instaladas en mi máquina, tenia instalado un paquete que me autoconfiguraba apache, php y mysql pero no en las últimas versiones, el paquete es el msas (http://mamboxchange.com/projects/msas/).

Así que me decidi a descargar ambos (apache y php) instale apache, me leo el install.txt de php, configuro el DocumentRoot de apache y agrego las siguientes líneas al httpd.conf

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php-cgi.exe"
DirectoryIndex index.php

Con lo que instalo php como "CGI Binary".
Aclaro que he instalado esto únicamente para uso personal, probar mis códigos, etc... pero según leo en el php.ini

By using the CGI setup, your server is open to several possible
attacks. Please read our CGI security section to learn how to defend
yourself from those attacks.
por lo que, de lo poco que entiendo del Inglés veo que esto puede ser un problema de seguridad, pero pense: ¿Es esto únicamente?, ¿Mis scripts funcionarán de la misma manera si se usa una u otra forma?... así que mejor decidi a poner php como módulo de apache, y copio-pego las líneas que da el install.txt de php en el httpd.conf de apache y al ejecutar apache me muestra un mensaje de error, que no puede cargar el c:/php/php5apache2.dll, así que me ubiqué en esta carpeta para ver si existia el archivo y si, si existe, esta es la razón en sí de este hilo, además de conocer los pros/contras de una u otra forma.

Saludos.

D-MO
02-06-2006, 22:49:56
Pues habiendo pasado 2 minutos desde que abrí este hilo, ya encontré la mitad de mi duda, que es la solucion al error que me da apache al inicializarlo teniendo configurado php como módulo de este.

Se me ocurrio cambiar el nombre de el archivo "php5apache2.dll" por "php5apache.dll" ejecute apache y funciona muy bien, hice un script de prueba y tambien funcionó, así que por lo pronto lo dejaré asi, pero sigo teniendo la duda de que forma es la mejor/mas-recomendable, "CGI binary" o "Apache Module".

Saludos.

Edito:
Pues como iva a ser, por error me descargue la versión 1.3.35 de apache, era imposible que me funcionara php con un módulo para apache 2.0. Como que ando algo dormido :rolleyes:

roman
02-06-2006, 23:03:34
Lo bueno, luego de este pequeño esfuerzo, es que ahora sabes que no hay ninguna necesidad de esos paquetes-todo-incluído. Apache y MySql son pan comido y Php sólo es cuestión de leerse un rato el manual.

// Saludos

D-MO
02-06-2006, 23:12:56
Lo bueno, luego de este pequeño esfuerzo, es que ahora sabes que no hay ninguna necesidad de esos paquetes-todo-incluído. Apache y MySql son pan comido y Php sólo es cuestión de leerse un rato el manual. Pues claro, esta era una de las NECESIDADES por la que hice el "cambio", me sentia incapaz al estar utilizando un paquete de terceros, ya lo había intentado antes, pero estava mucho mas dormido que ahora y por eso no lo había logrado (hablamos de 10 meses aproximado), ahora fue cuestion de 15 minutos entre descargar, leer, copiar y pegar.

Ahora me encuentro con un pequeño problema y aprovecho este post para compartirlo, ¡No me funcionan los ficheros .htacces!, tengo uno donde al haber mensajes de error 404 "Documento No encontrado" me cargue el fichero /index.php, con el "paquete" que tenia antes me funcionaba bien, simplemente copie todo el contenido del DocumentRoot del servidor anterior y lo peque en este, pero al escribir en el navegador algo como http://localhost/fichero-que-no-existe me dice que el fichero no existe y no me carga el index.php

¿Alguien sabe si debo hacer algo mas?

dec
03-06-2006, 00:19:18
Hola,

¿Qué tienes entre la pareja de etiquetas < Directory /> en el archivo de configuración de Apache (httpd.conf)?

Creo que la directiva "AllowOverride" tiene que valer "All", o, cuando menos, nunca "None" para que los archivos ".htaccess" puedan actuar...

Vamos, me parece, no es que esté cien por cien seguro, es lo que estoy concluyendo de lo que puede leerse aquí (http://apache-server.com/tutorials/ATusing-htaccess.html) y aquí (http://www.oreilly.com/catalog/debian/chapter/book/ch12_02.html). ;)

D-MO
03-06-2006, 00:41:04
...no es que esté cien por cien seguro...Pero si que le has atinado. Problema resuelto.

Saludos.

Mick
03-06-2006, 10:38:57
No es recomendable usar php como cgi simplemente porque es muchisimo mas lento que tenerlo como modulo.

El uso cgi tiene su utilidad en determinados casos, por ejemplo si necesitamos tener instalado en el mismo servidor web php4 y php5, esto se puede hacer instalando uno como modulo y otro como CGI.

Saludos

Alexis De la Cr
05-06-2006, 22:12:06
Hola darwin Monroy. Yo estoy atorado en este punto. Creyendo hacerme mas facil la vida, instale easyphp que trae todo integrado, aparentemente funciona, pero de una forma muy lmitada. entonces desintale easyphp, baje el apache, el mysql, y php, instale los tres por separado. el problema es como hacer que trabajen juntos. Estoy leyendo lo mas que puedo, pero si tienes alguna sugerencia, sera bienvenida.

D-MO
06-06-2006, 00:18:48
ok, para mas tarde te puedo ayudar que en este momento estoy un poco ocupado pues he cambiado de lugar mi oficina;) y tengo mucho por hacer.


Saludos.

dec
06-06-2006, 01:18:55
Hola,

Creo que en lugar de tratar de entrada que Apache, PHP y MySQL trabajen juntos, tal vez te sería más sencillo poner en marca Apache, luego PHP, y luego MySQL.

Yo no soy ningún experto, ni mucho menos, pero, primero instala Apache. Asegúrate de que este funcione (tiene que servirte archivos, prueba con archivos HTML, después vendrá PHP).

Una vez tengas Apache funcionando echa un vistazo al archivo "install.txt" o "readme.txt" que viene con PHP... ahí está explicado (si no recuerdo mal) qué tienes que escribir en el archivo "httpd.conf" (configuración de Apache) para que PHP funcione.

Lo tienes explicado tanto para hacer funcionar PHP como un módulo de Apache (lo recomendado, a lo que parece) y/o para hacerlo funcionar con "CGI" (Common Gatewey Interface). Ve siguiendo los pasos y haciendo las pruebas necesarias.

En cuanto a MySQL... yo lo utilizo (igual que Apache) como un Servicio de Windows, el propio instalador de MySQL te permite configurar su funcionamiento de este modo. Quiero decir que PHP viene "de serie" preparado para interectuar con el Servidor de MySQL, así que, si el Servicio de MySQL está funcionando... no deberías tener ningún problema.

Que sí, que hay cosas que configurar (en el archivo "httpd.conf" -Apache-, en el archivo "my.in" -MySQL-, y en el archivo "php.ini", pero, tomándotelo por separado, con un poco de paciencia tendrás en marcha estos programas como para comenzar a hacer tus pinitos.

D-MO
06-06-2006, 01:57:22
...Quiero decir que PHP viene "de serie" preparado para interectuar con el Servidor de MySQL, así que, si el Servicio de MySQL está funcionando... no deberías tener ningún problema.
Totalmente cierto hasta que instales PHP 5
El soporte para MySQL no se encuentra habilitado por defecto, ni lo está la biblioteca incorporada con PHP.

Según sigo leyendo aquí (http://us3.php.net/manual/es/ref.mysql.php) y aquí (http://us3.php.net/manual/es/faq.databases.php#faq.databases.mysql.php5), hay que hacer algunas "cositas" para configurar mysql y php en la versión 5 de este último.

Saludos.

PD: Estoy feliz con mi nueva oficina :p.

dec
06-06-2006, 02:10:19
Hola,


PD: Estoy feliz con mi nueva oficina :p.


Todos nos alegramos. :D

D-MO
06-06-2006, 02:11:43
Todos nos alegramos. :DPues pasemos a la Taberna (http://www.clubdelphi.com/foros/forumdisplay.php?f=40), yo invito.

Saludos.