Servidor web · 6 min read · Dec 17, 2025
El Servidor Perfecto - OpenSUSE 11.4 x86_64 [ISPConfig 2] - Página 5
11 Apache/PHP5/Ruby/Python/WebDAV
Ahora instalamos Apache con PHP5:
yast2 -i apache2 apache2-devel apache2-mod_perl apache2-mod_php5 apache2-prefork perl-HTML-Parser perl-HTML-Tagset perl-Tie-IxHash perl-URI perl-libwww-perl php5 php5-devel zlib zlib-develLuego instalamos algunos módulos de PHP5:
yast2 -i php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-mysql php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm ImageMagick curlA continuación editamos /etc/apache2/httpd.conf:
vi /etc/apache2/httpd.confy cambiamos DirectoryIndex a
| [...] DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php5 index.php4 index.php3 index.pl index.html.var index.aspx default.aspx [...] |
Habilitamos el módulo de reescritura de Apache:
a2enmod rewrite Editamos /etc/sysconfig/apache2 y agregamos SSL a la línea APACHE_SERVER_FLAGS:
vi /etc/sysconfig/apache2| [...] APACHE_SERVER_FLAGS="SSL" [...] |
Ahora configura tu sistema para iniciar Apache al arrancar:
chkconfig -f --add apache2Luego ejecuta
SuSEconfig
/etc/init.d/apache2 start
11.1 Deshabilitar PHP y Perl Globalmente
(Si no planeas instalar ISPConfig en este servidor, ¡salta esta sección!)
En ISPConfig configurarás PHP y Perl por sitio web, es decir, puedes especificar qué sitio web puede ejecutar scripts PHP y Perl y cuál no. Esto solo puede funcionar si PHP y Perl están deshabilitados globalmente porque de lo contrario todos los sitios web podrían ejecutar scripts PHP/Perl, sin importar lo que especifiques en ISPConfig.
Para deshabilitar PHP y Perl globalmente, editamos /etc/mime.types y comentamos las líneas application/x-perl y application/x-php:
vi /etc/mime.types| [...] #application/x-perl pl pm al perl #application/x-php php php3 php4 [...] |
Luego editamos /etc/apache2/conf.d/php5.conf y comentamos todas las líneas AddHandler:
vi /etc/apache2/conf.d/php5.conf| |
Después reiniciamos Apache:
/etc/init.d/apache2 restart11.2 mod_ruby
OpenSUSE 11.4 no tiene un paquete mod_ruby, por lo que debemos compilarlo manualmente. Primero instalamos los requisitos previos:
yast2 -i apache2-devel ruby ruby-develDespués construimos mod_ruby de la siguiente manera:
cd /tmp
wget http://modruby.net/archive/mod_ruby-1.3.0.tar.gz
tar zxvf mod_ruby-1.3.0.tar.gz
cd mod_ruby-1.3.0/
./configure.rb –with-apr-includes=/usr/include/apr-1
make
make install
Para habilitar mod_ruby, ejecuta…
a2enmod ruby … y reinicia Apache:
/etc/init.d/apache2 restart11.3 mod_python
Necesitamos instalar Python 2.7 en este capítulo, pero entra en conflicto con el paquete patterns-openSUSE-minimal_base. Por lo tanto, primero debemos desinstalar ese paquete. Para hacerlo, inicia YaST:
yast2En YaST, ve a Software > Gestión de Software:

Escribe patterns-openSUSE-minimal_base en el campo de búsqueda y presiona ENTER. El paquete debería aparecer como instalado ( i) en la ventana principal. Marca el paquete y presiona la tecla ENTER hasta que haya un signo menos ( -) delante del paquete (el signo menos significa desinstalar), luego presiona [Aceptar]:

Como reemplazo del paquete, se deben instalar algunos otros paquetes. Acepta la selección presionando [OK]:

