Servidor · 5 min read · Jan 19, 2026

El Servidor Perfecto - CentOS 6.0 x86_64 [ISPConfig 2] - Página 5

12 Apache2 Con PHP, Ruby, Python, WebDAV

Ahora instalamos Apache con PHP (esta es PHP 5.3.2):

yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel

Luego edita /etc/httpd/conf/httpd.conf:

vi /etc/httpd/conf/httpd.conf

y cambia DirectoryIndex a

| [...] DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl [...] |

Ahora configura tu sistema para iniciar Apache al arrancar:

chkconfig --levels 235 httpd on

Inicia Apache:

/etc/init.d/httpd start

12.1 Desactivar PHP Globalmente

(Si no planeas instalar ISPConfig en este servidor, ¡por favor salta esta sección!)

En ISPConfig configurarás PHP por sitio web, es decir, puedes especificar qué sitio web puede ejecutar scripts PHP y cuál no. Esto solo puede funcionar si PHP está desactivado globalmente porque de lo contrario todos los sitios web podrían ejecutar scripts PHP, sin importar lo que especifiques en ISPConfig.

Para desactivar PHP globalmente, editamos /etc/httpd/conf.d/php.conf y comentamos las líneas AddHandler y AddType:

vi /etc/httpd/conf.d/php.conf

| # # PHP es un lenguaje de scripting incrustado en HTML que intenta facilitar a los desarrolladores la escritura de páginas web generadas dinámicamente. # LoadModule php5_module modules/libphp5.so LoadModule php5_module modules/libphp5-zts.so # # Hace que el intérprete de PHP maneje archivos con una extensión .php. # #AddHandler php5-script .php #AddType text/html .php # # Agrega index.php a la lista de archivos que se servirán como índices de directorio. # DirectoryIndex index.php # # Descomenta la siguiente línea para permitir que PHP imprima de forma legible archivos .phps como código fuente PHP: # #AddType application/x-httpd-php-source .phps |

Después reiniciamos Apache:

/etc/init.d/httpd restart

12.2 Instalando mod_ruby

Para CentOS 6.0, no hay un paquete mod_ruby disponible, así que debemos compilarlo nosotros mismos. Primero instalamos algunos requisitos previos:

yum install httpd-devel ruby ruby-devel

A continuación, descargamos e instalamos mod_ruby de la siguiente manera:

cd /tmp
wget http://www.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

Finalmente, debemos agregar el módulo mod_ruby a la configuración de Apache, así que creamos el archivo /etc/httpd/conf.d/ruby.conf…

vi /etc/httpd/conf.d/ruby.conf

| LoadModule ruby_module modules/mod_ruby.so RubyAddPath /1.8 |

… y reiniciamos Apache:

/etc/init.d/httpd restart

