ArchLinux: Ambiente RubyOnRails e PHP
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!