Ridiculously long set of instructions on how to get Gitorious running on CentOS 5.6 64-bit. The vast majority of these instructions are copied from http://famousphil.com/blog/2011/06/installing-gitorious-on-centos-5-6-x64/
Before applying these instructions, do yourself a favor and search and replace for the following:
<hostname.domain>
<mysqladminpassword>
<admin email>
<gitmysqlpassword>
<country>
<state>
<city>
<company>
<gitoriousadminpassword>
######################################## # Centos 5.6 64-bit - install for gitorious # Using VMware Fusion: 2CPU, 2GB RAM, 20GB HD # Install from 5.6 x86_64 DVD, and generally accept all defaults ######################################## # set hostname manually <hostname.domain> # uncheck "Desktop - Gnome" # customize now Development... Development Libraries Development Tools Java Development Ruby Servers... MySQL Database Base System Uncheck Dialup Networking Support Java # reboot as install completes # ignore configuration app # login as root yum -y update # snapshot VM ######################################## # gitorious install # Shamelessly cribbed from: # http://famousphil.com/blog/2011/06/installing-gitorious-on-centos-5-6-x64/ ######################################## #################### # setup rpmforge #################### wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm #################### # install required packages #################### yum install -y git-core git-svn java-1.6.0-openjdk vim-* apg pcre pcre-devel zlib zlib-devel libyaml-devel GeoIP-devel sphinx mysql-devel mysql-server mysql #################### # secure mysql #################### service mysqld start /usr/bin/mysql_secure_installation Enter current password for root (enter for none): <enter> Set root password? [Y/n] Y New password: <mysqladminpassword> Re-enter new password: <mysqladminpassword> Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y #################### # get latest stable ruby enterprise (the rubylang 1.9 branch will not work properly) #################### # http://www.rubyenterpriseedition.com/download.html wget http://rubyenterpriseedition.googlecode.com/files/ruby-enterprise-1.8.7-2011.03.tar.gz tar xzf ruby-enterprise-1.8.7-2011.03.tar.gz cd ruby-enterprise-1.8.7-2011.03 ./installer # (accept the defaults, 2 prompts will come up) # create symlink cd /opt ln -s ruby-enterprise-1.8.7-2011.03 ruby #################### # edit system files #################### vim /etc/profile # add the following to /etc/profile in the 'if [ "$EUID" = "0" ]' section pathmunge /opt/ruby/bin export RAILS_ENV=production export PATH=/usr/local/sphinx/bin:/usr/local/bin:$PATH export MAGICK_HOME=/usr/local export DYLD_LIBRARY_PATH=/usr/local/lib vim /etc/bashrc # add to the very bottom pathmungea () { if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then if [ "$2" = "after" ] ; then PATH=$PATH:$1 else PATH=$1:$PATH fi fi } pathmungea /opt/ruby/bin export RAILS_ENV=production export PATH=/usr/local/sphinx/bin:/usr/local/bin:$PATH export MAGICK_HOME=/usr/local export DYLD_LIBRARY_PATH=/usr/local/lib unset pathmungea # logout, login as root to get new settings #################### # ImageMagick install #################### yum -y install ImageMagick yum install -y tcl-devel libpng-devel libjpeg-devel ghostscript-devel bzip2-devel freetype-devel libtiff-devel # ImageMagick on yum is outdated, so a bug will show up if we don’t do this for now. cd ~ wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-6.7.0*.tar.gz tar xzf ImageMagick-6.7.0*.tar.gz cd ImageMagick-6.7.0* ./configure --prefix=/usr/local --with-bzlib=yes --with-fontconfig=yes --with-freetype=yes --with-gslib=yes --with-gvc=yes --with-jpeg=yes --with-jp2=yes --with-png=yes --with-tiff=yes make; make install #################### # install various gems #################### gem install sphinx rmagick ultrasphinx mime-types chronic ruby-hmac daemons mime-types BlueCloth ruby-yadis ruby-openid rspec rspec-rails RedCloth stompserver --no-ri --no-rdoc #################### # install some repositories #################### cd ~ wget http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm #################### # create git user and get gitorious code #################### useradd -d /home/git git su git cd ~ mkdir log mkdir conf git clone git://gitorious.org/gitorious/mainline.git gitorious cd gitorious/ mkdir -p tmp/pids exit # (exit here will return to root) #################### # fix up file system and modify gitorious templates #################### ln -s /home/git/gitorious/script/gitorious /usr/local/bin/gitorious cd /home/git/gitorious/ chmod ug+x script/* chmod -R g+w config/ log/ public/ tmp/ su git vim /home/git/gitorious/doc/templates/centos/git-daemon RUBY_HOME="/opt/ruby" GITORIOUS_HOME="/home/git/gitorious" vim /home/git/gitorious/doc/templates/centos/git-ultrasphinx GITORIOUS_HOME="/home/git/gitorious" vim /home/git/gitorious/doc/templates/centos/git-poller RUBY_HOME="/opt/ruby" GITORIOUS_HOME="/home/git/gitorious" vim /home/git/gitorious/doc/templates/centos/stomp RUBY_HOME="/opt/ruby" GEMS_HOME="/opt/ruby" GITORIOUS_HOME="/home/git/gitorious" exit # return to root #################### # copy sample .yml #################### cd /home/git/gitorious cp config/database.sample.yml config/database.yml cp config/gitorious.sample.yml config/gitorious.yml cp config/broker.yml.example config/broker.yml # install bundle bundle install # fix up filesystem su git mkdir /home/git/data mkdir /home/git/data/repositories mkdir /home/git/data/tarballs mkdir /home/git/data/tarball-work chown -R git:git /home/git/data # enable key management mkdir /home/git/.ssh chmod -R 700 /home/git/.ssh touch /home/git/.ssh/authorized_keys chmod 600 /home/git/.ssh/authorized_keys chmod -R 700 /home/git/data exit # back to root # permissions fix: chown -R git:git /home/git chmod 711 /home/git # generate cookie_secret (for use in gitorious.yml) # you should use what *you* generate, not what's listed here apg -m 64 hylmIrgInonsOlAvoarfortisFagNevDawkejIndyopMaxegpistAtWepkidkib8yugfackicShakfenkoskOoddaymrityasUtvecapJuejwoolfyijnecCiafilpemnijKaheavHiskyavGiwyghejCaitkopFovlekdaksyeyftAckinPabyurEztisOdreckViHiffeddIrtyffUrbUjirlyis2OkozDoshObUtyefEbnafmicoitOftEtKuyebTidVoHimgovGeapCyeluvarvAwIjRajRoamDofaughCidujoynmendUcgevevocciHosoichvarm)SliagishpenveafQuecJiatmalsyimyizAicMirAwtanpow7 #################### # edit yml files #################### vim /home/git/gitorious/config/gitorious.yml ########## development: cookie_secret: hylmIrgInonsOlAvoarfortisFagNevDawkejIndyopMaxegpistAtWepkidkib8yugfackicShakfenkoskOoddaymrityasUtvecapJuejwoolfyijnecCiafilpemnijKaheavHiskyavGiwyghejCaitkopFovlekdaksyeyftAckinPabyurEztisOdreckViHiffeddIrtyffUrbUjirlyis2OkozDoshObUtyefEbnafmicoitOftEtKuyebTidVoHimgovGeapCyeluvarvAwIjRajRoamDofaughCidujoynmendUcgevevocciHosoichvarm)SliagishpenveafQuecJiatmalsyimyizAicMirAwtanpow7 repository_base_path: "/home/git/data/repositories" extra_html_head_data: system_message: gitorious_client_port: 80 gitorious_client_host: <hostname.domain> gitorious_host: <hostname.domain> gitorious_user: git exception_notification_emails: <admin email> mangle_email_addresses: true public_mode: true locale: en archive_cache_dir: "/home/git/data/tarballs" archive_work_dir: "/home/git/data/tarball-work" only_site_admins_can_create_projects: true hide_http_clone_urls: false is_gitorious_dot_org: false use_ssl: false test: cookie_secret: hylmIrgInonsOlAvoarfortisFagNevDawkejIndyopMaxegpistAtWepkidkib8yugfackicShakfenkoskOoddaymrityasUtvecapJuejwoolfyijnecCiafilpemnijKaheavHiskyavGiwyghejCaitkopFovlekdaksyeyftAckinPabyurEztisOdreckViHiffeddIrtyffUrbUjirlyis2OkozDoshObUtyefEbnafmicoitOftEtKuyebTidVoHimgovGeapCyeluvarvAwIjRajRoamDofaughCidujoynmendUcgevevocciHosoichvarm)SliagishpenveafQuecJiatmalsyimyizAicMirAwtanpow7 repository_base_path: "/home/git/data/repositories" extra_html_head_data: system_message: gitorious_client_port: 80 gitorious_client_host: <hostname.domain> gitorious_host: <hostname.domain> gitorious_user: git exception_notification_emails: <admin email> mangle_email_addresses: true public_mode: true locale: en archive_cache_dir: "/home/git/data/tarballs" archive_work_dir: "/home/git/data/tarball-work" only_site_admins_can_create_projects: true hide_http_clone_urls: false is_gitorious_dot_org: false use_ssl: false production: cookie_secret: hylmIrgInonsOlAvoarfortisFagNevDawkejIndyopMaxegpistAtWepkidkib8yugfackicShakfenkoskOoddaymrityasUtvecapJuejwoolfyijnecCiafilpemnijKaheavHiskyavGiwyghejCaitkopFovlekdaksyeyftAckinPabyurEztisOdreckViHiffeddIrtyffUrbUjirlyis2OkozDoshObUtyefEbnafmicoitOftEtKuyebTidVoHimgovGeapCyeluvarvAwIjRajRoamDofaughCidujoynmendUcgevevocciHosoichvarm)SliagishpenveafQuecJiatmalsyimyizAicMirAwtanpow7 repository_base_path: "/home/git/data/repositories" extra_html_head_data: system_message: gitorious_client_port: 80 gitorious_client_host: <hostname.domain> gitorious_host: <hostname.domain> gitorious_user: git exception_notification_emails: <admin email> mangle_email_addresses: true public_mode: true locale: en archive_cache_dir: "/home/git/data/tarballs" archive_work_dir: "/home/git/data/tarball-work" only_site_admins_can_create_projects: true hide_http_clone_urls: false is_gitorious_dot_org: false use_ssl: false ########## vim /home/git/gitorious/config/broker.yml ########## production: adapter: stomp development: adapter: stomp test: adapter: stomp ########## vim /home/git/gitorious/config/database.yml ########## development: adapter: mysql database: gitorious_dev username: git password: <gitmysqlpassword> host: localhost encoding: utf8 test: adapter: mysql database: gitorious_test username: git password: <gitmysqlpassword> host: localhost encoding: utf8 production: adapter: mysql database: gitorious username: git password: <gitmysqlpassword> host: localhost encoding: utf8 ########## #################### # initialize mysql #################### mysql -uroot -p'<mysqladminpassword>' create database gitorious; create database gitorious_test; create database gitorious_dev; CREATE user 'git'@'localhost' IDENTIFIED BY '<gitmysqlpassword>'; GRANT ALL ON gitorious.* TO 'git'@'localhost'; GRANT ALL ON gitorious_test.* TO 'git'@'localhost'; GRANT ALL ON gitorious_dev.* TO 'git'@'localhost'; FLUSH privileges; exit; #################### # fix permissions #################### chown -R git:git /home/git chmod -R 755 /home/git/data chmod 755 /home/git/gitorious #################### # run bundle commands #################### cd /home/git/gitorious bundle exec rake db:create:all bundle exec rake db:setup bundle exec rake db:migrate bundle exec rake gems:install #################### # fix permissions #################### chown -R git:git /home/git chmod -R 755 /home/git/data chmod 755 /home/git/gitorious #################### # set up daemons #################### # gem uninstall daemons 1.1.x version (you'll see specific version in an error after 'service git-daemon start') gem uninstall daemons -v 1.1.4 ln -s /home/git/gitorious/doc/templates/centos/git-daemon /etc/init.d/git-daemon chmod +x /etc/init.d/git-daemon chkconfig --add git-daemon service git-daemon start ln -s /home/git/gitorious/doc/templates/centos/stomp /etc/init.d/stomp chmod +x /etc/init.d/stomp chkconfig --add stomp service stomp start ln -s /home/git/gitorious/doc/templates/centos/git-poller /etc/init.d/git-poller chmod +x /etc/init.d/git-poller chkconfig --add git-poller service git-poller start #################### # install webserver #################### yum install -y httpd httpd-devel mod_xsendfile # configure xsendfile vim /etc/httpd/conf.d/xsendfile.conf # add below LoadModule line XSendFile on XSendFilePath /home/git/data/tarballs XSendFilePath /home/git/data/repositories # install ruby Passenger to make Ruby applications work on Apache. /opt/ruby-enterprise-1.8.7-2011.03/bin/passenger-install-apache2-module # accept the defaults vim /etc/httpd/conf/httpd.conf ########## ## Section 1: Global Environment ServerTokens OS ServerRoot "/etc/httpd" PidFile run/httpd.pid Timeout 120 KeepAlive Off MaxKeepAliveRequests 100 KeepAliveTimeout 15 Listen 80 LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule auth_digest_module modules/mod_auth_digest.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authn_alias_module modules/mod_authn_alias.so LoadModule authn_anon_module modules/mod_authn_anon.so LoadModule authn_dbm_module modules/mod_authn_dbm.so LoadModule authn_default_module modules/mod_authn_default.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule authz_owner_module modules/mod_authz_owner.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_dbm_module modules/mod_authz_dbm.so LoadModule authz_default_module modules/mod_authz_default.so LoadModule ldap_module modules/mod_ldap.so LoadModule authnz_ldap_module modules/mod_authnz_ldap.so LoadModule include_module modules/mod_include.so LoadModule log_config_module modules/mod_log_config.so LoadModule logio_module modules/mod_logio.so LoadModule env_module modules/mod_env.so LoadModule ext_filter_module modules/mod_ext_filter.so LoadModule mime_magic_module modules/mod_mime_magic.so LoadModule expires_module modules/mod_expires.so LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so LoadModule usertrack_module modules/mod_usertrack.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule mime_module modules/mod_mime.so LoadModule dav_module modules/mod_dav.so LoadModule status_module modules/mod_status.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule info_module modules/mod_info.so LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule vhost_alias_module modules/mod_vhost_alias.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule dir_module modules/mod_dir.so LoadModule actions_module modules/mod_actions.so LoadModule speling_module modules/mod_speling.so LoadModule userdir_module modules/mod_userdir.so LoadModule alias_module modules/mod_alias.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule cache_module modules/mod_cache.so LoadModule suexec_module modules/mod_suexec.so LoadModule disk_cache_module modules/mod_disk_cache.so LoadModule file_cache_module modules/mod_file_cache.so #LoadModule mem_cache_module modules/mod_mem_cache.so LoadModule cgi_module modules/mod_cgi.so LoadModule version_module modules/mod_version.so #LoadModule cern_meta_module modules/mod_cern_meta.so #LoadModule asis_module modules/mod_asis.so LoadModule unique_id_module modules/mod_unique_id.so LoadModule passenger_module /opt/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so PassengerRoot /opt/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.7 PassengerRuby /opt/ruby/bin/ruby Include conf.d/*.conf #ExtendedStatus On User apache Group apache ## Section 2: 'Main' server configuration ServerAdmin <admin email> ServerName <hostname.domain>:80 UseCanonicalName Off DocumentRoot "/var/www/html" <Directory /> Options FollowSymLinks AllowOverride All </Directory> <IfModule mod_userdir.c> UserDir public_html </IfModule> DirectoryIndex index.html index.html.var index.htm AccessFileName .htaccess <Files ~ "^\.ht"> #deny serving ht files Order allow,deny Deny from all </Files> TypesConfig /etc/mime.types DefaultType text/plain <IfModule mod_mime_magic.c> # MIMEMagicFile /usr/share/magic.mime MIMEMagicFile conf/magic </IfModule> HostnameLookups Off #EnableMMAP off #EnableSendfile off ErrorLog logs/error_log LogLevel warn LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent #LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio #CustomLog logs/access_log common #CustomLog logs/referer_log referer #CustomLog logs/agent_log agent CustomLog logs/access_log combined ServerSignature On Alias /icons/ "/var/www/icons/" <Directory "/var/www/icons"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all </Directory> # # WebDAV module configuration section. # <IfModule mod_dav_fs.c> # Location of the WebDAV lock database. DAVLockDB /var/lib/dav/lockdb </IfModule> ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" <Directory "/var/www/cgi-bin"> AllowOverride All Options None Order allow,deny Allow from all </Directory> # Redirect permanent /foo http://www.example.com/bar # Directives controlling the display of server-generated directory listings. IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip AddIconByType (TXT,/icons/text.gif) text/* AddIconByType (IMG,/icons/image2.gif) image/* AddIconByType (SND,/icons/sound2.gif) audio/* AddIconByType (VID,/icons/movie.gif) video/* AddIcon /icons/binary.gif .bin .exe AddIcon /icons/binhex.gif .hqx AddIcon /icons/tar.gif .tar AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip AddIcon /icons/a.gif .ps .ai .eps AddIcon /icons/layout.gif .html .shtml .htm .pdf AddIcon /icons/text.gif .txt AddIcon /icons/c.gif .c AddIcon /icons/p.gif .pl .py AddIcon /icons/f.gif .for AddIcon /icons/dvi.gif .dvi AddIcon /icons/uuencoded.gif .uu AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl AddIcon /icons/tex.gif .tex AddIcon /icons/bomb.gif core AddIcon /icons/back.gif .. AddIcon /icons/hand.right.gif README AddIcon /icons/folder.gif ^^DIRECTORY^^ AddIcon /icons/blank.gif ^^BLANKICON^^ DefaultIcon /icons/unknown.gif #AddDescription "GZIP compressed document" .gz #AddDescription "tar archive" .tar #AddDescription "GZIP compressed tar archive" .tgz ReadmeName README.html HeaderName HEADER.html IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t AddLanguage ca .ca AddLanguage cs .cz .cs AddLanguage da .dk AddLanguage de .de AddLanguage el .el AddLanguage en .en AddLanguage eo .eo AddLanguage es .es AddLanguage et .et AddLanguage fr .fr AddLanguage he .he AddLanguage hr .hr AddLanguage it .it AddLanguage ja .ja AddLanguage ko .ko AddLanguage ltz .ltz AddLanguage nl .nl AddLanguage nn .nn AddLanguage no .no AddLanguage pl .po AddLanguage pt .pt AddLanguage pt-BR .pt-br AddLanguage ru .ru AddLanguage sv .sv AddLanguage zh-CN .zh-cn AddLanguage zh-TW .zh-tw LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW ForceLanguagePriority Prefer Fallback AddDefaultCharset UTF-8 #AddType application/x-tar .tgz #AddEncoding x-compress .Z #AddEncoding x-gzip .gz .tgz AddType application/x-compress .Z AddType application/x-gzip .gz .tgz AddHandler cgi-script .cgi .pl #AddHandler send-as-is asis AddHandler type-map var AddType text/html .shtml AddOutputFilter INCLUDES .shtml # 1) plain text 2) local redirects 3) external redirects #ErrorDocument 500 "The server made a boo boo." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 http://www.example.com/subscription_info.html Alias /error/ "/var/www/error/" <IfModule mod_negotiation.c> <IfModule mod_include.c> <Directory "/var/www/error"> AllowOverride None Options IncludesNoExec AddOutputFilter Includes html AddHandler type-map var Order allow,deny Allow from all LanguagePriority en es de fr ForceLanguagePriority Prefer Fallback </Directory> # ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var # ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var # ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var # ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var # ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var # ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var # ErrorDocument 410 /error/HTTP_GONE.html.var # ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var # ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var # ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var # ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var # ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var # ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var # ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var # ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var # ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var # ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var </IfModule> </IfModule> BrowserMatch "Mozilla/2" nokeepalive BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 BrowserMatch "RealPlayer 4\.0" force-response-1.0 BrowserMatch "Java/1\.0" force-response-1.0 BrowserMatch "JDK/1\.0" force-response-1.0 BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully BrowserMatch "MS FrontPage" redirect-carefully BrowserMatch "^WebDrive" redirect-carefully BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully BrowserMatch "^gnome-vfs/1.0" redirect-carefully BrowserMatch "^XML Spy" redirect-carefully BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully <IfModule prefork.c> StartServers 1 MinSpareServers 1 MaxSpareServers 1 ServerLimit 128 MaxClients 128 MaxRequestsPerChild 1000 </IfModule> ## Section 3: CONF STUFF Include conf/host.conf ########## #################### # setup SSL #################### cd ~ yum install -y mod_ssl openssl openssl genrsa -out ca.key 2048 openssl req -new -key ca.key -out ca.csr # Country Name (2 letter code) [GB]:<country> # State or Province Name (full name) [Berkshire]:<state> # Locality Name (eg, city) [Newbury]:<city> # Organization Name (eg, company) [My Company Ltd]:<company> # Organizational Unit Name (eg, section) []: # Common Name (eg, your name or your server's hostname) []:<hostname.domain> # Email Address []:<admin email> # A challenge password []: # An optional company name []: openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt cp ca.crt /etc/pki/tls/certs cp ca.key /etc/pki/tls/private/ca.key cp ca.csr /etc/pki/tls/private/ca.csr mv /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.disabled vim /etc/httpd/conf/host.conf ########## # enable ~user home directories. <Directory /home/*/public_html> Options MultiViews Indexes SymLinksIfOwnerMatch Includes ExecCGI AllowOverride All Order allow,deny Allow from all </Directory> NameVirtualHost *:80 <VirtualHost *:80> ServerName <hostname.domain> ServerAdmin <admin email> DocumentRoot /home/git/gitorious/public ErrorLog /var/www/errorgit.log CustomLog /var/www/accessgit.log combined <Directory /home/git/gitorious/public> AllowOverride all Options -MultiViews </Directory> </VirtualHost> LoadModule ssl_module modules/mod_ssl.so Listen 443 AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl SSLPassPhraseDialog builtin SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000) SSLSessionCacheTimeout 300 SSLMutex default SSLRandomSeed startup file:/dev/urandom 256 SSLRandomSeed connect builtin SSLCryptoDevice builtin NameVirtualHost *:443 <VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/pki/tls/certs/ca.crt SSLCertificateKeyFile /etc/pki/tls/private/ca.key SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW ServerName <hostname.domain> ServerAdmin <admin email> DocumentRoot /home/git/gitorious/public ErrorLog /var/www/errorgit.log CustomLog /var/www/accessgit.log combined <Directory /home/git/gitorious/public> AllowOverride all Options -MultiViews </Directory> </VirtualHost> ########## # test config service httpd configtest # disable SELinux vi /etc/selinux/config SELINUX=disabled echo 0 >/selinux/enforce # start server service httpd start #################### # fix permissions again #################### chmod 711 /home/git chown -R git:git /home/git #################### # create gitorious admin #################### su git cd ~/gitorious env RAILS_ENV=production script/create_admin Type in Administrator's e-mail: <admin email> Type in Administrator's password: <gitoriousadminpassword> Admin user created successfully. exit # exit back to root #################### # ultrasphinx #################### cd /home/git/gitorious export RAILS_ENV=production export PATH=/usr/local/sphinx/bin:$PATH bundle exec rake ultrasphinx:configure RAILS_ENV=production # due to some deprecation in code, the following two changes need to happen: vim /home/git/gitorious/config/ultrasphinx/production.conf # replace "base_tags" with "tags" if necessary # change "address" to "listen" due to deprecation listen = 0.0.0.0 bundle exec rake ultrasphinx:index RAILS_ENV=production bundle exec rake ultrasphinx:daemon:start RAILS_ENV=production # the following command builds the sphinx dictionary. For me it seg faults, but gets rid of a pesky dictionary error. cd /home/git/gitorious aspell config dict-dir # should show: /usr/lib64/aspell-0.60 cp vendor/plugins/ultrasphinx/examples/ap.multi /usr/lib64/aspell-0.60/ # the next command segfaults, but it makes an annoying error go away in a log bundle exec rake ultrasphinx:spelling:build # Finally, we need to make git-ultrasphinx a daemon. ln -s /home/git/gitorious/doc/templates/centos/git-ultrasphinx /etc/init.d/git-ultrasphinx chmod +x /etc/init.d/git-ultrasphinx #################### # start services automatically #################### chkconfig mysqld on chkconfig httpd on # a few bug fixes ln -s /usr/local/bin/gitorious /usr/bin #################### # fix permissions again #################### chown -R git:git /home/git chmod -R 755 /home/git/data chmod 755 /home/git/gitorious #################### # install memcached #################### yum install -y --enablerepo=remi memcached service memcached start chkconfig memcached on #################### # create script to startup services on boot #################### vim /root/startup.sh #!/bin/sh /etc/init.d/stomp start # seemed to start /etc/init.d/git-daemon start # didn't seem to start /etc/init.d/git-poller start # didn't seem to start /etc/init.d/git-ultrasphinx start # doesn't seem to work - had to "bundle exec rake ultrasphinx:daemon:start RAILS_ENV=production" crontab -e # add the following to root’s crontab MAILTO="" @reboot /root/startup.sh su git crontab -e # add the following to git’s cron, which indexes the site every hour MAILTO="" * */1 * * * cd /home/git/gitorious && /opt/ruby/bin/rake ultrasphinx:index RAILS_ENV=production exit # exit to root #################### # kill iptables #################### chkconfig iptables off reboot #################### # setup mail #################### vim /etc/mail/local-host-names # add local hosts as appropriate localhost <hostname.domain> vim /root/.forward #add your email address to the first line <admin email> service sendmail restart #################### # run tests if you care #################### cd /home/git/gitorious bundle exec rake test #################### # on local box #################### # edit local /etc/hosts to force domain name https://<hostname.domain>/
I found error when I go to this step
ln -s /home/git/gitorious/doc/templates/centos/git-daemon /etc/init.d/git-daemon
chmod +x /etc/init.d/git-daemon
chkconfig –add git-daemon
service git-daemon start
[root@cengito gitorious]# service git-daemon start
Starting git-daemon: /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in `gem_original_require’: no such file to load — daemons (LoadError)
from /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in `require’
from /home/git/gitorious/script/git-daemon:4
[FAILED]
Can you help me?
Not quite sure what’s missing from /home/git/gitorious/script/git-daemon line #4 – it might be that there was an update to gitorious since I did these install instructions…maybe check the git you cloned, and see if moving back in time helps?
UPDATE: Checked the git history, didn’t see any changes that would’ve done anything after I made this post.
Upon closer inspection, it looks like git-daemon line #4 has “require geoip”. I’d try making sure that requirement is fulfilled. The only reference I see to it in my walkthrough is this yum command:
yum install -y git-core git-svn java-1.6.0-openjdk vim-* apg pcre pcre-devel zlib zlib-devel libyaml-devel GeoIP-devel sphinx mysql-devel mysql-server mysql
Thank you for help Jere
I alreay to try
I foudn GeoIp-devel install again and for libyaml-devel I found this
Transaction Check Error:
package libyaml-0.1.3-1.el5.rf.x86_64 (which is newer than libyaml-0.1.2-3.el5.i386) is already installed
package libyaml-devel-0.1.3-1.el5.rf.x86_64 (which is newer than libyaml-devel-0.1.2-3.el5.i386) is already installed
I not sure this relate with my error.
I will try all step again after update centos and will let you know again.
Jere, Now I finished to install Gitorious on my VM I think last error come from some library is missing to install becase I found downtime of gistorios and fedora host
Thank for grate instruction! :)
My pleasure tam, glad it worked out!
First just comment that who ever has done the tutorial did a very good job.
Second, I would like to add some information about some problems that came across during the installation/set up process and how I solve them.
– All the installation process has been done under CentOS 6 x86_64 – so some points are specific for this OS/architecture !!
* Installation el6 rpmforge packages instead of using the “el5” ones described in the guide. Steps:
1. Download the rpmforge-release package. Choose one of the two links below, selecting to match your host’s architecture. If you are unsure of which one to use you can check your architecture with the command uname -i
– i686: > wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
– x86_64: > wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
2. Install DAG’s GPG key
> rpm –import http://apt.sw.be/RPM-GPG-KEY.dag.txt
3. If you get an error message like the following the key has already been imported:
error: http://apt.sw.be/RPM-GPG-KEY.dag.txt: key 1 import failed.
4. Verify the package you have downloaded
> rpm -K rpmforge-release-0.5.2-2.el6.rf.*.rpm
5. Install the package
> rpm -i rpmforge-release-0.5.2-2.el6.rf.*.rpm
* Download ImageMagick manually because the wget link was broken. Link: https://launchpad.net/imagemagick/main/6.7.0-2
* Install extra libraries if Nokogiri gem installation fails:
> sudo yum install -y gcc ruby-devel libxml2 libxml2-devel libxslt libxslt-devel
* > bundle exec rake gems:install -> No such file or directory – /home/git/gitorious/config/gitorious.yml
> cd /home/git/gitorious/config
> cp gitorious.sample.yml gitorious.yml
* Problems running “bundle exec rake gems:install” command:
a) If Password = No error -> config/database.yml // set password with the one created for Mysql
b) Create Gitorious DB:
> mysql -uroot –p’’
> create database gitorious;
create database gitorious_test;
create database gitorious_dev;
CREATE user ‘git’@’localhost’ IDENTIFIED BY ”;
GRANT ALL ON gitorious.* TO ‘git’@’localhost’;
GRANT ALL ON gitorious_test.* TO ‘git’@’localhost’;
GRANT ALL ON gitorious_dev.* TO ‘git’@’localhost’;
FLUSH privileges;
> exit;
* Starting stompserver:Failure
> gem install stompserver (from /home/git/gitorious dir)
* Problems starting httpd service. Modify the apache config file (httpd.conf):
> Comment the LoadModule’s that gives error
> Search for the “mod_passenger.so” library and change the path of it to the right one in the
a) LoadModule passenger_module
b) PassengerRoot
* Install aspell-0.60 if is missing:
> yum install aspell
I followed the entire process and started gitorious. But i am unable to see gitorious page from a browser. What is wrong ?
@Raj – can you check your webserver logs to see if there are any errors?
stompserver (pid 14730) is running…
./git-poller status
ruby (pid 14798) is running…
./git-daemon status
ruby (pid 27930) is running…
service httpd status
httpd (pid 27116) is running…
@Raj – I’m talking about your httpd process logs (see /etc/httpd/conf/host.conf)
Specifically:
ErrorLog /var/www/errorgit.log
CustomLog /var/www/accessgit.log combined
Anything interesting in those two log files when you try to go to your webserver?
Any interesting results when you use “curl” to try to go to your webserver? (curl https:///)
No Sir, both errorgit.log and
accessgit.log are of 0 size
gitorious port 9418 is up, i restarted all daemons still no luck
@Raj – Okay, so your pid (27116) is running, presumably off of /etc/httpd/conf/host.conf
You have no logs in either error, or access.
According to the conf, you should be listening on port 80 and port 443.
So, a few double checks:
netstat -an | grep 80
netstat -an | grep 443
That should validate that your httpd pid is actually listening on those ports.
Then you should be able to telnet on port 80 or 443, to validate you can get to the port from wherever your browser is running.
At this point, it looks like your browser isn’t traversing the network correctly to get to the server.
netstat -an | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:8020 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:44122 127.0.0.1:8020 TIME_WAIT
unix 2 [ ACC ] STREAM LISTENING 9580 private/discard
[root@vc2c09mmk1264 log]# netstat -an | grep 443
[root@vc2c09mmk1264 log]#
when i try http:// i get Apache 2 Test Page. I was expecting Gitorious webpage
Hello
Should port 443 be up for gitorious ?
@Raj – If you followed the instructions for what to put into /etc/httpd/conf/host.conf, it should certainly be listening on port 443.
Check your configs and make sure you’ve actually configured your httpd instance correctly.
Did you actually follow all the instructions line by line? Were there any errors in earlier steps?