domingo, 24 de enero de 2010

Freebsd 8.x: Como instalar apache con php.

Bien vamos hacer esto que es algo comun de encontrar, apache con php.

Aqui nos vamos a ir por apache22 /usr/ports/www/apache22 y /usr/ports/lang/php5.

Para apache cuando les aparezca la pantalla de configuracion para make, elijan las opciones que crean convenientes, existen muchas que el puro nombre nos dice la funcion que van a llevar a cabo, yo en lo personal aun no veo la necesidad de usar IPv6 asi que la desmarco.

Una vez hecho esto dejamos que continue el proceso de instalacion.

Aqui necesitamos hacer 2 cosas:

1; Configurar el archivo httpd.conf.
2; Configurar rc.conf.

httpd.conf esta en? donde instala FreeBSD la configuracion de sus ports?...

/usr/local/etc/

Apache dentro de esta ruta coloca un folder con su nombre "apache22", ahi dentro encontramos todos sus archivos de configuracion.

Abrimos el httpd.conf y editamos estas opciones:

Listen 192.168.50.125:80

Aqui colocamos el IP de nuestro servidor, como podran ver ahi esta el mio.

ServerName hostname.mi dominio:80

Aqui tenemos 2 cosas, si tienen un dns y tienen esta maquina registrada adelante aqui pongan el nombre, yo uso pfsense como fw asi que el tiene esa funcion habilitada por ello la puedo usar. De lo contrario si no tiene registrado el nombre en su red, solo denlo de alta en /etc/hosts y aqui pongan su IP en vez del nombre.

Listo, ahora para que FreeBSD pueda arrancar apache cada que reiniciemos el sistema debemos dar de alta ciertos parametros en /etc/rc.conf, asi:

apache22_enable="YES"

Si abren el archivo /usr/local/etc/rc.d/apache22 van a encontrar en la cabecera mas parametros, si los conocen usenlos, de lo contrario cuando entiendan su funcion ya saben donde deben de usarlos (/etc/rc.conf).

Ya con esto podemos arrancar apache asi:

/usr/local/etc/rc.d/apache22 start

Checamos:

bsd8# sockstat -4 USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS www httpd 2516 3 tcp4 192.168.50.125:80 *:* www httpd 2515 3 tcp4 192.168.50.125:80 *:* www httpd 2514 3 tcp4 192.168.50.125:80 *:* www httpd 2513 3 tcp4 192.168.50.125:80 *:* www httpd 2512 3 tcp4 192.168.50.125:80 *:* www httpd 2511 3 tcp4 192.168.50.125:80 *:* www httpd 2510 3 tcp4 192.168.50.125:80 *:* www httpd 2509 3 tcp4 192.168.50.125:80 *:*
Ahi esta en operacion apache.

Ahora sigue php5, en los ports existe uno de nombre php5-extensions localizado en:

/usr/ports/lang/

Este fue creado para administrar todos los modulos habidos y por haber de phpx (4/5), asi que vamos sobre el.

cd /usr/ports/lang/php5-extensions
make install clean

Lo mismo que apache, cuando les aparezca el menu de opciones activen y desactiven las convenientes, esto puede tardar segun sus elecciones y ademas los ports necesarios pueden tener las propias en especial php5-gd.

Cuando el sistema llegue a la instalacion de php5, no se les vaya a pasar activar la opcion que dice:

[X] APACHE Build Apache module

De lo contrario no se compilara el modulo php para apache.

Una vez que haya terminado todo el proceso, debemos llevar a cabo ciertos pasos, nada es sencillo pero es necesario conocer como opera todo y mas cuando estan en tus manos servidores 7x24.

Ahora nos vamos de nuevo a /usr/local/etc/, ahi tenemos estos archivos:

php.conf
php.ini-recommended php --> directorio php.ini-dist
php.ini-recommended

Necesitamos el php.ini que es la configuracion general de php, para ello la vamos a sacar de php.ini-recommended.

cp
php.ini-recommended php.ini

En este archivo vamos a editar solo 1 parametro el cual nos va a permitir a nosotros codificar nuestros scripts php en la forma:

NOTA:blogger no me permite usar codigo php, ustedes saben como van.

Abran php.ini y coloquen este parametro asi:

short_open_tag = On

Salven el archivo y ahora seguimos con apache, abran de nuevo el archivo httpd.conf y vamos a agregar los siguientes parametros.

1; Busquen esta linea, aqui nos indica si php instalo el modulo para apache:

LoadModule php5_module libexec/apache22/libphp5.so

Si no existe la agregan a el final de todos los modulos aproximadamente linea 104.

2; Busquen el parametro DirectoryIndex y agreguen index.php, algo asi:

DirectoryIndex index.php index.html index.htm

Aproximadamente linea 216.

3; Ahora busquen los mime_modules ya agreguen a el final esto:

AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps

Listo, ahora necesitamos reiniciar apache y probar php. Para probar creamos un archivito de nombre test.php y lo colocamos en nuestro documentroot(/usr/local/www/apache22/data), el archivo solo debe llevar esta funcion:

phpinfo();

NOTA: Entre llaves para codigo php de favor.

Reiniciamos apache y probamos en su navegador el archivo, nos debe arrojar los modulos de php habilitados, algo asi:


Claro que esto es solo parte de la salida.

Si por alguna razon rara no les aparece esto y el navegador se queda en blanco, les recomiendo apagar apache y iniciarlo de nuevo, o sea:

/usr/local/etc/rc.d/apache22 stop
/usr/local/etc/rc.d/apache22 start

Le intentan de nuevo, si aun siguen con problemas.

Abran el log de apache(/var/log/httpd-error.log) para ver si les arroja algun error, aun no tenido errores con esto, pero si ustedes ven algo raro hagamenlo saber, el mio solo dice

[Mon Jan 25 08:11:41 2010] [notice] Apache/2.2.14 (FreeBSD) mod_ssl/2.2.14 OpenSSL/0.9.8k DAV/2 PHP/5.2.12 with Suhosin-Patch configured -- resuming normal operations

Si ustedes tiene el mismo mensaje, bueno como ultimo recurso, que no deberia pero me ha pasado, reinicien su equipo...

Saludos!!!

No hay comentarios: