天天看点

redmine3的安装和升级

<code>Redmine 3.0的需求:</code>

<code>current trunk  ruby 1.9.3, 2.0.01, 2.1, 2.2    Rails 4.2</code>

<code>1. 搭建redmine3环境</code>

<code>【安装软件包】</code>

<code># yum install zlib-devel gcc gcc-c++ make autoconf curl-devel ImageMagick-devel mysql mysql-devel</code>

<code>【下载安装包,修改db和email的设置】</code>

<code># tar zxvf redmine-3.0.0.tar.gz &amp;&amp; cd redmine-3.0.0/config</code>

<code># cp -a database.yml.example database.yml</code>

<code># cp -a configuration.yml.example configuration.yml</code>

<code>【建立ruby2.2 + rails 4.2的环境】</code>

<code># gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3</code>

<code># curl -sSL https://get.rvm.io | bash -s stable --ruby --rails               </code>

<code>重新登录一次:</code>

<code>$ ruby -</code><code>v</code>

<code>ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-linux]</code>

<code>$ rails -</code><code>v</code>

<code>Rails 4.2.0</code>

<code># rvm gemset list</code>

<code>gemsets </code><code>for</code> <code>ruby-2.2.0 (found </code><code>in</code> <code>/usr/local/rvm/gems/ruby-2</code><code>.2.0)</code>

<code>=&gt; (default)</code>

<code>   </code><code>global</code>

<code># cd /data/website/redmine-3.0.0</code>

<code>【安装依赖包】</code>

<code># bundle install --without development test</code>

<code># useradd -s /sbin/nologin -M -c "redmine" redmine</code>

<code># chown -R redmine:redmine /data/website/redmine-3.0.0</code>

<code>若是全新安装:</code>

<code>【db】</code>

<code>mysql登录后,建立redmine数据库和用户:</code>

<code># mysql -h x.x.x.x -P xxxx -uroot -p  </code>

<code>mysql&gt; create database redmine character </code><code>set</code> <code>utf8 collate utf8_bin;</code>

<code>mysql&gt; create user </code><code>'redmine'</code><code>@</code><code>'127.0.0.1'</code> <code>identified by </code><code>'xxxxxx'</code><code>;</code>

<code>mysql&gt; grant all privileges on redmine.* to </code><code>'redmine'</code><code>@</code><code>'127.0.0.1'</code><code>;</code>

<code>mysql&gt; </code><code>exit</code><code>;</code>

<code># rake generate_secret_token</code>

<code># RAILS_ENV=production rake db:migrate</code>

<code># RAILS_ENV=production rake redmine:load_default_data</code>

<code># mkdir -p tmp tmp/pdf public/plugin_assets</code>

<code># chmod -R 755 files log tmp public/plugin_assets</code>

<code>若是升级:</code>

<code>备份数据库</code>

<code>检查db用户权限</code>

<code>命令行测试连接</code>

<code>执行:</code>

<code># bundle exec rake generate_secret_token</code>

<code># bundle exec rake db:migrate RAILS_ENV=production</code>

<code>若有插件:</code>

<code># bundle exec rake redmine:plugins:migrate RAILS_ENV=production</code>

<code># bundle exec rake tmp:cache:clear tmp:sessions:clear RAILS_ENV=production</code>

<code>启动服务:</code>

<code># cd /data/website/redmine-3.0.0/</code>

<code># ruby bin/rails server webrick -e production</code>

<code>也可以放入后台:</code>

<code># nohup ruby bin/rails server webrick -e production &gt;&gt;/data/log/web/redmine/running_redmine.log 2&gt;&amp;1 &amp;</code>

<code>默认管理员:admin, admin</code>

<code>访问http:</code><code>//IP</code><code>:3000</code>

<code>2. 迁移redmine服务到nginx下</code>

<code># yum install pcre pcre-devel</code>

<code># wget http://nginx.org/download/nginx-1.6.2.tar.gz</code>