Sal de YaST después.
Para instalar mod_python, simplemente ejecutamos:
yast2 -i apache2-mod_pythonPara habilitar mod_python, ejecuta…
a2enmod python … y reinicia Apache:
/etc/init.d/apache2 restart11.4 WebDAV
Habilita los módulos WebDAV… a2enmod dav
a2enmod dav_fs
a2enmod dav_lock
… y reinicia Apache:
/etc/init.d/apache2 restart12 Proftpd
Quiero usar ProFTPd en lugar de vsftpd, que es el servidor FTP predeterminado de SUSE, porque el software del panel de control que voy a instalar en este servidor ( ISPConfig) funciona mejor con ProFTPd en OpenSUSE 11.4. Dado que no hay paquetes de OpenSUSE para ProFTPd, tengo que compilarlo manualmente.
Primero instalamos algunos requisitos previos:
yast2 -i libcap libcap-develLuego construimos ProFTPd de la siguiente manera:
cd /tmp/
wget –passive-ftp ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3d.tar.gz
tar xvfz proftpd-1.3.3d.tar.gz
cd proftpd-1.3.3d/
./configure –sysconfdir=/etc
make
make install
cd ..
rm -fr proftpd-1.3.3d*
Ahora crea el archivo /etc/init.d/proftpd:
vi /etc/init.d/proftpd| #! /bin/sh # Copyright (c) 2000-2001 SuSE GmbH Nuernberg, Alemania. # Todos los derechos reservados. # # Autor original: Marius Tomaschewski <[email protected]> # # Ligeramente modificado en 2003 para su uso con SuSE Linux 8.1, # por http://www.learnlinux.co.uk/ # # Ligeramente modificado en 2005 para su uso con SuSE Linux 9.2, # por Falko Timme # # /etc/init.d/proftpd # ### BEGIN INIT INFO # Proporciona: proftpd # Requerido-Iniciar: $network $remote_fs $syslog $named # Requerido-Parar: # Predeterminado-Iniciar: 3 5 # Predeterminado-Parar: 0 1 2 6 # Descripción: Inicia el servidor ProFTPD ### END INIT INFO # Determina la base y sigue un nombre de enlace de nivel de ejecución. base=${0##*/} link=${base#*[SK][0-9][0-9]} # Fuerza la ejecución si no se llama desde un directorio de nivel de ejecución. test $link = $base && START_PROFTPD=yes # Modificado por learnlinux.co.uk test "$START_PROFTPD" = yes || exit 0 # Modificado por learnlinux.co.uk # Valores de retorno según LSB para todos los comandos pero # estado (ver más abajo): # # 0 - éxito # 1 - error genérico o no especificado # 2 - argumento(s) inválido o excesivo(s) # 3 - característica no implementada (por ejemplo, "recargar") # 4 - privilegio insuficiente # 5 - programa no está instalado # 6 - programa no está configurado # 7 - programa no está en ejecución proftpd_cfg="/etc/proftpd.conf" proftpd_bin="/usr/local/sbin/proftpd" proftpd_pid="/usr/local/var/proftpd.pid" [ -r $proftpd_cfg ] || exit 6 [ -x $proftpd_bin ] || exit 5 # Funciones de estado de origen . /etc/rc.status # Primero restablecer el estado de este servicio rc_reset case "$1" in start) echo -n "Iniciando el servidor ProFTPD: " test -f /etc/shutmsg && rm -f /etc/shutmsg /sbin/startproc $proftpd_bin rc_status -v ;; stop) echo -n "Apagando el servidor ProFTPD: " test -x /usr/local/sbin/ftpshut && /usr/local/sbin/ftpshut now && sleep 1 /sbin/killproc -TERM $proftpd_bin test -f /etc/shutmsg && rm -f /etc/shutmsg rc_status -v ;; restart) ## Si el primero devuelve OK llama al segundo, si el primero o ## segundo comando falla, establece el valor de retorno de eco. $0 stop $0 start rc_status ;; try-restart) ## Detener el servicio y si esto tiene éxito (es decir, el ## servicio estaba en ejecución antes), inícialo de nuevo. ## Nota: no (aún) parte de LSB (a partir de 0.7.5) $0 status >/dev/null && $0 restart rc_status ;; reload|force-reload) ## Posibilidad exclusiva: Algunos servicios deben ser detenidos ## y comenzados para forzar una nueva carga de la configuración. echo -n "Recargando el servidor ProFTPD: " /sbin/killproc -HUP $proftpd_bin rc_status -v ;; status) # El estado tiene un ligeramente diferente para el comando de estado: # 0 - servicio en ejecución # 1 - servicio muerto, pero el archivo pid de /var/run/ existe # 2 - servicio muerto, pero el archivo de bloqueo de /var/lock/ existe # 3 - servicio no en ejecución echo -n "Verificando el servidor ProFTPD: " checkproc $proftpd_bin rc_status -v ;; probe) ## Opcional: Sondear la necesidad de una recarga, ## dar el argumento que se requiere para una recarga. [ $proftpd_cfg -nt $proftpd_pid ] && echo reload ;; *) echo "Uso: $0 {start|stop|status|restart|reload|try-restart|probe}" exit 1 ;; esac # Establecer un estado de salida. rc_exit |
Luego ejecuta
chmod 755 /etc/init.d/proftpd
chkconfig -f –add proftpd
Inicia ProFTPd:
/etc/init.d/proftpd startSi obtienes el siguiente error…
Iniciando el servidor ProFTPD: - Fatal: UseIPv6: El uso de la directiva UseIPv6 requiere soporte IPv6 (–enable-ipv6) en la línea 14 de ‘/etc/proftpd.conf’
startproc: estado de salida del padre de /usr/local/sbin/proftpd: 1
… abre /etc/proftpd.conf y comenta o elimina la línea UseIPv6:
vi /etc/proftpd.conf | [...] # No usar soporte IPv6 por defecto. #UseIPv6 off [...] |
Por razones de seguridad, puedes agregar las siguientes líneas a /etc/proftpd.conf:
vi /etc/proftpd.conf| [...] DefaultRoot ~ IdentLookups off ServerIdent on "Servidor FTP listo." [...] |
Asegúrate de comentar las siguientes líneas para permitir que los usuarios ftp puedan CHMOD:
| [...] # Prohibir el uso de SITE CHMOD por defecto # |
y reinicia ProFTPd:
/etc/init.d/proftpd restartRecibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.