Debian Stable + Apache 2.2 + SSL + PHP 5.2 + MySQL 4.1

Revisión 1.0 (25/01/2007)

Propósito
El propósito de este tutorial, es mostrar como instalar Apache + SSL + Mysql + PHP en sus ultimas versiones sobre la distribución GNU/Debian 3.1 Sarge (stable) sin utilizar los paquetes .deb de debian. En su defecto, se han utilizado las versiones oficiales de los mismos.
Este tutorial, se ha realizado para utilizar PHP 5.1 con Apache 2.2 y MySQL 4.1 en esta distribución.

Renuncia de Responsabilidad
Este documento intenta explicar los pasos para instalar el gestor de ventanas KDE. No soy, ni pretendo ser un experto en instalaciones ni en GNU/Linux, únicamente redacto los pasos que yo he realizado para generar mis instalaciones. NO ME HAGO RESPONSABLE DE NINGÚN DAÑO PRODUCIDO POR ACCIONES CON BASE A ESTE DOCUMENTO.

Información sobre el Copyright
Pueden distribuirse o reproducirse copias en su integridad o parte de este documento en cualquier medio físico o electrónico sin permiso del autor, siempre que se incluya este Copyright en todas las copias.
Toda aportación a este documento será valorada positivamente.

 

Se entiende que ya disponemos de una versión de GNU/Debian en su versión Sarge (stable) instalada correctamente.

Descargamos los archivos necesarios

   # cd /root
   # wget http://apache.rediris.es/httpd/httpd-2.2.3.tar.bz2
   # wget http://es.php.net/distributions/php-5.2.0.tar.bz2
   # wget ftp://ftp.rediris.es/mirror/mysql/Downloads/MySQL-4.1/mysql-standard-4.1.21-pc-linux-gnu-i686.tar.gz
No se puede descargar directamente ya que utiliza sourceforge: http://prdownloads.sourceforge.net/phpmyadmin/phpMyAdmin-2.9.1-all-languages.tar.bz2?download

Apache

Antes de nada, necesitamos tener instalada la aplicacion bzip2 para descomprimir los paquetes:
   # apt-get install bzip2 libssl-dev openssl gcc g++ cpp make
 
Nos colocamos en el directorio donde esta el apache... en nuestro caso es la carpeta del root
   # cd /root
   # tar jxvf httpd-2.2.3.tar.bz2
   # cd httpd-2.2.3
Con prefix, indicamos donde queremos que se instale...
   # ./configure --prefix=/usr/local/apache2 --with-ssl=/usr/include/openssl --enable-ssl
   # make
   # make install
Modificamos el fichero de configuración del apache (/usr/local/apache2/conf/httpd.conf) y modificamos el usuario y grupo de trabajo del mismo por www-data
   User www-data
   Group www-data
Tenemos que indicar al directorio donde estarán los archivos de la web, que pertenecen la usuario y grupo www-data:
   chown -R www-data /usr/local/apache2/htdocs
   chgrp -R www-data /usr/local/apache2/htdocs
Tenemos que indicar que el usuario www-data tiene sus archivos en la carpeta /usr/local/apache2/htdocs, para ello modificamos su entrada en el fichero /etc/passwd dejándolo así:
   www-data:x:33:33:www-data:/usr/local/apache2/htdocs:/bin/sh
Ya disponemos de nuestro servidor apache instalado. Para iniciarlo:
   # /usr/local/apache2/bin/apachectl start
Vamos a colocar un script, para que cada vez que se inicie la maquina, inicie el servidor apache.
   # ln -s /usr/local/apache2/bin/apachectl /etc/rcS.d/S99apache

Apache+SSL

Vamos a generar un servidor seguro (https) con SSL

Modificamos el fichero de configuración del apache (/usr/local/apache2/conf/httpd.conf) y descomentamos la linea:
   Include conf/extra/httpd-ssl.conf
Vamos a generar los ficheros con las claves para el servidor seguro
   # openssl genrsa -rand ../httpd-2.2.3.tar.bz2:../php-5.2.0.tar.bz2:../phpMyAdmin-2.9.1-all-languages.tar.bz2 -out server.key 1024
   # openssl rsa -in server.key -out server.pem
   # openssl req -new -key server.key -out server.csr
   # openssl x509 -req -days 360 -in server.csr -signkey server.key -out server.crt
Copiamos los ficheros que necesitamos...
   # cp server.crt /usr/local/apache2/conf/
   # cp server.key /usr/local/apache2/conf/
Reiniciamos el servidor apache
   # /usr/local/apache2/bin/apachectl restart

MySQL

Creamos un grupo para el mysql
   # groupadd mysql
Creamos un usuario que es del grupo mysql
   # useradd -g mysql mysql
Nos colocamos en el directorio donde vamos a instalar el MySQL, en nuestro caso en /usr/local/
   # cd /usr/local/