<code># tar zxvf nginx-1.6.2.tar.gz -C /data/download/</code>

<code># mkdir -p /var/cache/nginx/{client_temp,proxy_temp,fastcgi_temp,uwsgi_temp,scgi_temp}</code>

<code># gem install passenger</code>

<code># passenger -v</code>

<code>Phusion Passenger version 4.0.59</code>

<code>"Phusion Passenger"</code> <code>is a trademark of Hongli Lai &amp; Ninh Bui.</code>

<code>注:若遇到gem </code><code>install</code> <code>passenger不能生效的问题,可能是ruby的仓库被GFW了,此时,先安装fastthread可以解决问题:</code>

<code># gem install fastthread</code>

<code>安装:</code>

<code># passenger-install-nginx-module</code>

<code>Enter your choice (1 or 2) or press Ctrl-C to abort: 2</code>

<code>--------------------------------------------</code>

<code>Where is your Nginx </code><code>source</code> <code>code located?</code>

<code>Please specify the directory: </code><code>/data/download/nginx-1</code><code>.6.2</code>

<code>Where </code><code>do</code> <code>you want to </code><code>install</code> <code>Nginx to?</code>

<code>Please specify a prefix directory [</code><code>/opt/nginx</code><code>]: </code><code>/etc/nginx</code>

<code>Extra Nginx configure options</code>

<code>If you want to pass extra arguments to the Nginx </code><code>'configure'</code> <code>script, </code><code>then</code>

<code>please specify them. If not, </code><code>then</code> <code>specify nothing and press Enter.</code>

<code>If you specify nothing </code><code>then</code> <code>the </code><code>'configure'</code> <code>script will be run as follows:</code>

<code>  </code><code>sh .</code><code>/configure</code> <code>--prefix=</code><code>'/etc/nginx'</code> <code>--with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --with-cc-opt=</code><code>'-Wno-error'</code> <code>--add-module=</code><code>'/usr/local/rvm/gems/ruby-2.2.0/gems/passenger-4.0.59/ext/nginx'</code>

<code>Extra arguments to pass to configure script: --sbin-path=</code><code>/usr/sbin/nginx</code> <code>--conf-path=</code><code>/etc/nginx/nginx</code><code>.conf --error-log-path=</code><code>/var/log/nginx/error</code><code>.log --http-log-path=</code><code>/var/log/nginx/access</code><code>.log --pid-path=</code><code>/var/run/nginx</code><code>.pid --lock-path=</code><code>/var/run/nginx</code><code>.lock --http-client-body-temp-path=</code><code>/var/cache/nginx/client_temp</code> <code>--http-proxy-temp-path=</code><code>/var/cache/nginx/proxy_temp</code> <code>--http-fastcgi-temp-path=</code><code>/var/cache/nginx/fastcgi_temp</code> <code>--http-uwsgi-temp-path=</code><code>/var/cache/nginx/uwsgi_temp</code> <code>--http-scgi-temp-path=</code><code>/var/cache/nginx/scgi_temp</code> <code>--user=nginx --group=nginx</code>

<code>Confirm configure flags</code>

<code>The Nginx configure script will be run as follows:</code>

<code>  </code><code>sh .</code><code>/configure</code> <code>--prefix=</code><code>'/etc/nginx'</code> <code>--with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --with-cc-opt=</code><code>'-Wno-error'</code> <code>--add-module=</code><code>'/usr/local/rvm/gems/ruby-2.2.0/gems/passenger-4.0.59/ext/nginx'</code> <code>--sbin-path=</code><code>/usr/sbin/nginx</code> <code>--conf-path=</code><code>/etc/nginx/nginx</code><code>.conf --error-log-path=</code><code>/var/log/nginx/error</code><code>.log --http-log-path=</code><code>/var/log/nginx/access</code><code>.log --pid-path=</code><code>/var/run/nginx</code><code>.pid --lock-path=</code><code>/var/run/nginx</code><code>.lock --http-client-body-temp-path=</code><code>/var/cache/nginx/client_temp</code> <code>--http-proxy-temp-path=</code><code>/var/cache/nginx/proxy_temp</code> <code>--http-fastcgi-temp-path=</code><code>/var/cache/nginx/fastcgi_temp</code> <code>--http-uwsgi-temp-path=</code><code>/var/cache/nginx/uwsgi_temp</code> <code>--http-scgi-temp-path=</code><code>/var/cache/nginx/scgi_temp</code> <code>--user=nginx --group=nginx</code>

