Gracias a xampp podemos tener un servidor web, base de datos, correo y ftp sin necesidad de instalar nada en el sistema, simplemente descomprimimos y ejecutamos.
¿Pero es posible ejecutar xampp cuando tenemos ya ejecutado Apache2, MySQL, PostgreSQL... en el sistema?
Pues la respuesta es sí, simplemente tendremos que cambiar los puertos de escucha. Por ejemplo la instancia de Apache2 en xampp como el resto de instancias de Apache2, por defecto escucha en el puerto 80. Desde los ficheros de configuración de Apache podemos modificarlo para que escuche en el puerto que nos interese (alguno que esté libre).
Usando "netstat -putan" desde la linea de comandos, podemos saber cuales son los puertos que tenemos ocupados. Para poner a escuchar un nuevo servicio, tendremos que usar uno que no estemos utilizando.
Una vez que tenemos el fichero modificado, solo nos queda un paso que nos llevó bastante tiempo encontrar. Desde el script que ejecuta xampp (/opt/lampp/lampp) se hacen comprobaciones para certificar que el servicio que se pretende levantar no esté corriendo. Una de las comprobaciones es saber si está escuchando algún servicio en el puerto donde se lanzará el servicio. El caso es que este puerto no lo coge del fichero de configuración, así que tendremos que poner el mismo puerto que pusimos en el fichero de configuración.
Por ejemplo en la sección:
"startapache")
if testrun /opt/lampp/logs/httpd.pid httpd
then
$de && echo "XAMPP: XAMPP-Apache laeuft bereits."
$de || echo "XAMPP: XAMPP-Apache is already running."
else
if testport 80then
$de && echo "XAMPP: Ein anderer Webserver laeuft bereits."
$de || echo "XAMPP: Another web server daemon is already running."
else
case `$0 phpstatus` in
5*) xampp_apachedefine="$xampp_apachedefine -DPHP5"
$de && phpextra="(und PHP5)"
$de || phpextra="(and PHP5)"
;;
4*) xampp_apachedefine="$xampp_apachedefine -DPHP4"
$de && phpextra="(und PHP4)"
$de || phpextra="(and PHP4)"
;;
esac
if test -f $lc/startssl
then
if testport 443
then
$de && echo "XAMPP: Ein anderer Webserver mit SSL laeuft bereits."
$de || echo "XAMPP: Another web server daemon with SSL is already running."
else
$de && echo "XAMPP: Starte Apache mit SSL $phpextra..."
$de || echo "XAMPP: Starting Apache with SSL $phpextra..."
/opt/lampp/bin/apachectl -k start -DSSL $xampp_apachedefine > /dev/null 2> /opt/lampp/logs/apachestart.log
fi
else
$de && echo "XAMPP: Starte Apache..."
$de || echo "XAMPP: Starting Apache..."
/opt/lampp/bin/apachectl -k start $xampp_apachedefine > /dev/null 2> /opt/lampp/logs/apachestart.log
fi
error=$?
if test $error -gt 0
then
$de && echo "XAMPP: ${bon}Fehler $error beim Starten vom Apache!${boff}"
$de || echo "XAMPP: ${bon}Error $error! Couldn't start Apache!${boff}"
/opt/lampp/share/lampp/diagnose apache
fi
fi
fi
;;
Sustituiremos en "if testport 80" el 80 por el puerto donde hemos configurado Apache para que escuche.
Excelente, me funciono gracias.
ResponderEliminarSetinux
Muy buenas, estoy haciendo una tikiwiki en los momentos occiosos del trabajo. Para ello estoy usando el Xampp.
ResponderEliminarEl problema que tengo es que estoy usando el Bea Weblogic que me lee del puerto 80 y eso es inamovible.
He conseguido configurar el Xampp para que tire del puerto 8080 y así puedo trabajar con ambas cosas.
El problema viene cuando el resto de usuarios intentan acceder a mi maquina (que podian correctamente con el puerto 80) no consiguen acceder con el puerto 8080.
¿Alguien sabe algo de esto?
He modificado los archivos del Xampp:
httpd-xampp.conf (configurar el puerto de escucha)
httpd-vhosts.conf -> puertos virtuales (tener los proyectos donde te apetezca no dentro de /xampp)
No encuentro el archivo lampp que aqui se sugiere al arrancar.
Un saludo.
http://josemanuelruizbaena.blogspot.com/2008/01/host-virtuales-xampp.html
ResponderEliminarAhí te dejo un enlace de host virtuales de Apache en XAMPP. Teóricamente solo tendrías que modificar donde poner 80 por 8080 y tendrías un HostVirtual de Apache en XAMPP escuchando peticiones en el puerto 8080.
Sería una cosa así.
< VirtualHost *:8080 >
ServerAdmin [mail del administrador]
DocumentRoot /opt/lampp/htdocs/[nombre de mi directorio]/
ServerName [nombre del subdominio ej:MiSubdominio.MiDominio.com blog.josemanuelruizbaena.com]
ErrorLog logs/blog.josemanuelruizbaena.com-error_log
CustomLog logs/blog.josemanuelruizbaena.com-access_log common
< / VirtualHost >
Si no recuerdo mal en algún servidor lo tenía hecho incluso haciendo un proxy inverso.