Questo tutorial spiega come installare Redmine con SVN su un server cPanel/CentOS 5.6. Redmine è un’applicazione web di gestione progetto flessibile. Scritto utilizzando il Ruby on Rails quadro, è cross-platform e cross-database.
Tutti i passaggi vengono eseguiti come ‘root’.
Prima dell’installazione verificare se ImageMagick è installato:
# /scripts/checkimagemagick
ok
Se non si tratta quindi di installarlo:
# /scripts/installimagemagick
Ci vorranno pochi minuti quindi preparano un caffè. 😉
Dopo ImageMagick è installato vediamo iniziare con mod_dav.
Verifica se mod_dav è attivata:
# httpd -M | grep dav
dav_module (statico)
dav_fs_module (statico)
Se visualizzato nulla quindi ricompilare Apache usando:
# /scripts/easyapache
- Verrà caricato semplice CLI:
- Spostare con ‘Tab’ tra i pulsanti.
- Carica default – “Precedentemente salvato Config”
- Iniziare a personalizzare sulla base del profilo.
- Scegliere la versione più recente di Apache (ad es.: 2.2.22).
- Scegliere l’ultima versione stabile di PHP (ad es.: 5.3.15).
- Spostare con il tasto ‘Tab’ “Esaustivo elenco di opzioni”.
- Sotto il marchio “Built-in modulo di Apache” Dav e DAVFs
- Spostare verso il basso con freccia giù “Preferenze”.
- Mark “Archivio di Backup (solo per questa sessione)” – ovviamente per creare un backup di lavorare Apache 🙂
- “Passo successivo” > “Salva e costruire” > confermare tutto se chiesto… E l’esecuzione della compilazione.
Ora è possibile avere 20-30 minuti break – bere caffè precedentemente preparato 😀
Dopo con successo è finito nuovamente check se dav è ora abilitato:
# httpd -M | grep dav
dav_module (statico)
dav_fs_module (statico)
Poi abbiamo bisogno di installare/attivare sovversione.
# cd /usr/local/src/
Ultimo pacchetto di rpmforge rpm di repo http://pkgs.repoforge.org/rpmforge-release/ secondo l’architettura del sistema di verifica (uname -p) e scaricare e installarlo:
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
# rpm -K rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
# rpm -i rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
Installare subversion ultime da rpmforge:
# yum --enablerepo=rpmforge install subversion
Risorse di Get di subversion stesso rilasciare hai appena installato (ad esempio 1.6.11):
# svn --version
SVN, versione 1.6.11 (r934486)
compilato 14 maggio 2012, 05:36:18
# yum list subversion
Pacchetti installati
Subversion.i386 1.6.11-10.el5_8 installato
Subversion.x86_64 1.6.11-10.el5_8 installato
# wget http://subversion.tigris.org/downloads/subversion-1.6.11.tar.bz2
Verifica il pacchetto più recente fusione tra SQLite su http://www.sqlite.org/download.html e scaricare il programma (ad es.: 3.7.13):
# wget http://www.sqlite.org/sqlite-amalgamation-3071300.zip
Disfare tutto e preparare per la configurazione:
# tar xjf subversion-1.6.11.tar.bz2
# decomprimere sqlite-fusione-3071300.zip
# mkdir -p subversion-1.6.11/sqlite-amalgamation/
# cp sqlite-fusione-3071300/sqlite3.c subversion-1.6.11/sqlite-amalgamation/sqlite3.c
# ls-lad /usr/local/apache/bin/apxs/home/cpeasyapache/src/httpd * / srclib/apr/home/cpeasyapache/src/httpd * / srclib/apr-util
drwxr-xr-x 26 root root 4096 Aug 11 05:36 /home/cpeasyapache/src/httpd-2.2.22/srclib/apr/
drwxr-xr-x 20 root root 4096 Aug 11 05:37 /home/cpeasyapache/src/httpd-2.2.22/srclib/apr-util/
-rwxr-xr-x 1 root root 22652 Aug 11 05:36 /usr/local/apache/bin/apxs*
^^^^^^^^^^^^^^
Notice the paths – will be needed for next step.
Configure, build and install subversion:
# cd subversion-1.6.11
# ./configure –with-apxs=/usr/local/apache/bin/apxs –with-apr=/home/cpeasyapache/src/httpd-2.2.22/srclib/apr –with-apr-util=/home/cpeasyapache/src/httpd-2.2.22/srclib/apr-util
# make clean
# make && make install
Again – take a short break…
After successful installation of subversion let’s configure it.
Create include folder for EA3 config file:
# mkdir -p /usr/local/apache/conf/userdata/std/2/[USERNAME]/[DOMAIN]
# vi /usr/local/apache/conf/userdata/std/2/[USERNAME]/[DOMAIN]/svn.conf
Add following lines:
<IfModule mod_dav_svn.c> <Location /svn> DAV svn SVNPath /home/[USERNAME]/svn AuthType Basic AuthName "Subversion" AuthUserFile /home/[USERNAME]/.svn.htpasswd Require valid-user </Location> </IfModule>
Find the location of modules:
# updatedb
# locate mod_dav_svn.so mod_authz_svn.so
/usr/local/apache/modules/mod_authz_svn.so
/usr/local/apache/modules/mod_dav_svn.so
^^^^^^^^^^^^^^
Notice the paths – will be needed for next step.
# vi /etc/httpd/conf/includes/pre_main_global.conf
Add following lines:
LoadModule dav_svn_module /usr/local/apache/modules/mod_dav_svn.so LoadModule authz_svn_module /usr/local/apache/modules/mod_authz_svn.so
Create svn repository:
# cd /home/[USERNAME]
# svnadmin create svn
# chown -R [USERNAME]:nobody svn
Check if htpasswd is present:
# locate htpasswd
.
.
/usr/local/apache/bin/htpasswd
.
.
# /usr/local/apache/bin/htpasswd -cm /home/[USERNAME]/.svn.htpasswd [USERNAME_FOR_SVN]
Verrà richiesto di impostare una nuova password.
Infine fare:
# ln -s /home/[USERNAME]/svn /svn
Set up della sovversione è fatto, ora facciamo renderlo permanente e apportare alcune modifiche…
Creare script di avvio:
# vi /etc/init.d/subversion
Inserire seguenti linee:
#!/bin/bash # # /etc/rc.d/init.d/subversion # # Starts the Subversion Daemon # # chkconfig: 345 90 10 # description: Subversion Daemon # processname: svnserve source /etc/rc.d/init.d/functions [ -x /usr/bin/svnserve ] || exit 1 # To pass additional options (for instace, -r root of directory to server) to # the svnserve binary at startup, set OPTIONS here. # OPTIONS="-r /svn" RETVAL=0 prog="svnserve" desc="Subversion Daemon" start() { echo -n $"Starting $desc ($prog): " daemon $prog -d $OPTIONS RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog echo } stop() { echo -n $"Shutting down $desc ($prog): " killproc $prog RETVAL=$? [ $RETVAL -eq 0 ] && success || failure echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog return $RETVAL } case "$1" in start) start ;; stop) stop ;; restart) stop start RETVAL=$? ;; condrestart) [ -e /var/lock/subsys/$prog ] && restart RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart|condrestart}" RETVAL=1 esac exit $RETVAL
Ora di verificare se lo script di avvio è funzionante:
# service subversion status
Usage: /etc/init.d/subversion {start|stop|restart|condrestart}
Grande! 🙂
Consentirle di lanciare all’avvio del server:
subversion chkconfig # su
# chkconfig – sovversione elenco
subversion 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Ora controllare se tutto è configurato correttamente e applicare le modifiche:
# /scripts/verify_vhost_includes
Test /usr/local/apache/conf/userdata/std/2/[USERNAME]/[DOMAIN]/svn.conf…ok
^^^^^^^^^^^^^^
Non continuare se ci sono errori! Esaminare e controllare dove si trova l’errore!
# /scripts/ensure_vhost_includes --user=[USERNAME]
info [safeapacherestart] riavvio forzato trascorsi secondi: 2
Apache si è riavviato.
# /scripts/rebuildhttpdconf
Built /usr/local/apache/conf/httpd.conf OK
# /scripts/restartsrv_httpd
# service subversion restart
Controllo finale:
Vai a www.yoursite.com/svn
Se tutto funziona bene dovrebbe essere richiesto per nome utente/password.
Dopo SVN è impostato correttamente Let’s deal con Redmine.
Va’ a casa:
# cd
Ottenere il più recente fonte stabile di Redmine:
# svn co http://redmine.rubyforge.org/svn/branches/2.0-stable redmine-2.0
Installare i prerequisiti:
Fardellatrice di installare gemma n.
n # gem install rmagick
Installare il pacchetto:
# cd redmine-2.0
n # pacchetto di installazione..–senza sviluppo test postgresql sqlite
^^^^^^^^^^^^
Si noti che ‘..–senza ‘ può avere ‘rmagick’ come parametro, se non è installato.
Creare un database e l’utente per Redmine (in questo caso MySQL):
# mysql -u [USERNAME] -p
MySQL > creare redmine set di caratteri database utf8;
MySQL > creare redmine_devel set di caratteri database utf8;
MySQL > concedere tutti i privilegi su [nome utente] _redmine [nome utente];
MySQL > concedere tutti i privilegi su [nome utente] _redmine_devel [nome utente];
MySQL > show databases;
+————————–+
| Database |
+————————–+
| INFORMATION_SCHEMA |
| [USERNAME] _redmine |
| [USERNAME] _redmine_devel |
+————————–+
3 righe nel set (0,16 sec)
# cp config/database.yml.example yml
# vi yml
Modificare il file secondo le vostre esigenze con database precedentemente impostato, ad esempio:
production: adapter: mysql database: [USERNAME]_redmine host: localhost username: [USERNAME] password: [PASSWORD] encoding: utf8 development: adapter: mysql database: [USERNAME]_redmine_development host: localhost username: [USERNAME] password: {PASSWORD} encoding: utf8
Creare token segreta, compilare il database, ecc…
n # rastrello generate_secret_token
# RAILS_ENV = produzione rake db: migrate
# RAILS_ENV = produzione rastrello redmine:load_default_data
# mkdir -p tmp pubblico/plugin_assets
# chown -R [USERNAME]: [nome utente] file registro pubblico tmp/plugin_assets
# chmod -R 755 file registro pubblico tmp/plugin_assets
Ora provare se funziona utilizzando server web WEBrick:
# ruby script/rails server webrick -e production
Scegliere il browser Web http://[DOMAINNAME]:3000
Admin account predefinito: admin / admin
Una volta controllato e tutto sembra di lavoro torna alla sessione di terminale e uccidere il WEBrick (ad es.: CTLR + C).
Redmine è istituito – ora abbiamo bisogno di farlo funzionare con ‘Phusion Passenger’, aka mod_rails’ ‘.
Torna a casa (ancora 🙂 e installare passeggero:
# cd
passeggero di installare gemma n.
n # passeggeri-install-apache2-modulo
Se tutto va bene, installatore vi dirà cosa fare, per esempio:
-------------------------------------------- The Apache 2 module was successfully installed. Please edit your Apache configuration file, and add these lines: LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.15/ext/apache2/mod_passenger.so PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.15 PassengerRuby /usr/bin/ruby After you restart Apache, you are ready to deploy any number of Ruby on Rails applications on Apache, without any further Ruby on Rails-specific configuration! Press ENTER to continue. -------------------------------------------- Deploying a Ruby on Rails application: an example Suppose you have a Rails application in /somewhere. Add a virtual host to your Apache configuration file and set its DocumentRoot to /somewhere/public: <VirtualHost *:80> ServerName www.yourhost.com # !!! Be sure to point DocumentRoot to 'public'! DocumentRoot /somewhere/public <Directory /somewhere/public> # This relaxes Apache security settings. AllowOverride all # MultiViews must be turned off. Options -MultiViews </Directory> </VirtualHost> And that's it! You may also want to check the Users Guide for security and optimization tips, troubleshooting and other useful information: /usr/lib/ruby/gems/1.8/gems/passenger-3.0.15/doc/Users guide Apache.html Enjoy Phusion Passenger, a product of Phusion (www.phusion.nl) :-) https://www.phusionpassenger.com Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.
Facciamolo allora!
# vi /usr/local/apache/conf/includes/pre_main_global.conf
Aggiungere le seguenti righe (in base all’output dall’installazione di passeggeri):
# Load passenger module LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.15/ext/apache2/mod_passenger.so
Ora modificare EA3 include file:
# vi /etc/httpd/conf/userdata/std/2/[USERNAME]/[DOMAINNAME]/redmine.conf
Aggiungere le seguenti righe (ancora una volta, in base all’output precedente):
<IfModule mod_passenger.c> PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.15 PassengerRuby /usr/bin/ruby # Optional - delete HTTP header which would be added by Passenger # Header always unset "X-Powered-By" # Header always unset "X-Rack-Cache" # Header always unset "X-Content-Digest" # Header always unset "X-Runtime" # Optional - for passenger tuning # PassengerLogLevel 0 # RailsAutoDetect On # PassengerMaxPoolSize 20 # PassengerMaxInstancesPerApp 4 # PassengerPoolIdleTime 3600 # PassengerUseGlobalQueue on # #PassengerHighPerformance on !!! conflict with DAV svn # PassengerStatThrottleRate 10 # RailsSpawnMethod smart # RailsAppSpawnerIdleTime 86400 # RailsFrameworkSpawnerIdleTime 0 # PassengerUserSwitching On # PassengerDefaultUser apache # PassengerMaxRequests 3000 # PassengerMinInstances 3 RailsBaseURI /redmine <Directory /home/[USERNAME]/public_html/redmine> Options -MultiViews </Directory> </IfModule>
Creare un link simbolico e controllare:
# ln -s /home/[USERNAME]/redmine-2.0/public/Home / [nome utente] / public_html/redmine
# ls -l/Home / [nome utente] / public_html/redmine
lrwxrwxrwx 1 root root 33 Aug 12 04:05 /home/[USERNAME]/public_html/redmine -> /home/[USERNAME]/redmine-2.0/public/
Ora aprire un’altra sessione di terminale e mantenere il controllo per errori:
# tail -f /usr/local/apache/logs/error_log
Indietro nella prima sessione di terminale:
# /scripts/verify_vhost_includes
Testing /usr/local/apache/conf/userdata/std/2/[USERNAME]/[DOMAINNAME]/redmine.conf...ok
Se tutto è OK, quindi:
# / scripts/ensure_vhost_includes..–utente = [nome utente]
# / scripts/rebuildhttpdconf
# / scripts/restartsrv_httpd
E questo dovrebbe essere! 🙂
Riferimenti:
- http://www.webhostgear.com/122.html
- http://docs.cPanel.NET/TWiki/pub/AllDocumentation/TrainingResources/TrainingSlides08/EA3Build.pdf
- http://wiki.CentOS.org/howtos/Subversion
- http://Sven.webiny.com/Subversion-on-cPanel-3-with-CentOS-55-and-easyapache-32/
- http://www.rackset.com/Blog/install-subversion-CentOS-cPanel-VPS-with-autostart-script-reboot
- http://www.serveradminz.com/Blog/?p=107
- http://www.webxpert.ro/Andrei/2010/03/12/Install-Subversion-for-VPS-cPanel-under-CentOS/
- http://www.Edugeek.net/forums/nix/26101-Subversion-WHM-cPanel-11-a.html
- http://StackOverflow.com/questions/1254366/Problem-installing-rmagick-rubygem-on-CentOS-5/7766705#7766705
- http://jetpackweb.com/Blog/2009/07/21/install-Phusion-Passenger-a-k-a-Mod_Rails-on-cPanel-server
- http://www.modrails.com/documentation/Users%20Guide%20Apache.html#_installing_via_the_gem
- http://www.modrails.com/documentation/Users%20Guide%20Apache.html#deploying_rails_to_sub_uri
- http://www.redmine.org/projects/Redmine/wiki/HowTo_configure_Apache_to_run_Redmine