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


Publicado

en

, , ,

por

Etiquetas:

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

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