El objetivo de ejecutar dos servidores web en la misma máquina es que podamos tener nuestro servidor web habitual corriendo con el usuario www-data, y un servidor web aparte para asterisk, corriendo bajo el usuario asterisk.
Para ello crearemos en una localización distinta a la habitual, los ficheros de configuración de apache, y luego ejecutaremos el demonio especificándole que use los ficheros de configuración nuevos
Para simplificar la tarea, usaremos los ficheros de configuración de nuestro actual apache, sitos en /etc/apache2 en el caso de debian. Hacemos una copia de esta carpeta en otra ubicación, por ejemplo en /etc/apache2_asterisk. Posteriormente reemplazaremos las lÃneas que contengan /etc/apache2/ por /etc/apache2_asterisk/. Además cambiaremos el nombre del fichero de pid, por /var/run/apache2_asterisk.pid.
Debemos crear un virtualhost para asterisk que escuche en un puerto que no esté en uso por el otro apache. En mi caso usé el 888 con SSL
Por último crearemos un script de inicio, con el siguiente contenido para ejecutar el servidor web de asterisk:
#! /bin/sh -e case "$1" in start) echo -e "Starting asterisk http server:" apache2ctl -d /etc/apache2_asterisk/ -f /etc/apache2_asterisk/apache2.conf -k start ;; stop) echo -e "Stopping asterisk http server:" apache2ctl -d /etc/apache2_asterisk/ -f /etc/apache2_asterisk/apache2.conf -k stop ;; restart) $0 stop sleep 1 $0 start ;; *) echo "Usage: /etc/init.d/$0 {start|stop|restart}" exit 1 esac exit 0 |
Podemos crear un proxy en nuestro apache normal, para acceder a freepbx a través de un puerto estándar. Ello se consigue con un virtualhost que tenga el siguiente contenido: |
<VirtualHost *:443> ServerAdmin webmaster@localhost ServerName asterisk.local.gadelek.com ProxyPass / https://asterisk.local.gadelek.com:888/ SSLProxyEngine on <Proxy https://asterisk.local.gadelek.com:888/> Order Deny,Allow Allow from all </Proxy> SSLEngine On SSLCertificateFile /etc/ssl/certs/asterisk.local.gadelek.com.pem SSLCertificateKeyFile /etc/ssl/private/asterisk.local.gadelek.com.key SSLCACertificateFile /etc/ssl/certs/myownca.pem </VirtualHost> |
No debemos olvidarnos de activar el módulo proxy de apache, y si fuera necesario los submódulos
//proxy.load LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so |