Archive for ruby

centos上搭建redmine,使用thin,nginx搭建

最近公司在找项目管理的软件,调研了一上午,然后给了几个方案。 一个是是否花钱,市面上的大部分都是花钱 第二个是是否本地部署,现在大部分不能本地部署,支持部署的也是花钱 之前用禅道,不支持多级子任务,不再使用,所以方案必须支持这点。 第三个是否能用破解版。 然后可以用破解版,我首先部署了jira,最后发现也不支持,插件好像也不行,官网也有人说了好几年了。 最后只能上redmine,这个系统勾起了我遥远的回忆,好像正式工作第一家就是用的这个系统,那时候我还改过ruby代码。这个我通过一个演示系统提前知道能多级。 下午又把这个redmine给部署了。这里简单总结一下,不是最优方案,但是内部使用基本没大问题。 使用的方案是,thin+nignx。thin类似于python中uwsgi等的那些。下边的方法是回忆着来的,不一定全,先记一波,以后部署再补充。 redmin安装查看官网教程足够。 安装完有测试启动方式bundle exec rails server webrick -e production,这个肯定不能用在正式环境,可能单线程,没验证 ruby的安装使用的rvm,类似Python里pyenv。 thin安装 gem install thin thin install 能安装开机启动脚本,和etc下的目录。/etc/rc.d/thin thin命令能生成配置文件,我直接复制的网上改的 cat /etc/thin/redmine.yml pid: tmp/pids/thin.pid wait: 30 timeout: 30 log: log/thin.log max_conns: 1024 require: [] environment: production max_persistent_conns: 512 servers: 4 daemonize: true user: redmine #socket: /tmp/thin.sock address: 0.0.0.0 port: 8080 chdir: /data/redmine-4.1 这个配置刚开始怎么试sock都不行,后来端口也不行,我查了一下发现是selinux没关闭,关闭后再没试。让他们先通过thin起一个端口去验证了。 /etc/rc.d/thin start /etc/rc.d/thin stop 这里会有问题 /usr/local/rvm/gems/ruby-2.6.6/gems/activesupport-5.2.4.5/lib/active_support/dependencies.rb:291:in `require': cannot load such file -- thin/connection (LoadError) 查了一下发现得在Gemfile文件里加上thin的引用,没写过ruby,看不懂,添加 gem "thin" 后 启动正常 nginx配置 这里配置基本复制的网上的,静态文件还是用的thin的,没走nginx,因为懒得去修改静态文件目录的权限了。 /etc/nginx/conf.d/redmine.conf upstream thin_cluster { # server unix:/tmp/thin.0.sock; # server unix:/tmp/thin.1.sock; # server unix:/tmp/thin.2.sock; # server unix:/tmp/thin.3.sock; server 127.0.0.1:8080; server 127.0.0.1:8081; server 127.0.0.1:8082; server 127.0.0.1:8083; } server { listen 10.10.12.240:3000; server_name 10.10.12.240; access_log /var/log/nginx/redmine-proxy-access; error_log /var/log/nginx/redmine-proxy-error; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; client_max_body_size 100m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; # root /data/redmine-4.1/public; proxy_redirect off; location / { # try_files $uri/index.html $uri.html $uri @cluster; try_files $uri.html $uri @cluster; } location @cluster { proxy_pass http://thin_cluster; } }
Read more...

ruby交互模式工具pry

今天上午改了ror写的redmine的一个注册页面功能,主要验证用户名和邮箱地址前缀一样的功能,直接草代码。找到代码,写了一个验证函数,三个语法错误,启动的时候也没有提示,只能慢慢找但是不知道ruby语法半天找不出来,总共改了20行不到的代码。 然后ruby的交互模式进入命令是irb,我靠,不查都不知道。也不知道有没有命令查看安装软件都装了那些bin文件,只知道用dpkg可以看所有的。找到二进制文件就可以猜一下了。 群里推荐使用pry。用了一下挺不错可以使用终端的快捷键,写起来爽多了。irb直接进入交互模式是不支持的。 pry安装方法: gem install pry 然后pry启动 然后 我提示了Sorry, you can't use Pry without Readline or a compatible library.这个错误。 解决办法:sudo apt-get install libreadline-dev,sudo gem install rb-readline安装readline。 gem应该是一个类似python中pip的存在,可以使用gem list看都装的那些×和版本。
Read more...

1