Capitulo V: Apache y PHP y RoR

Este es un artículo que forma parte de un grupo de artículos para aprender a configurar un servidor web que te pueden interesar.

Ahora, instalemos Apache:

sudo aptitude install apache2 apache2.2-common apache2-mpm-prefork apache2-utils libexpat1 ssl-cert

En la instalación, dará una pequeña advertencia:

apache2: Could not reliably determine the server's fully qualified domain name,
using 127.0.0.1 for ServerName

No te preocupes, vamos a solucionarlo. Abre el archivo de configuración de Apache:

sudo nano /etc/apache2/apache2.conf

Y al final del archivo escribe lo siguiente:

ServerName txurdi

Guarda el fichero y reinicia apache (reiniciando de esta manera no mata posibles conexiones abiertas)

sudo apache2ctl graceful

Ya está, si pones tu IP (http://123.45.67.890) en Internet Explorer tu navegador favorito (firefox o safari), podrás ver la página por defecto de Apache.
Breve inciso para instalar postfix:

sudo aptitude install postfix -y

Vamos a instalar también PHP (si no necesitas saltate este paso)

sudo aptitude install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd 
php5-imagick php5-mcrypt php5-memcache php5-mhash php5-mysql php5-pspell php5-snmp 
php5-sqlite php5-xmlrpc php5-xsl

Hemos instalado unos cuantos módulos que igual no necesitas, quitalos a tu antojo.
Recargamos Apache:

sudo /etc/init.d/apache2 reload

OK, vamos a probar con una nueva aplicación de RoR:

cd ~/public_html
rails railsapp

Vamos a aprobechar ahora para activar algunos módulos de Apache que suelen ser útiles:

sudo a2enmod proxy
sudo a2enmod proxy_balancer
sudo a2enmod proxy_http
sudo a2enmod rewrite

y reiniciamos Apache:

sudo /etc/init.d/apache2 force-reload

Vamos a crear un cluster (como hemos aprendido antes)

cd ~/public_html/railsapp
mongrel_rails cluster::configure -e production -p 5000 -N 3 -c /home/txurdi/public_html/railsapp -a 127.0.0.1

Si miramos el archivo «config/mongrel_cluster.yml»:

cwd: /home/txurdi/public_html/railsapp
log_file: log/mongrel.log
port: "5000"
environment: production
address: 127.0.0.1
pid_file: tmp/pids/mongrel.pid
servers: 3

Creamos el enlace simbólico para que se lance al reiniciar y lo lanzamos nosotros manualmente ahora:

sudo ln -s /home/txurdi/public_html/railsapp/config/mongrel_cluster.yml /etc/mongrel_cluster/railsapp.yml
mongrel_cluster_ctl start

Y vamos a crear un Virtual Host en Apache:

sudo nano /etc/apache2/sites-available/txurdi.net

Escribimos lo siguiente (+o-):


  ServerName txurdi.ner
  ServerAlias www.txurdi.net

  DocumentRoot /home/txurdi/public_html/railsapp/public

  RewriteEngine On

  
    BalancerMember http://127.0.0.1:5000
    BalancerMember http://127.0.0.1:5001
    BalancerMember http://127.0.0.1:5002
  

  # Redirect all non-static requests to thin
  RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
  RewriteRule ^/(.*)$ balancer://mongrel1%{REQUEST_URI} [P,QSA,L]

  ProxyPass / balancer://mongrel1/
  ProxyPassReverse / balancer://mongrel1/
  ProxyPreserveHost on

  
    Order deny,allow
    Allow from all
  

  # Custom log file locations
  ErrorLog  /home/txurdi/public_html/railsapp/log/error.log
  CustomLog /home/txurdi/public_html/railsapp/log/access.log combined


Activamos el Virtual Host que acabamos de crear y recargamos Apache para que lo conozca:

sudo a2ensite txurdi.net
sudo /etc/init.d/apache2 reload

Si ahora accedes via navegador a tu dominio (en nuestro caso era txurdi.net), verás la página por defecto de Rails 😀

Ok, ya tenemos el server funcionando, pero ¿como hacemos modificaciones en la página? Puf, vaya liada, conectarnos por SSH y cambiar directamente con Vim o Nano. O también podríamos montarnos la carpeta principal en nuestro PC… No, no, no… eso no sería muy prudente. Vamos a ver otras posibilidades: Subversion y Capistrano.

Capítulo anterior: Capitulo IV: Mongrel
Siguiente capítulo: Capitulo VI: Gestión de versiones con Subversion

Dejar un comentario

Tu dirección de correo electrónico no será publicada.

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