Jul 022013
 

Agradecemos a GNUtransfer el habernos cedido un VPS y otros recursos para escribir este articulo.

En este articulo veremos como instalar Drupal en un VPS o en un servidor dedicado.

Para nuestro articulo usaremos el dominio example.geeklab.com.ar y nuestra IP es la 69.61.93.19
Comenzamos desde una instalación mínima de Debian Wheezy o Ubuntu Precise Pangolin.

NOTA: Si bien Drupal se encuentra en los repositorios de Debian en este articulo lo instalaremos desde el tar.gz del sitio de Drupal

Primero debemos instalar los paquetes necesarios apache2, libapache2-mod-php5, php5, php5-curl, php5-intl, php5-mcrypt, php5-mysql, php5-sqlite, php5-xmlrpc, php5-gd, mysql-server, mysql-client

root@vps415960:/# apt-get install apache2 libapache2-mod-php5 php5 php5-curl php5-intl php5-mcrypt php5-mysql php5-sqlite php5-xmlrpc php5-gd mysql-server mysql-client
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common fontconfig-config libaio1 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libcurl3 libdbd-mysql-perl libdbi-perl libfontconfig1 libgd2-xpm
  libhtml-template-perl libicu48 libjpeg8 libltdl7 libmcrypt4 libmysqlclient18 libnet-daemon-perl libonig2 libplrpc-perl libpng12-0 libqdbm14 librtmp0 libssh2-1 libxpm4 mysql-client-5.5 mysql-common mysql-server-5.5
  mysql-server-core-5.5 php5-cli php5-common ssl-cert ttf-dejavu-core
Suggested packages:
  apache2-doc apache2-suexec apache2-suexec-custom php-pear libgd-tools libipc-sharedcache-perl libmcrypt-dev mcrypt libterm-readkey-perl tinyca openssl-blacklist
The following NEW packages will be installed:
  apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common fontconfig-config libaio1 libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libcurl3 libdbd-mysql-perl libdbi-perl libfontconfig1
  libgd2-xpm libhtml-template-perl libicu48 libjpeg8 libltdl7 libmcrypt4 libmysqlclient18 libnet-daemon-perl libonig2 libplrpc-perl libpng12-0 libqdbm14 librtmp0 libssh2-1 libxpm4 mysql-client mysql-client-5.5 mysql-common mysql-server
  mysql-server-5.5 mysql-server-core-5.5 php5 php5-cli php5-common php5-curl php5-gd php5-intl php5-mcrypt php5-mysql php5-sqlite php5-xmlrpc ssl-cert ttf-dejavu-core
0 upgraded, 49 newly installed, 0 to remove and 0 not upgraded.
Need to get 25,5 MB of archives.
After this operation, 152 MB of additional disk space will be used.
Do you want to continue [Y/n]?

Se nos pedirá que ingresemos un password para el usuario root de mysql

drupal_debian_wheezy_01

Se nos pide que reingresemos el password para el usuario root de mysql

drupal_debian_wheezy_02

Ahora procedemos a configurar Apache usaremos como directorio de trabajo /var/www/drupal
primero creamos el directorio

root@vps415960:/# mkdir -p /var/www/drupal

Luego creamos el archivo /etc/apache2/sites-available/drupal con el siguiente contenido
Nota: deben cambiar la IP, el dominio y la dirección de correo por la que les corresponda.

NameVirtualHost 69.61.93.19:80
<VirtualHost 69.61.93.19:80>
        ServerAdmin rmalvarez@gnupanel.org
        ServerName example.geeklab.com.ar

        DocumentRoot /var/www/drupal

        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Luego deshabilitamos el sitio configurado por default en apache y habilitamos el sitio para Drupal que hemos agregado recién, pare eso ejecutamos los siguientes comandos

root@vps415960:/# a2dissite default
Site default disabled.
To activate the new configuration, you need to run:
  service apache2 reload
root@vps415960:/# a2ensite drupal
Enabling site drupal.
To activate the new configuration, you need to run:
  service apache2 reload
root@vps415960:/#

También editamos /etc/hosts y donde esta nuestra IP le agregamos también nuestro dominio

root@vps415960:/# cat /etc/hosts
127.0.0.1 localhost
69.61.93.19 example.geeklab.com.ar vps415960
2002:453d:5d13::1 example.geeklab.com.ar vps415960

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
root@vps415960:/#

