はじめに
Unicorn + Nginxで、Railsアプリの公開までに必要な設定を行います。
最近のRailsアプリではApache + Passengerの組み合わせよりもパフォーマンス面に強いということでNginx + Unicornが使われることが多くなっています。
Unicorn導入
UnicornはRuby用アプリケーションサーバのことです。
Unix系OS上で動作するRack規格Rubyアプリケーションを動かすためのアプリケーションサーバです。
Unicornの設定はいろいろあるので今回は簡易設定のみにします。
公式ページ:
http://unicorn.bogomips.org/
Unicornの詳細で参考にしたページです
http://www.engineyard.co.jp/blog/2013/everything-you-need-to-know-about-unicorn/
デプロイ対象のRailsプロジェクトを設置
今回は/home/直下に設置します
Unicornインストール
デプロイ対象のアプリディレクトリ直下のGemfileに以下を追加します
gem install unicorn
インストールします
$ bundle install
Unicorn設定
sock,pidファイルのディレクトリを作成します
$ mkdir /var/run/unicorn $ chmod 777 /var/run/unicorn
デプロイ対象のアプリディレクトリ直下のconfigディレクトリへunicorn.rbファイルを作成し以下コードで保存します
application = "<Railsアプリケーションディレクトリ名>" worker_processes = 2 working_directory "/home/#{application}" listen "/var/run/unicorn/unicorn_#{application}.sock" pid "/var/run/unicorn/unicorn_#{application}.pid" stderr_path "/home/#{application}/log/unicorn.stderr.log" stdout_path "/home/#{application}/log/unicorn.stdout.log" preload_app true
※worker_processesは適時変えてください
Unicorn起動時などにエラーなど出る場合は上記指定しているパスの「unicorn.stderr.log」ファイルで確認ができます
Unicorn起動
デプロイ対象のアプリディレクトリ直下で以下コマンドを実行します
$ unicorn_rails -c config/unicorn.rb -E development -D
※ここでエラーが出なければプロセスが実行されています
unicorn_railsのオプションについては以下になります
-c : 設定ファイル
-E : RAILS_ENV(デフォルトはdevelopment)
-D : デーモンで実行(バックグラウンド)
-p : ポート指定
–path : ディレクトリ指定
unicornのプロセスを確認してみます
ps aux | grep unicorn
ここで正しくでていればOKです
Nginx導入
軽量・高速のwebサーバーでRailsの開発ではApacheよりシェア高く、速度も高速とのことのようです。
こちらもいろいろしようとすると設定がいろいろあるので、プロジェクトにあった設定にするとパフォーマンスがあがる?と思います。
Nginxインストール
Nginxをインストールします
$ yum install nginx
Nginx設定
デフォルト設定ファイルを無効にし、設定ファイルsample.confを作成します
$ cd /etc/nginx/conf.d $ mv default.conf _default.conf.bak $ vim sample.conf
sample.confは以下の設定にします
upstream unicorn-unix-domain-socket { server unix:/var/run/unicorn/unicorn_hoge.sock fail_timeout=0; } upstream unicorn-tcp { server 127.0.0.1:3000; } server { listen 80; server_name localhost; root /home/[railsapp]/public; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { proxy_pass http://unicorn-unix-domain-socket; } }
※「unicorn_hoge.sock」部分はunicorn.rbの「listen “/var/run/unicorn/unicorn_#{application}.sock”」で設定した値に置き換えて設定してください
Nginx起動
Nginxを起動します
$ service nginx start
既に起動している場合に設定情報を反映される場合は再起動をします
$ service nginx restart
ブラウザ動作チェック
http://[ipアドレス]
はじめに
CentOSでVimのバージョンを更新します。7.2などの場合、プラグインがうまく動作しない場合が多いので、アップしておきます。
アップデート
$ sudo yum -y install git $ sudo yum -y install ncurses-devel $ git clone https://github.com/vim/vim.git $ cd vim $ git tag -n $ git checkout -b 7-4-729 refs/tags/v7-4-729 $ ./configure --enable-multibyte --with-features=huge --disable-selinux --prefix=/usr/local $ sudo make && sudo make install
※git tag -n で表示されているバージョンで好きなバージョンを指定してください
これで/usr/local/bin/vimへpathが通っていれば、vimを起動した時にバージョンが7.4にアップデートされているはずです
はじめに
bundle installでgemのnokogiriがinstallできていませんとエラーがでました。
直接nokogiriをinstall指定していませんでした。※これはインストールするgem内でnokogiriを使っているgemがあったのかと思います。
その後、nokogiriをyumでインストールしましたがエラーが出たため、対応策をメモしておきます。
エラーの改善について
詳細エラー内容
インストール実行
$ sudo yum install nokogiri
エラー内容
Building native extensions. This could take a while…
ERROR: Error installing nokogiri:
ERROR: Failed to build gem native extension./home/vagrant/.rbenv/versions/2.2.1/bin/ruby -r ./siteconf20150506-10401-826g5c.rb extconf.rb
checking if the C compiler accepts … yes
Building nokogiri using packaged libraries.
checking for gzdopen() in -lz… yes
checking for iconv… yes
************************************************************************
IMPORTANT NOTICE:Building Nokogiri with a packaged version of libxml2-2.9.2
with the following patches applied:
– 0001-Revert-Missing-initialization-for-the-catalog-module.patch
– 0002-Fix-missing-entities-after-CVE-2014-3660-fix.patchTeam Nokogiri will keep on doing their best to provide security
updates in a timely manner, but if this is a concern for you and want
to use the system library instead; abort this installation process and
reinstall nokogiri as follows:gem install nokogiri — –use-system-libraries
[--with-xml2-config=/path/to/xml2-config]
[--with-xslt-config=/path/to/xslt-config]If you are using Bundler, tell it to use the option:
bundle config build.nokogiri –use-system-libraries
bundle installNote, however, that nokogiri is not fully compatible with arbitrary
versions of libxml2 provided by OS/package vendors.
************************************************************************
Extracting libxml2-2.9.2.tar.gz into tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2… OK
Running patch with /home/vagrant/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/nokogiri-1.6.6.2/ports/patches/libxml2/0001-Revert-Missing-initialization-for-the-catalog-module.patch…
Running ‘patch’ for libxml2 2.9.2… ERROR, review ‘/home/vagrant/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/nokogiri-1.6.6.2/ext/nokogiri/tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2/patch.log’ to see what happened.
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.Provided configuration options:
–with-opt-dir
–without-opt-dir
–with-opt-include
–without-opt-include=${opt-dir}/include
–with-opt-lib
–without-opt-lib=${opt-dir}/lib
–with-make-prog
–without-make-prog
–srcdir=.
–curdir
–ruby=/home/vagrant/.rbenv/versions/2.2.1/bin/$(RUBY_BASE_NAME)
–help
–clean
–use-system-libraries
–enable-static
–disable-static
–with-zlib-dir
–without-zlib-dir
–with-zlib-include
–without-zlib-include=${zlib-dir}/include
–with-zlib-lib
–without-zlib-lib=${zlib-dir}/lib
–enable-cross-build
–disable-cross-build
/home/vagrant/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/mini_portile-0.6.2/lib/mini_portile.rb:279:in `block in execute’: Failed to complete patch task (RuntimeError)
from /home/vagrant/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/mini_portile-0.6.2/lib/mini_portile.rb:271:in `chdir’
from /home/vagrant/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/mini_portile-0.6.2/lib/mini_portile.rb:271:in `execute’
from extconf.rb:311:in `block in patch’
from extconf.rb:308:in `each’
from extconf.rb:308:in `patch’
from /home/vagrant/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/mini_portile-0.6.2/lib/mini_portile.rb:108:in `cook’
from extconf.rb:278:in `block in process_recipe’
from extconf.rb:177:in `tap’
from extconf.rb:177:in `process_recipe’
from extconf.rb:475:in `‘ extconf failed, exit code 1
Gem files will remain installed in /home/vagrant/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/nokogiri-1.6.6.2 for inspection.
Results logged to /home/vagrant/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0-static/nokogiri-1.6.6.2/gem_make.out
対応策
エラー内に改善案が書いてありました。
必要なライブラリをインストールし再度nokogiriを指定方法によりインストールします。これで手元環境ではエラーなく成功しました。
$ sudo yum -y install libxml2 libxslt libxml2-devel libxslt-devel $ gem install nokogiri -- --use-system-libraries
はじめに
前回記事のCentOS7バージョンGitlabを公式ドキュメントに従いインストールする方法をメモをメモしておきます。
CentOS7になり、serviceコマンド、chkconfigコマンドが使えなく(互換なし)なってしまい、新たにsystemctlコマンドがでたりなどの違いや、DBもmysqlからmariaDBへ変更されたりとCentOS7のバージョンアップはいままでと結構違っています。
改めてGitLabをCentOS7へインストールしていきます。
インストール手順概要
公式サイト
https://about.gitlab.com/
公式サイトのトップページより「Downloads」ボタンをクリックし、「I want to install GitLab on」でOSを選択します。
対象のOSを選択します ※今回はCentOS7
1. Install and configure the necessary dependencies
sudo yum install openssh-server sudo systemctl enable sshd sudo systemctl start sshd sudo yum install postfix sudo systemctl enable postfix sudo systemctl start postfix sudo firewall-cmd --permanent --add-service=http sudo systemctl reload firewalld
2. Download the Omnibus package and install everything
curl -O https://downloads-packages.s3.amazonaws.com/centos-7.1.1503/gitlab-ce-7.10.1~omnibus.2-1.x86_64.rpm sudo rpm -i gitlab-ce-7.10.1~omnibus.2-1.x86_64.rpm
3. Configure and start GitLab
sudo gitlab-ctl reconfigure
4. Browse to the hostname and login
ブラウザチェック
Username: root
Password: 5iveL!fe
ではインストール作業
1.関連ツールのインストールと起動設定
gitlabの動作で使用しているツールのインストールを行います。
openssh-server:
通信データーを暗号化してリモートアクセスを安全に行うためのプロトコル SSH(Secure SHell)を利用するためのソフトウェア
postfix:
オープンソースソフトウェアのメール転送エージェント
インストール
sudo yum install openssh-server sudo yum install postfix
openssh-serverの起動・再起動時の起動設定をonにします
sudo systemctl enable postfix sudo systemctl start postfix
postfixの起動・再起動時の起動設定をonにします
sudo systemctl enable sshd sudo systemctl start sshd
2.gitlabインストール
gitlabのrpmファイルをダウンロードします
curl -O https://downloads-packages.s3.amazonaws.com/centos-7.1.1503/gitlab-ce-7.10.1~omnibus.2-1.x86_64.rpm
インストール(rpm実行)します
sudo rpm -i gitlab-ce-7.10.1~omnibus.2-1.x86_64.rpm
3.設定ファイルの編集
gitlabの設定ファイル「/etc/gitlab/gitlab.rb」を編集し、各設定を行います。
公式ドキュメントの手順に抜けているが、これがないと次の「gitlab-ctl reconfigure」がうまくいかない?と思います。
sudo vim /etc/gitlab/gitlab.rb
「/etc/gitlab/gitlab.rb」を編集
external_url 'http://[ipアドレス/ホスト名]:8000' gitlab_rails['gravatar_enabled'] = false
8000番ポートにしておく。80の場合apacheとかぶるため。
gitlab_rails['gravatar_enabled'] = falseはgravatar(グローバルに扱われるアバター)を無効にします。
4.ファイアウォール設定
ファイアウォールを切っている場合はとくに不要です。
CentOS7になってiptablesの設定にはfirewalldを使用するようになっています。
sudo firewall-cmd --permanent --add-port=8000/tcp sudo systemctl reload firewalld
※8000ポートの追加
5.設定ファイルの反映と関連処理の実行
gitlabではchefというプロビジョニングを実行してgitlabに必要なnginxのインストールや環境設定などいろいろ行っています。
「3.設定ファイルの編集」で設定した情報もここで設定値を反映します。
sudo gitlab-ctl reconfigure
5.gitlab起動
起動
sudo gitlab-ctl start
———その他オプション————–
停止
sudo gitlab-ctl stop
ステータス確認
sudo gitlab-ctl status
——————————–
6.ブラウザよりgitlabページの表示
http://[ipアドレス/ホスト名]:8000
でアクセスします
ログインユーザとパスはドキュメントに記載している通りです
Username: root
Password: 5iveL!fe
※パスワード変更画面になるので、自分のパスワードに変更したほうが安全です
ここまででインストール作業完了です。
はじめに
rails serverコマンドで起動し、http://localhost:3000/tasksと実行でエラーになりました。今回のエラーの改善をメモしておきます。
※rails generate scaffold taskを実行しマイグレーション実行後
エラーの改善について
詳細エラー内容
エラー時に下記のエラーが表示されました
ExecJS::RuntimeUnavailable in Tasks#index ActionView::Template::Error (Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes. (in /home/vagrant/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/turbolinks-2.5.3/lib/assets/javascripts/turbolinks.js.coffee)): 3: <head> 4: <title>Todo</title> 5: <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> 6: <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> 7: <%= csrf_meta_tags %> 8: </head> 9: <body> app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb___192686316235003344_70012938766400'
原因
どうやらnodejsがインストールされていないことが原因のようです。
改善
nodejsをepelリポジトリを入れてインストールします
$ rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm $ sudo yum install nodejs npm --enablerepo=epel
ここまで実行し、再度 rails serverで起動してブラウザで確認すると正常に表示されるようになりました。
nodejsインストールで『Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again』になる場合
yumでnodejsインストール時に手持ち環境でエラーが発生しました。
この場合は下記サイトを参考に修正することができました。
$ vi /etc/yum.repos.d/epel.repo #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch ↓ baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
CentOSへ最新・安定版のRuby2.2.1(rbenv) / Rails4.1.1環境を構築するときのメモ
Rubyのインストールはrbenvを使用する。
rbenvはrubyのバージョン間の切り替えが行えるツール。
現時点でRubyの2.2.1が一番最新で安定版となっている。
※似たものでrvmがあるがrbenvのほうが簡単
参考:http://passingloop.tumblr.com/post/10512902196/difference-between-rbenv-and-rvm
Ruby環境(rbenv)を構築
Gitのインストール
$ sudo yum -y install git
rbenvインストール
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
ruby-buildのインストール ※Rubyをインストールするためのrbenvのプラグイン
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
rbenvを使用できるようにするためのPATH設定
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc $ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
設定の反映
$ source ~/.bashrc
設定の確認
$ type -t rbenv function
※functionと表示されればOK
Rubyインストール ※rbenvを使用
$ rbenv install 2.2.1
※rbenvでインストールできるlistは[rbenv install -l]コマンドで確認できる
Rubyインストールでエラー
BUILD FAILED (CentOS release 6.4 (Final) using ruby-build 20150303)
2.2.1のインストールでエラーとなったので改善
$ sudo yum -y install libffi-devel
参考:http://shiro-16.hatenablog.com/entry/2014/12/26/003810
再度Rubyインストール
$ rbenv install 2.2.1 Downloading ruby-2.2.1.tar.gz... -> http://dqw8nmjcqpjn7.cloudfront.net/5a4de38068eca8919cb087d338c0c2e3d72c9382c804fb27ab746e6c7819ab28 Installing ruby-2.2.1... Installed ruby-2.2.1 to /home/vagrant/.rbenv/versions/2.2.1
※これでOK
インストールバージョンをデフォルトで使用するように設定
$ rbenv global 2.2.1
バージョン確認
$ ruby -v ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]
※これでOK
Rails環境を構築
Railsインストール
$ gem install rails -v 4.1.1
バージョン確認
$ rails -v Rails 4.1.1
※これでOK
Vagrant(CentOS) + VirtualBoxでRailsの開発環境を構築するときのメモ
Vagrantは、仮想化マシン(VirtualBox,VM etc)の自動作成・管理ツール。
今回はVirtualBoxでCentOSを使用し、Railsの環境を構築しておく。
一度テンプレート化しておくと、次回以降に同様の環境を作成するのが楽になる。
公式サイト:
Vagrant
https://www.vagrantup.com/
VirtualBox
https://www.virtualbox.org/
Vagrant + VirtualBoxダウンロード・インストール
OSにあわせて公式サイトよりダウンロードを行う
現在2015/3/2時点でCentOS[7.0],Vagrant[1.7.3],VirtualBox[4.4.2]のバージョンが最新となっている
Vagrant:
https://www.vagrantup.com/downloads.html
VirtualBox:
https://www.virtualbox.org/wiki/Downloads
ダウンロードしたdmgやmsiファイルからインストール作業を行う
※ウィザードに従いそのままインストールで良い
Vagrantのバージョン確認
バージョン確認:
$ vagrant -v Vagrant version 1.7.3
※インストールバージョンが表示されればインストールOK
Box(CentOS)のテンプレートを取得
Boxリンクが集まっている有名サイト:
http://www.vagrantbox.es/
https://vagrantcloud.com/boxes/search
※今回はCentOS7の最新で仮想ソフトにVirtualBoxを使用しているBoxを選択する:
https://f0fff3908f081cb6461b407be80daf97f07ac418.googledrive.com/host/0BwtuV7VyVTSkUG1PM3pCeDJ4dVE/centos7.box
Boxの追加コマンド:
$ vagrant box add centos https://f0fff3908f081cb6461b407be80daf97f07ac418.googledrive.com/host/0BwtuV7VyVTSkUG1PM3pCeDJ4dVE/centos7.box Downloading or copying the box... Extracting box... Successfully added box 'centos' with provider 'virtualbox'!
※centos部は任意のboxの名前
「Successfully added box ‘centos’ with provider ‘virtualbox’!」のメッセージが表示されればOK
Boxの確認:
$ vagrant box list centos (virtualbox)
Box(CentOS)のテンプレートから仮想マシンを作成
仮想マシン作成のディレクトリを作成し移動
$ mkdir RailsEnv $ cd RailsEnv
仮想マシンを作成
$ vagrant init centos
※centosはboxに任意につけておいた名前を指定
仮想マシンの起動
仮想マシンの起動
$ vagrant vp
※Vagrantfileの設定情報を読み込み起動する
仮想環境のアクセス(設定)
仮想環境にssh接続を行う
$ vagrant ssh
仮想環境の設定・ツールインストールなど
ファイアーウォールを切っておく ※ローカル環境のためセキュリティは無視
$ sudo service iptables stop $ sudo chkconfig iptables off
vimをインストール
$ sudo yum -y install vim
仮想マシンへブラウザからアクセスするための接続設定 ※Vagrantfileの編集
仮想マシンを抜ける
$ exit
Vagrantfileの編集
$ vim Vagrantfile
ネットワークアクセスのconfigのコメントアウトを解除する(#を消す)
デフォルト設定されている「192.168.33.10」でアクセスができるようになる
# Create a private network, which allows host-only access to the machine # using a specific IP. config.vm.network :private_network, ip: "192.168.33.10"
※ 仮想マシンの/var/www/htmlディレクトリへアクセスされる
Vagrantfileの設定反映
$ vagrant reload
仮想マシンの「/var/www/htmlディレクトリ」とローカルの「仮想マシンディレクトリ」のリンク設定
シンボリックリンクを設置
$ vagrant ssh $ ln -s /vagrant /var/www/html/
※ Vagrantでは仮想マシンの「/vagrantディレクトリ」はローカルの「仮想マシンディレクトリ」とリンクしている
Ruby/Rails環境を構築
以前の記事「最新・安定版のRuby2.2.1(rbenv) / Rails4.1.1環境を構築する」の通り環境を構築する
ここまでで構築完了!
gitのmakeインストールでバージョンを最新バージョンにする方法をメモ
デフォルトでインストールされているgitのバージョンが1.7.1のため、最新バージョン1.9.0(※2015/2/25現在)にアップデートする
最新バージョンの確認
下記サイトより最新バージョンのgitを確認
https://code.google.com/p/git-core/downloads/list
※現在はgit-1.9.0.tar.gz
インストールされているgitを削除する
デフォルトインストールされているgitはyum削除しておく
$ sudo yum -y remove git
gitインストールに必要なパッケージをインストール
インストール時に必要なためあらかじめインストール
$ sudo yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker
makeインストール
ソースコードの展開ディレクトリへ移動(linuxの仕様上、ここが推奨されている)
$ cd /usr/local/src/
最新バージョンをインストールし解凍
$ sudo wget https://git-core.googlecode.com/files/git-1.9.0.tar.gz $ sudo tar zxvf git-1.9.0.tar.gz
解凍ディレクトリへ移動
$ cd git-1.9.0
設定ファイルを作成
$ sudo ./configure
コンパイル
$ sudo make
makeインストール
$ sudo make install
インストールバージョン確認
gitインストール確認
$ git --version -bash: /usr/bin/git: そのようなファイルやディレクトリはありません
※「そのようなファイルやディレクトリはありません」エラーとなる
エラーの解決 ※シンボリックリンクを作成する
git の場所を確認
$ which git /usr/local/bin/git
※エラーで表示されている「/usr/bin/git」と場所が違う
シンボリックリンクを作成
$ sudo ln -s /usr/local/bin/git /usr/bin/git
再度インストールバージョン確認
$ git --version git version 1.9.0
正しいインストールしたバージョンが表示されればOK
不要ファイルの削除
ダウンロードしたファイルと解凍ファイルを削除 ※インストール終わったので不要
$ cd /usr/local/src/ $ sudo rm -f git-1.9.0.tar.gz $ sudo rm -rf git-1.9.0
Gitlabをサブディレクトリでアクセスしたら遅くなったので対応方法をメモ
[CentOS]Gitlabをサブディレクトリでアクセスできるようにする(およそ3分作業)
サブディレクトリでアクセス出来るように対応したら、速度が激減したので対応したやり方を忘れないようにメモ
vagrant,vpsなどにインストールされているcentosでも同作業。
もともとサブディレクとでなく、ルート直下「http://[ipアドレス/ホスト名]:8000」で動作させていた時は、ストレスを感じない速度だったが、サブディレクトリ対応「http://[ipアドレス/ホスト名]:8000/gitlab」をした途端に重くなった。
gitlabのページを開く時、別ページに遷移するときが全て時間がかかるようになった。
解決策
gitla-http.confファイルの編集で速度が元にもどった
参考:
http://qiita.com/tnamao/items/a7bb1ca868b594eaf788
gitla-http.confの編集
vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
< 修正1 >
下記箇所をすべてコメントアウト対応
#location ~ ^/(assets)/ { # root /opt/gitlab/embedded/service/gitlab-rails/public; # gzip_static on; # to serve pre-gzipped version # expires max; # add_header Cache-Control public; #}
< 修正2 >
下記locationの場所を修正
変更前
location / { ## Serve static files from defined root folder. ## @gitlab is a named location for the upstream fallback, see below. try_files $uri $uri/index.html $uri.html @gitlab; }
変更後
location /gitlab { ## Serve static files from defined root folder. ## @gitlab is a named location for the upstream fallback, see below. alias /opt/gitlab/embedded/service/gitlab-rails/public; try_files $uri $uri/index.html $uri.html @gitlab; }
ここまでの対応を行い、速度が改善された。理由は・・・・わからない。
< 修正2 > でいうとaliasを付けて速度が改善したなら、ファイルのルートの場所がわからず探しているのに時間がかかっていたのか・・・
不明。
Gitlabをサブディレクトリでアクセスできるようにする方法をメモ
[CentOS]Gitlabを公式ドキュメントに従いインストールする(およそ3分作業)
上記よりGitlabのインストールが終わったので、それをサブディレクトリ「http://[ipアドレス/ホスト名]:8000/gitlab」でアクセスできるようにする
vagrant,vpsなどにインストールされているcentosでも同作業。
手順の確認
application.rb(全体設定)に手順が記載されている。
まず中身の確認
cat /opt/gitlab/embedded/service/gitlab-rails/config/application.rb
結果: ※ 上部に記載されている
# Note that following settings need to be changed for this to work. # 1) In your application.rb file: config.relative_url_root = "/gitlab" # 2) In your gitlab.yml file: relative_url_root: /gitlab # 3) In your unicorn.rb: ENV['RAILS_RELATIVE_URL_ROOT'] = "/gitlab" # 4) In ../gitlab-shell/config.yml: gitlab_url: "http://127.0.0.1/gitlab" # 5) In lib/support/nginx/gitlab : do not use asset gzipping, remove block starting with "location ~ ^/(assets)/"
※5)はやらなくてよい
1.gitlabの設定情報を反映させる
設定内容を反映させる
gitlab-ctl reconfigure
このコマンドを実行すると設定ファイルの上書きが行われる。そのためこれ移行したの手順でファイルを編集したあとに「reconfigure」を実行すると内容が消えてしまうファイルがあるため、再度行わない事。
2.application.rbファイルの編集
「1) In your application.rb file: config.relative_url_root = “/gitlab”」の実行
application.rb(全体設定)の設定ファイルを開く
vim /opt/gitlab/embedded/service/gitlab-rails/config/application.rb
config.relative_url_rootをコメントアウト(#)を消して有効にする
config.relative_url_root = "/gitlab"
※手元環境だと65行目
3.gitlab.ymlファイルの編集
「2) In your gitlab.yml file: relative_url_root: /gitlab」の実行
gitlabの設定ファイルを開く
vim /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
relative_url_rootをコメントアウト(#)を消して有効にする
relative_url_root: /gitlab
※手元環境だと24行目
4.unicon.rbファイルの編集
「3) In your unicorn.rb: ENV['RAILS_RELATIVE_URL_ROOT'] = “/gitlab”」の実行
uniconはrailsを動作させるためのサーバになり、gitlabはuniconで動作している
uniconの設定ファイルを開く
vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb
下記コードの何れかに追記(何処でも良いと思われるが一番上部に設置)
ENV['RAILS_RELATIVE_URL_ROOT'] = "/gitlab"
5.config.ymlファイルの編集
「4) In ../gitlab-shell/config.yml: gitlab_url: “http://127.0.0.1/gitlab”」の実行
configファイルを開く
vim /var/opt/gitlab/gitlab-shell/config.yml
gitlab_urlへサブディレクトリのgitlabを追加する
gitlab_url: "http://127.0.0.1:8080/gitlab"
※手元環境だと9行目
6.設定ファイルの反映
gitlab-ctl restart
6.ブラウザアクセス
http://[ipアドレス/ホスト名]:8000/gitlab
でアクセス出来ればOK
Gitlabを公式ドキュメントに従いインストールする方法をメモ
CentOSへgitlabをインストールする場合のメモ
vagrant,vpsなどにインストールされているcentosでも同作業。
公式サイト
https://about.gitlab.com/
手順
公式サイトのトップページより「Downloads」ボタンをクリックし、「I want to install GitLab on」でOSを選択する。
対象のOSを選択する ※今回はCentOS6とする
Download the Omnibus package and install everything
curl -O https://downloads-packages.s3.amazonaws.com/centos-6.6/gitlab-7.5.3_omnibus.5.2.1.ci-1.el6.x86_64.rpm sudo yum install openssh-server sudo yum install postfix sudo yum install cronie sudo service postfix start sudo chkconfig postfix on sudo rpm -i gitlab-7.5.3_omnibus.5.2.1.ci-1.el6.x86_64.rpm
Configure and start GitLab
sudo gitlab-ctl reconfigure sudo lokkit -s http -s ssh
1.関連ツールのインストールと起動設定
gitlabの動作で使用しているツールのインストールを行う
openssh-server:
通信データーを暗号化してリモートアクセスを安全に行うためのプロトコル SSH(Secure SHell)を利用するためのソフトウェア
postfix:
オープンソースソフトウェアのメール転送エージェント
cronie:
cronソフトウェア
インストール
sudo yum install openssh-server sudo yum install postfix sudo yum install cronie
postfixの起動・再起動時の起動設定をon
sudo service postfix start sudo chkconfig postfix on
2.gitlabインストール
gitlabのrpmファイルをダウンロード
curl -O https://downloads-packages.s3.amazonaws.com/centos-6.6/gitlab-7.5.3_omnibus.5.2.1.ci-1.el6.x86_64.rpm
インストール(rpm実行)
sudo rpm -i gitlab-7.5.3_omnibus.5.2.1.ci-1.el6.x86_64.rpm
3.設定ファイルの編集
gitlabの設定ファイル「/etc/gitlab/gitlab.rb」を編集し、各設定を行う。
公式ドキュメントの手順に抜けているが、これがないと次の「gitlab-ctl reconfigure」がうまくいかないかも。
sudo vim /etc/gitlab/gitlab.rb
「/etc/gitlab/gitlab.rb」を編集
external_url 'http://[ipアドレス/ホスト名]:8000' gitlab_rails['gravatar_enabled'] = false
8000番ポートにしておく。80の場合apacheとかぶるため。
gitlab_rails['gravatar_enabled'] = falseはgravatar(グローバルに扱われるアバター)を無効にする
4.ファイアウォール設定
ファイアウォールを切っている場合はとくに不要。
8000番ポートを開くなら「/etc/sysconfig/iptables」を編集
sudo vim /etc/sysconfig/iptables
「/etc/sysconfig/iptables」を編集
-A SERVICES -p tcp --dport 8000 -j ACCEPT
※8000ポート開放の追加
5.設定ファイルの反映と関連処理の実行
gitlabではchefというプロビジョニングを実行してgitlabに必要なnginxのインストールや環境設定などいろいろ行ってくれている。
「3.設定ファイルの編集」で設定した情報もここで設定値を反映してくれる
sudo gitlab-ctl reconfigure
5.gitlab起動
起動
sudo gitlab-ctl start
———その他オプション————–
停止
sudo gitlab-ctl stop
ステータス確認
sudo gitlab-ctl status
——————————–
6.ブラウザよりgitlabページの表示
http://[ipアドレス/ホスト名]:8000
でアクセス
ログインユーザとパスはドキュメントに記載している通り
Username: root
Password: 5iveL!fe
※パスワード変更画面になるので、自分のパスワードに変更すること
以上
node.jsをインストールする方法をメモ
CentOSへnode.jsをyumインストールする場合のメモ
公式サイト
node.js
インストール
手順は下記公式ページの「Enterprise Linux and Fedora」に記載している通り
https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
インストール
curl -sL https://rpm.nodesource.com/setup | bash - yum -y install nodejs
バージョン確認
npm -v
これでバージョンが表示されればOK
npmコマンドでアドオンを入れる場合にC++のコンパイラが必要なようなので
サイトに記載の通りインストールする
yum install gcc-c++ make
これで完了
nginxのインストールから起動までメモ
centosへnginxを入れてブラウザ起動するまでを忘れないようにメモ
公式ページ
http://nginx.org/
ダウンロード
centosのバージョンにあわせて公式サイトよりrpmファイルをダウンロード
http://nginx.org/en/linux_packages.html#stable
wgetでcentos6の場合
wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
yumへ登録
yumへ登録
rpm -ivh nginx-release-centos-6-0.el6.ngx.noarch.rpm
インストール
インストールされるnginx情報の確認
yum info nginx
インストール
yum -y install nginx
インストールしたnginxのバージョン確認
nginx -v
起動
nginxをスタート
service nginx start
これでブラウザからIPアドレスを入れて下記ページが表示されればOK
Apacheが既に起動している場合
どちらも起動している場合、デフォルト80のポートで競合するため、Apacheを一旦止めてからnginxをスタートさせると良い
Apacheをストップ
service httpd stop
nginxをスタート
service nginx start
chkconfigの設定もどちらか片方(使用するほう)をonにするとよい
mysqlをインストールしたメモ
mysqlのインストールをメモ
インストール
インストールされるバージョンの確認(今回はyumのみ)
※epel,remi,rpmforgeを使う場合はこちらを参考
yum info mysql-server
インストール
yum -y install mysql-server
インストールバージョンの確認
mysql --version
mysqlの起動と起動設定
起動
service mysqld start
再起動時も自動起動
chkconfig mysqld on
初回設定
mysqlの初回設定を行い、rootのパスワードを付けておく ※mysqlを起動した状態で行う事
mysql_secure_installation
途中確認される「Set root password? [Y/n] 」はYを指定しrootのパスワードを指定しておくとよい
それ以外の設定は、必要であれば設定する。特になければエンター連打
mysqlへログイン確認
rootログイン
mysql -u root -p
で「初回設定」で設定したrootのパスワードでログインする
mysqlから離脱
quit
外部リポジトリのパッケージ管理を導入する方法をメモ
CentOSのyumパッケージ以外にあるパッケージ管理でよく使われているとの事で、epel,remi,rpmforgeを導入してみたのでメモ
yumに存在していない最新バージョンのパッケージをダウンロードできたり、yumにそもそも存在しないものをダウンロードできたりする。
ただ、epel,remi,rpmforgeのどれも同じく存在する場合にどうするの?っていう改善が必要
下記とても参考になるページで、一通り書いてあるので、覚え書きのみで残しておく。
参考:
http://oki2a24.com/2012/03/13/what-is-rpmforge-remi-epel/
各パッケージツールのダウンロード・インストール
下記サイトから其々ダウンロードする
epel
http://download.fedora.redhat.com/pub/epel/5/x86_64/
remi ※remiはepelがないと動作しない
http://rpms.famillecollet.com/el5.x86_64/
rpmforge
http://dag.wieers.com/rpm/packages/rpmforge-release/
※[パッケージ名]-release-のパックを探してダウンロードする
ダウンロード例
# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm # wget http://rpms.famillecollet.com/el5.i386/remi-release-5-8.el5.remi.noarch.rpm
インストール例
# rpm -Uvh remi-release-5-8.el5.remi.noarch.rpm epel-release-5-4.noarch.rpm
インストール確認
# rpm -qa | grep epel-release # rpm -qa | grep remi-release # rpm -qa | grep rpmforge-release
全てのパッケージを無効設定にする
epel,remi,rpmforgeのどれも存在している場合にどうなるのか?となるので全て無効にしておくとよいらしい。
# vim /etc/yum.repos.d/remi.repo # vim /etc/yum.repos.d/epel.repo # vim /etc/yum.repos.d/rpmforge.repo
enable = 1 を enable = 0 に変更する事で無効化される(勝手にリポジトリからインストールしないということ)
※remiはデフォルト enable = 0 になっている
入れたいパッケージのバージョン情報を確認
例えばphpをインストールしたい場合のそれぞれの確認方法
yum
yum info php
epel
yum --enablerepo=epel info php
remi
yum --enablerepo=remi info php
rpmforge
yum --enablerepo=rpmforge info php
それぞれ存在知る場合はインストールバージョンが表示され、存在しない場合は表示されない。
で三つの中で一番最新版を持っているリポジトリを選択して表示 ※これ便利
yum --enablerepo=epel,remi,rpmforge info php
上記で確認したバージョンのインストール
入れたいバージョンがあればそちらでインストールすれば良い
例えばremiでインストールは
yum -y --enablerepo=remi install php
例えば三つの中で一番最新版のリポジトリをインストールは
yum -y --enablerepo=epel,remi,rpmforge install php
※yオプションは問い合わせがあった場合にすべてyesで続ける場合に指定
coffee-break
Don't write code that useless.
1日5杯はコーヒー、カフェオレ飲みます。狭心症のため安静にします☆松本 雄貴
Kotlinでサービスリリース目指す!
iOSでチャットアプリ作成中。自然言語解析LSIを習得中
Mac / Android・iOS / Rails / Oracle
2017年 Lpic L2取得
2012年 Android技術者資格取得
2010年 OracleMasterGold10g取得
2008年 CCNAQiitaもたまに投稿
https://qiita.com/y-matsumoto東京近郊で常駐開発探してる方はこちらよりご連絡ください
SES企業でパートナー会社を探している企業様はこちらよりご連絡ください
スプリットカメラ iOS / Android
音声認識で聞いた日付から曜日当てアプリ Android
ソーシャルタイマー Android
カテゴリー
- ActiveRecord (2)
- Android (52)
- AndroidStudio (10)
- Ansible (1)
- AWS (1)
- Bash (18)
- Blog (7)
- BootStrap (1)
- CentOS (16)
- Chef (1)
- css (2)
- Eclipse (5)
- error (1)
- Facebook (2)
- Firebase (1)
- FuelPHP (16)
- Git (22)
- GitHub (3)
- Gradle (2)
- GraphAPI (1)
- Grunt (1)
- heroku (2)
- illustrator (1)
- iOS (17)
- Java (4)
- Jenkins (1)
- jQuery (3)
- Kotlin (2)
- Mac (22)
- nginx (1)
- Node.js (3)
- peco (1)
- php (5)
- Python (1)
- Rails (16)
- Ruby (11)
- shell (1)
- SNS (1)
- Swift (2)
- tmux (2)
- Vagrant (6)
- Vim (6)
- windows (2)
- WordPress (3)
- zsh (4)
- フリーランス (1)
- ライブラリ (1)
- 勉強会 (2)
- 宣伝 (1)
- 未分類 (2)
最近の投稿
- [MAC]HighSierraでgitプッシュエラー「Unable to negotiate with xxx.xxx.xxx.xxx port xx: no matching cipher found. Their offer: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se fatal: Could not read from remote repository.」
- [iOS]iOS11からFacebook,Twitter連携(シェアなど)廃止の対応方法
- [iOS]速報2017AppleSpecialEventのiOS11、iPhone8など発表内容について
- [iOS][Firebase]The default Firebase app has not yet been configured. Add `[FIRApp configure];
- [iOS]2017年9月リリースのiOS11で開発者が対応するべきこと
- 今人気の現金化サービスCASH(キャッシュ)を使ったレビュー
- [Pandoc][Mac]pandocでmarkdownからwordファイル作成
- [Android]映画サマーウォーズの聞いた日付(誕生日)から曜日当てをアプリ音声認識で簡単に実現
- [Android]起動しているActivityを取得するadb shell コマンド
- [Android][Kotlin]kotlin学習で参考になるサイト一覧
2023年5月 月 火 水 木 金 土 日 « 5月 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 アーカイブ
- 2018年5月
- 2017年9月
- 2017年8月
- 2017年7月
- 2017年6月
- 2017年5月
- 2017年2月
- 2017年1月
- 2016年12月
- 2016年7月
- 2016年6月
- 2016年1月
- 2015年12月
- 2015年11月
- 2015年10月
- 2015年9月
- 2015年8月
- 2015年7月
- 2015年6月
- 2015年5月
- 2015年4月
- 2015年3月
- 2015年2月
- 2015年1月
- 2014年12月
- 2014年11月
- 2014年6月
- 2014年5月
- 2014年4月
- 2014年3月
- 2014年2月
- 2014年1月
- 2013年12月
- 2013年11月
- 2013年9月
- 2013年8月
- 2013年7月
- 2013年6月
- 2013年5月
- 2013年4月
- 2013年3月
- 2013年2月
- 2013年1月
- 2012年12月
- 2012年10月
- 2012年5月
- 2010年6月
エントリ