Für ein neues Projekt haben wir gestern bei 1&1 einen Server bestellt. Es war CentOS 5 vorinstalliert. Das Projekt wird in Ruby on Rails entwickelt. Hier sind meine Installationsschritte:
Erstmal alles auf den neuesten Stand bringen:
yum upgrade yum install lynx bc gcc make
Mein frisch installierter Server hatte Probleme mit dem Auflösen mancher Domains. Das lag an dem via DHCP bezogenen Nameserver.
Als nächstes habe ich die MySQL-Tuning-Einstellungen von meinem anderen Server übernommen. Ich werde hier nicht ins Detail gehen (wird wohl ein anderer Artikel), aber empfehle als Einstieg das Tuning Primer Script, welches bc benötigt.
touch /var/log/mysqld-slow-queries.log chown mysql.mysql /var/log/mysqld-slow-queries.log vi /etc/my.cnf /etc/init.d/mysqld restart
Dann User und Datenbank einrichten für das Rails-Projekt.
Dann kümmern wir uns mal um FastCGI bzw. fcgi. Achtung: Wir haben ein 64bit-System. Daher steht unten /usr/lib64/httpd – für 32bit durch /usr/lib/httpd ersetzen.
yum install libtool httpd-devel apr apr-devel apr-util-devel emacs-common cd ~ wget http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz tar xvzf fcgi-2.4.0.tar.gz cd fcgi-2.4.0 ./configure make make install
Und nun mod_fastcgi
cd ~ wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz tar xvzf mod_fastcgi-2.4.6.tar.gz cd mod_fastcgi-2.4.6 cp Makefile.AP2 Makefile make top_dir=/usr/lib64/httpd make install top_dir=/usr/lib64/httpd vi /etc/httpd/conf.d/mod_fastcgi.conf
Dort nur eine Zeile reinschreiben:
LoadModule fastcgi_module modules/mod_fastcgi.so
Packete, die wir für Ruby oder Gems brauchen werden:
yum install mysql-devel readline-devel
Ruby installieren. Ich wollte eine aktuellere Version, als die, die ich mit yum install ruby bekommen hätte. Die Rails-Seite empfielt immer eine Ruby-Version, also warum nicht diese verwenden? Ich habe mein ruby auf anderen Servern in /usr/local/bin/ruby und wollte es hier deshalb auch so haben. Warum es auf den anderen Servern so ist, weiss ich nicht mehr.
cd ~ wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p174.tar.gz tar xzvf ruby-1.8.7-p174.tar.gz cd ruby-1.8.7-p174 ./configure --prefix=/usr/local make make install
Edit: Auf dem neuen Server reichte das aus, um script/console zum laufen zu bekommen. Auf dem alten Server (selber Hoster, selbes OS, …) nicht. Hier half dies:
cd ~/ruby-1.8.7-p174/ext/readline
ruby extconf.rb
make
make install
So, jetzt her mit Rubygems (aktuelle Version nachsehen!) und ein par Gems.
cd ~ wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz tar xzvf rubygems-1.3.5.tgz cd rubygems-1.3.5 ruby setup.rb gem install rails -v 2.3.5 gem install mysql gem install fcgi
Jetzt das Projekt installieren. Ich habe meine Projekte in Subversion. Git geht natürlich auch. CVS geht schon lange nicht mehr.
yum install subversion cd /var/www/vhosts svn co <Dein Projekt> cd <Dein Projekt> chown apache.apache -R . rake db:migrate RAILS_ENV=production rake db:seed RAILS_ENV=production
vi /etc/httpd/conf.d/<Dein Projekt>.conf
<VirtualHost <Deine Server-IP>:80> ServerAdmin <Deine E-Mail-Adresse> DocumentRoot /var/www/vhosts/<Dein Projekt>/public/ ServerName www.<Dein Projekt> ServerAlias <Dein Projekt> ErrorLog logs/<Dein Projekt>-error_log CustomLog logs/<Dein Projekt>-access_log common <Directory /var/www/vhosts/<Dein Projekt>/public> Options ExecCGI FollowSymLinks AllowOverride all Order allow,deny Allow from all </Directory> FileETag MTime Size AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript application/x-javascript text/css BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html </VirtualHost>
Für meine Projekte brauche ich eigentlich immer rmagick. Es gab/gibt memory leaks in rmagick, die man mit vorsichtigem Coden vermeiden kann. Bitte schaut euch auch Alternativen wie minimagick an. Ich installiere ImageMagick erst per yum, um Abhängigkleiten nicht alle einzeln eingeben zu müssen, deinstalliere es dann aber wieder und installiere eine deutlich neuere Version per Hand.
cd ~ yum install ImageMagick ImageMagick-devel libpng libpng-devel freetype freetype-devel giflib giflib-devel yum erase ImageMagick ImageMagick-devel wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz tar -xzvf ImageMagick.tar.gz cd ImageMagick-6.5.8-10 ./configure
Hier die Gelegenheit nutzen, um zu schauen, ob alle Grafikformate aktiv sind, die man benötigt. Sonst gegebenenfalls die Nötigen Bibliotheken installieren und nochmal ./configure laufen lassen.
make make install gem install rmagick
Ach ja und nicht vergessen:
apachectl restart
Tags: apache, centos, fastcgi, installation, rails, ruby, ruby on rails
Hallo,
danke für die gute Anleitung, aber wie formuliere ich svn co
genau, was muss ich bei angeben. Und wo kann ich diese
Angabe auslesen?
Gruss und Danke
Thomas
Hi Thomas,
mit “svn help co” sieht man die Syntax und die Parameter. Wenn Dein Code schon im Subversion ist, also dann svn co http://dein.sv.host/dein/projekt – eben die URL Deines Repositories. Alternativ kannst Du den Code aber natürlich auch anders auf den Server legen (per FTP zum Beispiel).
LG Jan