Y en el archivo /etc/apache2/ports.conf comentamos la linea NameVirtualHost *:80 de modo que quede así

root@vps415960:/tmp# cat /etc/apache2/ports.conf
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz

#NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

root@vps415960:/tmp# 

Luego añadimos el modulo rewrite de apache

root@vps415960:/# a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
  service apache2 restart
root@vps415960:/#

Luego tuneamos PHP para adaptarlo a las necesidades de Drupal
NOTA: Esta no es la configuración óptima, solo colocamos valores sobre estimados para estar seguros que Drupal funcione correctamente para cada instalación en particular se deberá afinar esta configuración.
Editamos /etc/php5/apache2/php.ini y modificamos las siguientes variables de modo que queden con los siguientes valores.

max_execution_time = 900
max_input_time = 900
memory_limit = 512M
post_max_size = 64M
upload_max_filesize = 64M
max_file_uploads = 32
default_socket_timeout = 900

Procedemos a restartear apache

root@vps415960:/# /etc/init.d/apache2 restart
[ ok ] Restarting web server: apache2 ... waiting .
root@vps415960:/#

Ahora nos conectamos a mysql y creamos la base de datos y el usuario de mysql para drupal,
para eso primero nos conectamos a mysql

root@vps415960:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 42
Server version: 5.5.30-1.1 (Debian)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Y ahora creamos la base de datos y el usuario con estas sentencias
NOTA: en nuestro ejemplo tanto la base de datos como el usuario son drupal, reemplazar PASSWORD_DB por el password que deseen asignarle a la base de datos.

mysql> CREATE DATABASE drupal;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL ON drupal.* TO drupal@localhost IDENTIFIED BY 'PASSWORD_DB';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> \q
Bye

Ahora procedemos a descargar drupal, nos aseguramos de tener instalado wget y despues procedemos a la descarga

root@vps415960:/# apt-get install wget
Reading package lists... Done
Building dependency tree
Reading state information... Done
wget is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@vps415960:/#
root@vps415960:/# cd /tmp
root@vps415960:/tmp#
root@vps415960:/tmp# wget http://ftp.drupal.org/files/projects/drupal-7.22.tar.gz
--2013-07-02 21:07:56--  http://ftp.drupal.org/files/projects/drupal-7.22.tar.gz
Resolving ftp.drupal.org (ftp.drupal.org)... 140.211.166.134
Connecting to ftp.drupal.org (ftp.drupal.org)|140.211.166.134|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3183014 (3,0M) [application/x-gzip]
Saving to: `drupal-7.22.tar.gz'

100%[===================================================================================================================================================================================================>] 3.183.014   1,31M/s   in 2,3s

2013-07-02 21:07:58 (1,31 MB/s) - `drupal-7.22.tar.gz' saved [3183014/3183014]

root@vps415960:/tmp#

Lo descomprimimos luego copiamos el contenido en /var/www/drupal y nos aseguramos de cambiar los permisos para que no haya conflictos

root@vps415960:/tmp# tar -xf drupal-7.22.tar.gz
root@vps415960:/tmp# cp -R drupal-7.22/* /var/www/drupal/
root@vps415960:/tmp# chown -R www-data:www-data /var/www
root@vps415960:/tmp# find /var/www -type f -exec chmod 0600 {} \;
root@vps415960:/tmp# find /var/www -type d -exec chmod 0700 {} \;
root@vps415960:/tmp#

Ahora nos dirigimos con el navegador a nuestro sitio para usar el instalador de drupal, en el ejemplo http://example.geeklab.com.ar y seguimos los pasos.

Paso 1

drupal_debian_wheezy_03

Paso 2

drupal_debian_wheezy_04

Paso 3, Aquí colocamos los datos de la base de datos.

drupal_debian_wheezy_05

Paso 4, Aquí esperamos que se instalen todos los módulos de Drupal

drupal_debian_wheezy_06

drupal_debian_wheezy_07

Paso 5, Aqui colocamos los datos basicos de nuestro sitio Drpal

drupal_debian_wheezy_08

Paso 7, Listo Drupal ya se encuentra instalado.

drupal_debian_wheezy_09

Paso 8, Vamos al sitio

drupal_debian_wheezy_10

Con esto finalizamos la instalación de Drupal en una instalación de Debian Wheezy con lo mínimo para funcionar

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.