<code>Nginx with Passenger support was successfully installed.</code>

<code>Please edit your Nginx configuration </code><code>file</code><code>,</code>

<code>and </code><code>set</code> <code>the passenger_root and passenger_ruby configuration options </code><code>in</code> <code>the</code>

<code>'http'</code> <code>block, like this:</code>

<code>  </code><code>http {</code>

<code>      </code><code>...</code>

<code>      </code><code>passenger_root </code><code>/usr/local/rvm/gems/ruby-2</code><code>.2.0</code><code>/gems/passenger-4</code><code>.0.59;</code>

<code>      </code><code>passenger_ruby </code><code>/usr/local/rvm/gems/ruby-2</code><code>.2.0</code><code>/wrappers/ruby</code><code>;</code>

<code>  </code><code>}</code>

<code>After you (re)start Nginx, you are ready to deploy any number of web</code>

<code>applications on Nginx.</code>

<code>Press ENTER to </code><code>continue</code><code>.</code>

<code>Deploying a web application: an example</code>

<code>Suppose you have a web application </code><code>in</code> <code>/somewhere</code><code>. Add a server block</code>

<code>to your Nginx configuration </code><code>file</code><code>, </code><code>set</code> <code>its root to </code><code>/somewhere/public</code><code>, and </code><code>set</code>

<code>'passenger_enabled on'</code><code>, like this:</code>

<code>   </code><code>server {</code>

<code>      </code><code>listen 80;</code>

<code>      </code><code>server_name www.yourhost.com;</code>

<code>      </code><code>root </code><code>/somewhere/public</code><code>;   </code><code># &lt;--- be sure to point to 'public'!</code>

<code>      </code><code>passenger_enabled on;</code>

<code>   </code><code>}</code>

<code>And that's it! You may also want to check the Users Guide </code><code>for</code> <code>security and</code>

<code>optimization tips and other useful information:</code>

<code>  </code><code>/usr/local/rvm/gems/ruby-2</code><code>.2.0</code><code>/gems/passenger-4</code><code>.0.59</code><code>/doc/Users</code> <code>guide Nginx.html</code>

<code>  </code><code>https:</code><code>//www</code><code>.phusionpassenger.com</code><code>/documentation/Users</code><code>%20guide%20Nginx.html</code>

<code>Enjoy Phusion Passenger, a product of Phusion (www.phusion.</code><code>nl</code><code>) :-)</code>

<code>https:</code><code>//www</code><code>.phusionpassenger.com</code>

<code>Phusion Passenger is a trademark of Hongli Lai &amp; Ninh Bui.</code>

<code># useradd -s /sbin/nologin -M -c "nginx Server" nginx</code>

<code># mkdir -p /etc/nginx/conf.d /data/log/svr/nginx /data/log/web/redmine</code>

<code>$ </code><code>cat</code> <code>/etc/nginx/nginx</code><code>.conf</code>

<code>#user  nobody;</code>

<code>worker_processes  4;</code>

<code>error_log  </code><code>/data/log/svr/nginx/error</code><code>.log;</code>

<code>#error_log  logs/error.log  notice;</code>

<code>#error_log  logs/error.log  info;</code>

<code>pid        </code><code>/var/run/nginx</code><code>.pid;</code>

<code>events {</code>

<code>    </code><code>use epoll;</code>

<code>    </code><code>worker_connections  65535;</code>

<code>}</code>

