Intro

Tengo unos minutos libres y decidí complicarme la vida un poco más de lo que ya está. Resulta que hace algunas semanas instalé Fedora desde cero y ya perdí todo lo que estaba haciendo con Drupal. Ahora lo tengo que rehacer, pero:
-
No voy a usar Apache, porque PHP ya trae un servidor web integrado y funciona bastante bien para desarrollar cosas en Drupal.
-
Tampoco voy a instalar MySQL o MariaDB, porque Drupal puede usar SQLite y también funciona bastante bien.
-
Solo necesito instalar PHP, composer y drush para comenzar a chambear.
¡Manos a la obra!
Instalando PHP
Instalé php junto con php-pdo (para SQLite) y php-gd para que Drupal pueda
usar la librería de gráficos GD.
sudo yum install php php-cli php-pdo php-gd
Cuando se instala php, automáticamente se instala Apache. Para revisar si
Apache se arranca junto con la máquina se puede hacer uso de systemctl (Fedora
ya viene con systemd):
$ systemctl status httpd httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled) Active: inactive (dead)
Instalar composer
Ya tenemos php, ahora es necesario instalar composer de manera local.
$ mkdir -p ~/bin $ cd ~/bin $ curl -sS https://getcomposer.org/installer | php
Salida:
All settings correct for using Composer
Downloading...
Composer successfully installed to: /home/nnieto/bin/composer.phar
Use it: php composer.phar
El primer comando es para crear el directorio ~/bin. Fedora ya está
configurado para incluir ese directorio en $PATH. Si en ese directorio
colocamos algún script que sea ejecutable, podremos invocarlo solo con su
nombre desde cualquier lugar.
Instalar Drush
Ahora es momento de instalar Drush con:
$ composer.phar global require drush/drush:dev-master Changed current directory to /home/nnieto/.composer ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) - Updating drush/drush dev-master (7dd8076 => 12942ed) Checking out 12942ed3eaf8b6be5372baec32169ba61a04b22f Writing lock file Generating autoload files
Luego hice una liga simbólica hacia el directorio ~/bin:
$ ln -s ~/.composer/vendor/drush/drush/drush ~/bin/drush
¿Por qué? Para que pueda invocar a drush desde cualquier ruta :)
Instalar Drupal con Drush
Según este sitio con Drush puedo instalar y configurar Drupal 7 en dos patadas. ¡Eso me gusta!
$ drush dl drupal-7.x Project drupal (7.x-dev) downloaded to /home/nnieto/Code/Hkl/hkl_drupal/drupal-7.x-dev. [success] Project drupal Contains: [success] - 3 profiles: standard, minimal, testing - 4 themes: seven, stark, bartik, garland - 47 modules: ...
¿Qué hizo? Bajó una copia de Drupal (asumo que era la más reciente) y la puso
en una carpeta de nombre drupal-7.x-dev. Nada mal.
Ahora es momento de usar drush para configurar el sitio desde la línea de comandos:
$ cd drupal-7.x-dev $ drush site-install standard --account-name=admin --account-pass=admin --db-url=sqlite://sites/default/files/.ht.sqlite You are about to CREATE the 'sites/default/files/.ht.sqlite' database. Do you want to continue? (y/n): y Starting Drupal installation. This takes a few seconds ... [ok] Installation complete. User name: admin User password: admin [ok]
¡Ooookey! ¿Qué quiere decir esto? ¿Ya instaló y configuró Drupal? ¿Apoco ya no necesito correr el wizard de instalación? ¿Dónde puso la base de datos?
Primero contesto la última pregunta: ¿Dónde metió la base de datos? Bueno, yo
sé que estoy dentro del directorio de instalación de Drupal y que la URI de la
base de datos fue sqlite://sites/default/files/.ht.sqlite y además esa URI se
parece al directorio sites de Drupal. ¿Será?
$ ls -la sites/default/files/ total 780 drwxrwxr-x. 3 nnieto nnieto 4096 Jun 19 19:52 . dr-xr-xr-x. 3 nnieto nnieto 4096 Jun 19 19:43 .. -r--r--r--. 1 nnieto nnieto 476 Jun 19 19:45 .htaccess -rw-r--r--. 1 nnieto nnieto 778240 Jun 19 19:52 .ht.sqlite drwxrwxr-x. 2 nnieto nnieto 4096 Jun 19 19:46 styles
¡Sí! Ahí está el archivo .ht.sqlite. Ya voy entendiendo...
Corriendo el servidor web de PHP
Python y Node.js traen servidores web integrados. Esos servidores web son muy básicos y no están hechos para ponerlos en producción. Pero sirven muy bien para desarrollo y evitar la molestia de configurar un servidor real. PHP también tiene un servidor web integrado. Me lo dijeron en StackExchange ;).
$ php -S localhost:8000 PHP 5.5.13 Development Server started at Thu Jun 19 20:05:10 2014 Listening on http://localhost:8000 Document root is /home/nnieto/Code/Hkl/hkl_drupal/drupal-7.x-dev Press Ctrl-C to quit.
Actualización: Las versiones recientes de Drush incluyen un comando rs que
ejecuta el servidor web integrado de php en el puerto 8888.
Y sí, funciona:

¿Cómo te quedó el ojo?
FIN