viernes, 1 de agosto de 2008

Reconfiguración de Apache

Por motivos del SVN y otras cosas tuve que volver a instalar Apache para agregar unos módulos que no venían por defecto y dejarlos como librerías compartidas .so. Aquí no hay nada nuevo, sólo recordatorios por si algún día los necesito y se me olvida.

Bueno, mi configuración de PHP:

./configure
--prefix=/mnt/NekroLinux/Tjener/PHP
--with-apxs2=/usr/local/apache2/bin/apxs
--enable-force-cgi-redirect
--enable-discard-path
--enable-fastcgi
--enable-calendar
--enable-ftp
--with-mysql-dir=/usr/local/mysql
--with-zlib-dir=‎/usr/lib/libz.so.1.2.'


Nota: Sería bueno crear un enlace simbólico en el directorio de instalación por defecto y linkearlo con la carpeta de Tjener.

Nota2: Es la página que despliega <?php phpinfo(); ?> así que se puede obtener cuando se desee.


configure de Apache (alias httpd):

./configure --prefix=/usr/local/apache2 --with-dav --enable-dav --enable-dav-fs --with-included-apr --enable-mods-shared='dav ssl' --enable-ssl

Nota: En el directorio /build dentro de la carpeta de residencia de Apache (donde se instaló, NO el source) está el script config.nice que tiene estos datos.

Nota:
--with-dav --enable-dav --enable-dav-fs es para instalar WebDAV.
--with-included-apr fuerza a que se sobreescriban las librerías apr (creo que también apu) si es que ya existen; ideal para hacer upgrades.
--enable-mods-shared='dav dav_fs ssl'Hace que los módulos module_dav, module_dav_fs y module_ssl se compilen como librerías compartidas para ser cargados con LoadModule, guardados en el subdirectorio /modules
--enable-ssl habilita protocolo SSL. El mismo configure se encarga de buscar un cliente SSL que por defecto es OpenSSL en Linux, si no lo llega a encontrar se especifica con ---with-ssl=DIR

Nota: En la página de Apache existe un apartado describiendo los parámetros del configure. >Click aquí<


Actualmente Apache no me está dando problemas, simplemente ./configure && make && make install y lo tenemos funcionando de vuelta con los módulos nuevos.




Modificar estado del servidor.

Hay que estar logueado como root de lo contrario tirará este error:

(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs


El binario para controlar el estado es apachectl y usualmente se encuentra en APACHEDIR/bin, si la carpeta por defecto existe (sea como directorio o enlace simbólico) la ruta puede ser /usr/local/apache2/bin/ para localizar al apachectl.

De cualquier forma es necesario hacer un cd hasta la ubicación y luego lanzar el binario. Se puede evitar eso haciendo un enlace simbólico en /usr/bin o /usr/local/bin (preferentemente la última) así:

cd /usr/local/bin
ln -s DIRECTORIODELAPACHE/bin/apachectl


como root. De esta forma lo único que hay que hacer es invocar apachectl desde cualquier lugar sin necesidad de pasarse a su respectivo directorio.

El simple programa despliega el mensaje de ayuda explicando sus parámetros; para controlar el estado del servidor hay que lanzarlo dependiendo de lo que se quiera hacer:

Iniciar Servidor - apachectl -k start
Detener Servidor - apachectl -k stop
Reiniciar Servidor - apachectl -k restart

Existen otras opciones para detenerlo o reiniciarlo de forma segura (graceful) para que avise a otros programas que lo usen que se va a detener/reiniciar. Usar apachectl --help y Google para enterarse.

Sin embargo algo que he visto es que la -k le es indiferente al programa, puesto que apachectl start/stop/restart hacen bien su trabajo y son los que estoy usando ahora.




Hice otro recordatorio como este pero para mySQL: Recordatorios.

TEST234890342890234

Negrita
Itálica
Subrayado
Strike
Todas LOL