(Si omites la directiva RubyAddPath /1.8, verás errores como los siguientes en el registro de errores de Apache cuando llames a archivos Ruby:

[Thu May 26 02:05:05 2011] [error] mod_ruby: ruby:0:in require': no such file to load -- apache/ruby-run (LoadError) [Thu May 26 02:05:05 2011] [error] mod_ruby: failed to require apache/ruby-run [Thu May 26 02:05:05 2011] [error] mod_ruby: error in ruby ) #### 12.3 Instalando mod_python El paquete mod_python está disponible en los repositorios EPEL que podemos habilitar de la siguiente manera: rpm --import https://fedoraproject.org/static/0608B895.txt wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm rpm -ivh epel-release-6-5.noarch.rpm ``` yum install yum-priorities ``` Edita /etc/yum.repos.d/epel.repo... ``` vi /etc/yum.repos.d/epel.repo ``` ... y agrega la línea priority=10 a la sección [epel]: | ``` [epel] name=Paquetes Extra para Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...] ``` | Para instalar mod_python, simplemente ejecutamos... ``` yum install mod_python ``` ... y reiniciamos Apache después: ``` /etc/init.d/httpd restart ``` #### 12.4 WebDAV WebDAV ya debería estar habilitado, pero para verificar esto, abre /etc/httpd/conf/httpd.conf y asegúrate de que los siguientes tres módulos estén activos: ``` vi /etc/httpd/conf/httpd.conf ``` | ``` [...] LoadModule auth_digest_module modules/mod_auth_digest.so [...] LoadModule dav_module modules/mod_dav.so [...] LoadModule dav_fs_module modules/mod_dav_fs.so [...] ``` | Si tienes que modificar /etc/httpd/conf/httpd.conf, no olvides reiniciar Apache después: ``` /etc/init.d/httpd restart ``` ### 13 ProFTPd ISPConfig tiene mejor soporte para proftpd que vsftpd, así que eliminemos vsftpd: ``` yum remove vsftpd ``` Ahora podemos instalar ProFTPd desde el repositorio EPEL de la siguiente manera: ``` yum install proftpd ``` Por razones de seguridad, también puedes agregar la siguiente línea a /etc/proftpd.conf (gracias a Reinaldo Carvalho; más información se puede encontrar aquí: http://proftpd.org/localsite/Userguide/linked/userguide.html): ``` vi /etc/proftpd.conf ``` | ``` [...] IdentLookups off [...]``` | Ahora podemos crear los enlaces de inicio del sistema para ProFTPd: ``` chkconfig --levels 235 proftpd on ``` Y finalmente iniciamos Proftpd: ``` /etc/init.d/proftpd start ``` ### 14 Webalizer Para instalar webalizer, solo ejecuta ``` yum install webalizer ``` ### 15 Sincronizar El Reloj Del Sistema Si deseas tener el reloj del sistema sincronizado con un servidor NTP, haz lo siguiente: ``` yum install ntp ``` chkconfig --levels 235 ntpd on tpdate 0.pool.ntp.org /etc/init.d/ntpd start ### 16 Instalar Algunos Módulos Perl ISPConfig viene con SpamAssassin que necesita algunos módulos Perl para funcionar. Instalamos los módulos Perl requeridos con un solo comando: ``` yum install perl-HTML-Parser perl-DBI perl-Net-DNS perl-Digest-SHA1 perl-Archive-Tar perl-NetAddr-IP ``` ### 17 El Fin La configuración del servidor ha terminado. Ahora puedes instalar ISPConfig en él, siguiendo estas instrucciones: http://www.ispconfig.org/manual_installation.htm Antes de instalar ISPConfig, hay una cosa importante que debes hacer. Abre /usr/include/stdio.h y reemplaza getline con parseline en la línea 673: ``` vim /usr/include/stdio.h ``` | ``` [...] /* Comogetdelim’, pero lee hasta una nueva línea.

Esta función no es parte de POSIX y, por lo tanto, no hay un punto de cancelación oficial. Pero debido a la similitud con una interfaz POSIX o debido a la implementación, es un punto de cancelación y, por lo tanto, no está marcado con THROW. / extern _IO_ssize_t parseline (char *restrict __lineptr,

                        size_t *__restrict __n,
                        FILE *__restrict __stream) __wur;

#endif […]


Si no haces esto, la instalación fallará debido al siguiente error:

htpasswd.c:101: error: conflicting types for âgetlineâ  
/usr/include/stdio.h:673: note: previous declaration of âgetlineâ was here  
make[2]: * [htpasswd.o] Error 1  
make[2]: Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41/src/support'  
make[1]: * [build-support] Error 1  
make[1]: Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41'  
make: *** [build] Error 2  
ERROR: Could not make Apache

Puedes deshacer el cambio en /usr/include/stdio.h después de la instalación exitosa de ISPConfig (pero no olvides cambiarlo de nuevo cada vez que quieras actualizar ISPConfig!).

#### 17.1 Una Nota Sobre SuExec

Si deseas ejecutar scripts CGI bajo suExec, debes especificar /var/www como el directorio home para los sitios web creados por ISPConfig, ya que el suExec de CentOS está compilado con /var/www como Doc_Root. Ejecuta

/usr/sbin/suexec -V


y la salida debería verse así:

[root@server1 ~]# /usr/sbin/suexec -V  
-D AP_DOC_ROOT="/var/www"  
-D AP_GID_MIN=100  
-D AP_HTTPD_USER="apache"  
-D AP_LOG_EXEC="/var/log/httpd/suexec.log"  
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"  
-D AP_UID_MIN=500  
-D AP_USERDIR_SUFFIX="public_html"  
[root@server1 ~]#

Así que si deseas usar suExec con ISPconfig, no cambies la raíz web predeterminada (que es /var/www) si usas el modo experto durante la instalación de ISPConfig (en modo estándar no puedes cambiar la raíz web de todos modos, así que podrás usar suExec en cualquier caso).

### 18 Enlaces

- CentOS: http://www.centos.org/
- ISPConfig 2: http://www.ispconfig.org/ispconfig-2/
Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

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