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-devel

Luego 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 curl

A continuación editamos /etc/apache2/httpd.conf:

vi /etc/apache2/httpd.conf

y 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 apache2

Luego 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

| #AddHandler application/x-httpd-php .php4 #AddHandler application/x-httpd-php .php5 #AddHandler application/x-httpd-php .php #AddHandler application/x-httpd-php-source .php4s #AddHandler application/x-httpd-php-source .php5s #AddHandler application/x-httpd-php-source .phps DirectoryIndex index.php4 DirectoryIndex index.php5 DirectoryIndex index.php |

Después reiniciamos Apache:

/etc/init.d/apache2 restart

11.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-devel

Despué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 restart

11.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:

yast2

En 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_python

Para habilitar mod_python, ejecuta…

a2enmod python 

… y reinicia Apache:

/etc/init.d/apache2 restart

11.4 WebDAV

Habilita los módulos WebDAV… a2enmod dav
a2enmod dav_fs
a2enmod dav_lock

… y reinicia Apache:

/etc/init.d/apache2 restart

12 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-devel

Luego 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 start

Si 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 # # DenyAll # [...] |

y reinicia ProFTPd:

/etc/init.d/proftpd restart
Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.