Get Adobe Flash player

ArchLinux: Ambiente RubyOnRails e PHP

Autor: Alexandre Bini | Data: 20/03/2010 | Tags: , , , , , , , , , | Categoria: Linux, Ruby

Uma das distribuições linux que vem ganhando grande destaque atualmente é o ArchLinux. Ele possui uma comunidade fantástica, uma wiki excepcional, não nos prende a um desktop environment possibilitando assim a instalação do xfce, kde, gnome, etc sem grandes dores de cabeça e com total compatibilidade. Outro aspecto interessante é que não é uma distribuição derivada de outra, como é o caso do Ubuntu/Debian. Vale a pena testá-la.

Aqui na Voraz, deixamos de utilizar o Ubuntu e passamos a utilizar o Arch sem nenhum problema, e com um ganho de performance enorme.

Hoje vamos preparar o arch para desenvolvimento de aplicações rails e php com o banco de dados mysql.

MySql

[shell]
pacman -S mysql
/etc/rc.d/mysqld start
/usr/bin/mysqladmin -u root password ‘seu_password’
[/shell]

Php

Existem diversas alternativas para rodarmos php e nginx juntos, utilizaremos aqui o spawn-cgi

[shell]
pacman -S php-cgi php-mcrypt
yaourt -S spawn-fcgi
[/shell]

Agora abra seu arquivo /etc/php/php.ini

[shell]
#verifique se a pasta que você utilizará como root no nginx na linha open_basedir. Se não tiver, adicione
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/root/

#libere os módulos que deseja, no meu caso são esses:
extension=bz2.so
extension=mcrypt.so
extension=mysql.so
extension=zip.so
[/shell]

Para startar o php basta utilizar o seguinte comando:

[shell]
spawn-fcgi -a 127.0.0.1 -p 9000 -f /usr/bin/php-cgi &
[/shell]

Rvm

O rvm, que nos permite utilizar várias versões do Ruby .

[shell]
pacman -S git #caso ainda não tenha o git instalado.
mkdir -p ~/.rvm/src/ && cd ~/.rvm/src && rm -rf ./rvm/ && git clone –depth 1 git://github.com/wayneeseguin/rvm.git && cd rvm && ./install
[/shell]

Reinicie seu terminal e caso não tenha o comando “rvm”, adicione a seguinte linha ao seu .bashrc e reinicie o terminal novamente.

[shell]
if [[ -s /usr/local/rvm/scripts/rvm ]] ; then source /usr/local/rvm/scripts/rvm ; fi
[/shell]

Agora vamos instalar as versões 1.8.7 e 1.9.1 do ruby e setar a versão padrão a ser utilizada.

[shell]
rvm install 1.8.7,1.9.1
rvm –default 1.9.1
[/shell]

e algumas gems:

[shell]
gem update
gem install gem_plugin rails
gem install mongrel –source http://gems.rubyinstaller.org/">http://gems.rubyinstaller.org #para ruby 1.9.1
[/shell]

Nginx / Passenger

Nginx é um servidor leve, de baixo consumo de memória e alta performance e com arquivos de configuração bem claros e simples.

Na Voraz, substituímos o apache pelo nginx e não temos do que reclamar. O passenger nos permite rodar aplicações rails diretamente no nginx (ou no apache). Vamos a instalação:

[shell]
gem install passenger
passenger-install-nginx-module
[/shell]

O segundo comando irá baixar e compilar o nginx já com o módulo do passenger instalado. Agora vamos fazer uma configuração básica do nginx. Abra o arquivo /opt/nginx/conf/nginx.conf

[shell]
worker_processes  1;

error_log  logs/error.log;

http {
passenger_root /usr/local/rvm/gems/ruby-1.9.1-p378/gems/passenger-2.2.11;
passenger_ruby /usr/local/rvm/rubies/ruby-1.9.1-p378/bin/ruby;

include       mime.types;
default_type  application/octet-stream;

access_log off;

sendfile        on;

keepalive_timeout  65;

client_max_body_size 15m;

autoindex on;

index  index.html index.htm index.php;

charset utf-8;

include fastcgi_params;
include /opt/nginx/sites-enabled/*;
}
[/shell]

Vá ao arquivo /opt/nginx/conf/fastcgi_params (provavelmente você só precisará adicionar a ultima linha)

[shell]

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with –enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
[/shell]

Vamos criar a pasta /opt/nginx/sites-enabled onde deixaremos os arquivos de configuração de nossos sites e o arquivo /opt/nginx/sites-enabled/0-default

[shell]
server {
listen          80;
server_name     localhost;
root            /root/voraz;

error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   html;
}
location ~ \.php$ {
fastcgi_pass   127.0.0.1:9000;
}
}
[/shell]

Desse modo, todas as requisições a arquivos .php serão encaminhadas ao pgp-cgi. Agora vamos criar um novo arquivo de configuração para uma aplicação rails: /opt/nginx/sites-enabled/teste-rails

[shell]
server{
server_name         sindicato.org.br www.sindicato.org.br;
root                /root/voraz/teste-rails/public; #deve sempre apontar para a pasta public
passenger_enabled   on;
rails_env           production;
}
[/shell]

Para finalizar, alguns comandos do nginx:

[shell]
/opt/nginx/sbin/nginx #start o nginx
/opt/nginx/sbin/nginx -s stop #para o nginx
/opt/nginx/sbin/nginx -s reload #retarta o nginx
[/shell]



Sem comentários

Deixe um comentário!





Assine o nosso feed!

Aqui...

é um espaço colaborativo. Se você tem algo muito legal a dizer, envie pra gente no voraz@voraz.com.br

Categorias




Arquivo

Links