Preparando Fedora para Drupal 7 al estilo Noe

Published: Jun 19, 2014 by Noe Nieto

Intro

PHP corriendo su servidor interno desde la linea de comandos

Tengo unos minutos libres y decidí complicarme la vida un poco más de lo que ya esta. Resulta que hace algunas semanas instale Fedora desde cero y ya perdi todo lo que estaba haciendo con Drupal. Ahora lo tengo que re hacer, pero:

  • No voy a usar Apache por que PHP ya trae un servidor web integrado y
  • funciona bastante bien para desarrollar cosas en Drupal.

  • Tampoco voy a instalar MySQL o MariaDB por que Drupal puede usar SQLite y
  • tambien 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, automaticamente se instala Apache. Para revisar si Apache se arranca junto con la maquina 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
All settings correct f0r 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 esta configurado para incluir ese directorio en $PATH. Si en ese directorio colocamos algun o 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 configura 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: update, menu, dashboard, simpletest, forum, image, help, aggregator, rdf, blog, syslog, search, dblog, trigger, locale, profile, number, text,
field_sql_storage, options, list, field, translation, shortcut, taxonomy, field_ui, toolbar, user, file, comment, tracker, system, color, php, contextual,
block, statistics, contact, openid, node, overlay, book, poll, filter, path, drupal_system_listing_incompatible_test, drupal_system_listing_compatible_test

¿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 linea 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 metio la base de datos? Bueno, yo se 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

¡Si! Ahí esta 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 que no estan 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 si, funciona:

Drupal funcionando en el servidor web integrado de PHP

¿Cómo te quedó el ojo?

– Fin

Share

Latest Posts

Cómo Usar la Librería Tenacity en Python
Cómo Usar la Librería Tenacity en Python

Una pequeña guía para comenzar a usar la librería Tenacity de Python

Convierte texto seleccionado a enlaces en Google Docs
Convierte texto seleccionado a enlaces en Google Docs

Guía para crear un guión de AppsScript que transforme el texto seleccionado en un documento de Google Docs

Nube de palabras en Inkscape
Nube de palabras en Inkscape

Pequeña guía para hacer una nube de palabras (o tag cloud) en Inkscape