Descomprimimos el paquete
   # gunzip < /root/mysql-standard-4.1.21-pc-linux-gnu-i686.tar.gz | tar xvf -
Creamos un "acceso directo"
   # ln -s mysql-standard-4.1.21-pc-linux-gnu-i686 mysql
   # cd mysql
Creamos las bases de datos
   # scripts/mysql_install_db --user=mysql
Cambiamos los permisos...
   # chown -R root .
   # chown -R mysql data
   # chgrp -R mysql .
Vamos a colocar un script, para que cada vez que se inicie la maquina, inicie el servidor mysql.
   # ln -s /usr/local/mysql/support-files/mysql.server /etc/rcS.d/S99mysql.server
Damos permisos de ejecución
   # chmod 755 /etc/rcS.d/S99mysql.server
Iniciamos mysql
   # /etc/rcS.d/S99mysql.server start
Entramos en la base de datos para cambiar el password del root
   # /usr/local/mysql/bin/mysql
Seleccionamos la tabla mysql
   # use mysql
Colocamos el password 123456 al usuario root
   # UPDATE user SET Password=PASSWORD('123456') WHERE User='root';
Forzamos el cambio
   # flush privileges;
A partir de ahora, para entrar en mysql, hay que hacerlo identificándonos: /usr/local/mysql/bin/mysql -u root -p123456

PHP

Antes de compilar nuestro php, necesitamos instalar algunas aplicaciones:
   (stable) # apt-get install libxml2-dev curl libcurl3-dev libjpeg-mmx-dev zlib1g-dev libpng12-dev
   (testing) # apt-get install libxml2-dev curl libcurl3-dev libjpeg62-dev flex zlib1g-dev libpng12-dev
 
Paramos el servidor apache
   # /usr/local/apache2/bin/apachectl stop
Nos colocamos en el directorio donde esta el php... en nuestro caso es la carpeta del root
   # cd /root
   # tar jxvf php-5.2.0.tar.bz2
   # cd php-5.2.0
Con prefix, indicamos donde queremos que se instale.
   # ./configure --prefix=/usr/local/php5 --enable-mbstring --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-curl=/usr/include/curl --with-jpeg-dir=/usr/include --with-zlib-dir=/usr/include --with-gd --with-xml --enable-ftp --enable-bcmath
   # make
   # make install
Copiamos el fichero php.ini. Podemos modificarlo a nuestra necesidad...
   # cp php.ini-dist /usr/local/php5/lib/php.ini
Modificamos el fichero de configuración del apache (/usr/local/apache2/conf/httpd.conf) y añadimos en el miso dentro del tag <IfModule mime_module>
   AddType application/x-httpd-php .php .phtml
   AddType application/x-httpd-php-source .phps
Modificamos la linea: DirectoryIndex index.html por:
   DirectoryIndex index.php index.html
Ya podemos volver a iniciar nuestro servidor apache
   # /usr/local/apache2/bin/apachectl start

phpMyAdmin

Nos colocamos en el directorio donde se muestra nuestra web. En nuestro caso es la carpeta por defecto (htdocs) del apache
   # cd /usr/local/apache2/
Descomprimimos el phpmyadmin desde su ubicación actual
   # tar jxvf /root/phpMyAdmin-2.9.1-all-languages.tar.bz2
Modificamos el nombre del directorio:
   # mv phpMyAdmin-2.9.1-all-languages phpmyadmin
Copiamos el fichero de configuración que lleva por defecto
   # cd phpmyadmin
   # cp config.sample.inc.php config.inc.php
Modificamos el fichero de configuración (config.inc.php):
   $cfg['blowfish_secret'] = 'CualquierClaveSecreta';
Eliminamos el usuario y password del usuario que viene por defecto quedando así:
   $cfg['Servers'][$i]['controluser'] = '';
   $cfg['Servers'][$i]['controlpass'] = '';
Modificamos el fichero de configuración del apache (/usr/local/apache2/conf/httpd.conf) y añadimos en el miso dentro del tag <IfModule alias_module>
   Alias /phpmyadmin "/usr/local/apache2/phpmyadmin/"
   <Directory "/usr/local/apache2/phpmyadmin/">
      Order allow,deny
      Allow from all
   </Directory>
Ya podemos acceder al phpmyadmin desde nuestro navegador.

 

    Bibliografía
  1. Pagina oficial de Debian
    http://www.debian.org/
  2. Pagina oficial de Apache
    http://www.apache.org/
  3. Pagina oficial de MySQL
    http://www.mysql.org/
  4. Pagina oficial de PHP
    http://www.php.net
  5. Pagina oficial de phpMyAdmin
    http://www.phpmyadmin.net/
  6. Generating an SSL Certificate with Apache+mod_ssl
    http://slacksite.com/apache/certificate.html

 


http://www.lawebdelprogramador.com