<code>http {</code>

<code>    </code><code>include       mime.types;</code>

<code>    </code><code>default_type  application</code><code>/octet-stream</code><code>;</code>

<code>    </code><code>server_tokens off;</code>

<code>    </code><code>log_format  main  </code><code>'$remote_addr - $remote_user [$time_local] "$request" '</code>

<code>                      </code><code>'$status $body_bytes_sent "$http_referer" '</code>

<code>                      </code><code>'"$http_user_agent" "$http_x_forwarded_for"'</code><code>;</code>

<code>    </code><code>access_log  </code><code>/data/log/svr/nginx/access</code><code>.log  main;</code>

<code>    </code><code>sendfile        on;</code>

<code>    </code><code>tcp_nopush     on;</code>

<code>    </code><code>tcp_nodelay on;</code>

<code>    </code><code>keepalive_timeout  65;</code>

<code>    </code><code>server_names_hash_bucket_size 128;</code>

<code>    </code><code>client_header_buffer_size 32k;</code>

<code>    </code><code>large_client_header_buffers 4 32k;</code>

<code>    </code><code>client_body_temp_path </code><code>/tmp</code><code>;</code>

<code>    </code><code>client_max_body_size 500m;</code>

<code>    </code><code>fastcgi_connect_timeout 600;</code>

<code>    </code><code>fastcgi_send_timeout 300;</code>

<code>    </code><code>fastcgi_read_timeout 3600;</code>

<code>    </code><code>fastcgi_buffer_size 400k;</code>

<code>    </code><code>fastcgi_buffers 16 1m;</code>

<code>    </code><code>fastcgi_busy_buffers_size 10m;</code>

<code>    </code><code>fastcgi_temp_file_write_size 20m;</code>

<code>    </code><code>fastcgi_intercept_errors on;</code>

<code>    </code><code>gzip</code>  <code>on;</code>

<code>    </code><code>gzip_min_length  1k;</code>

<code>    </code><code>gzip_buffers     4 16k;</code>

<code>    </code><code>gzip_http_version 1.0;</code>

<code>    </code><code>gzip_comp_level 2;</code>

<code>    </code><code>gzip_disable        </code><code>"MSIE [1-6]."</code><code>;</code>

<code>    </code><code>gzip_types  text</code><code>/plain</code> <code>application</code><code>/x-javascript</code> <code>text</code><code>/css</code> <code>text</code><code>/javascript</code> <code>application</code><code>/x-httpd-php</code> <code>image</code><code>/jpeg</code> <code>image</code><code>/gif</code> <code>image</code><code>/png</code><code>;</code>

<code>    </code><code>gzip_vary on;</code>

<code>    </code> 

<code>    </code><code>passenger_root </code><code>/usr/local/rvm/gems/ruby-2</code><code>.2.0</code><code>/gems/passenger-4</code><code>.0.59;</code>

<code>    </code><code>passenger_ruby </code><code>/usr/local/rvm/gems/ruby-2</code><code>.2.0</code><code>/wrappers/ruby</code><code>;</code>

<code>    </code><code># Load config files from the /etc/nginx/conf.d directory</code>

<code>    </code><code># The default server is in conf.d/default.conf</code>

<code>    </code><code>include conf.d/*.conf;</code>

<code>$ </code><code>cat</code> <code>/etc/nginx/conf</code><code>.d</code><code>/redmine</code><code>.conf    </code>

<code>#</code>

<code># redmine</code>

<code>server {</code>

<code>    </code><code>listen       x.x.x.x:80;</code>

<code>    </code><code>server_name  redmine.xxx.com;</code>

<code>    </code><code>root   </code><code>/data/website/redmine-3</code><code>.0.0</code><code>/public</code><code>;</code>

<code>    </code><code>passenger_enabled on;</code>

<code>    </code><code>access_log  </code><code>/data/log/web/redmine/access</code><code>.log  main;</code>

本文转自 pcnk 51CTO博客,原文链接:http://blog.51cto.com/nosmoking/1617331,如需转载请自行联系原作者

继续阅读