Category: ‘CentOS’

Phoenix Server をバックグラウンドにて動作させる方法

2020年4月20日 Posted by PURGE

$ elixir --erl "-detached" -S mix phx.server

Read-only file system のファイルシステムエラー発生

2016年8月1日 Posted by PURGE

■現象
○SVNコミット時に下記エラーで、コミットできない。

  選択されたリソースのいくつかがコミットされませんでした。
  svn: E204900: Commit failed (details follow):
  svn: E204900: Can't create directory '/var/www/svn/repos/project/db/transactions/12345-1.txn': Read-only file system
  svn: E175002: MKACTIVITY of '/svn/repo/project/!svn/act/b2f11144-123-0010-abcd-c12345678f7': 500 Internal Server Error (http://xx.xx.xx.xx)


■原因
○svnレポジトリ他、/mydisc に対するファイル書き込みができなくなっている。

■対応内容
○/mydisc に対して再マウント ⇒ 失敗

  [root]# mount -o remount /dev/sdc1
  mount: ブロックデバイス /dev/sdc1 は書き込み禁止です、読込み専用でマウントします

○/mydisc に対してアンマウント ⇒ 失敗

  [root]# umount /dev/sdc1
  umount: /mydisc: デバイスを使用中です

○/mydisc を利用中のプロセス確認

  [root]# fuser -muv /dev/sdc1
      USER        PID ACCESS COMMAND
  /dev/sdc1:           root       2461 F.... (root)httpd
  root       5684 F.... (root)PassengerWatchd
  root       5687 F.... (root)PassengerHelper
  root       5696 F.... (root)ruby
  nobody     5700 F.... (nobody)PassengerLoggin
  apache     5720 F.... (apache)httpd
  apache     5721 F.... (apache)httpd
  apache     5722 F.... (apache)httpd
  mysql     11773 F.c.. (mysql)mysqld
  root      14145 F.... (root)java

○/mydisc を利用中の httpd / mysqld / java プロセス終了

  [root]# /etc/rc.d/init.d/httpd stop
  httpd を停止中:                                            [  OK  ]
  [root]# /etc/rc.d/init.d/mysqld stop
  MySQL を停止中:                                            [  OK  ]
  [root]# fuser -muv /dev/sdc1
  USER        PID ACCESS COMMAND
  /dev/sdc1:           root      14145 F.... (root)java
  [root]# kill -KILL 14145

○/mydisc に対してアンマウント ⇒ 成功

  [root]# umount /dev/sdc1

○マウントの確認

  [root]# mount -t ext3 /dev/sdc1 /mydisc
  [root]# mount -v
  /dev/sdc1 on /mydisc type ext3 (rw)

Capstrano3とRuby2.2 on Rails4.2 の設定

2015年10月18日 Posted by PURGE

Capstrano3を使用しようと試しているが、かなりハマっている。
下記は覚え書き。

rbenvでrubyのバージョンが設定されていないエラー

ERROR rbenv: rbenv_ruby is not set

rbenvのパスが検出されないエラー

ERROR rbenv: 2.2.2 is not installed or not found in ~/.rbenv/versions/2.2.2

deploy.rb

## デプロイサーバのパスを記述
set :rbenv_path, '/var/rbenv'
set :rbenv_ruby, '2.2.2'
set :application, 'Sample'
set :repo_url, 'ssh://hoge@whoocus.com/path/to/git/repo/sample.git'

サーバ上でbundleが見つからないエラー

bundle stderr: rbenv: bundle: command not found

サーバ上でインストール。

gem install bundler

JavaScript runtimeが見つからないとのエラー。

JS::RuntimeUnavailable: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.

Gemfile

gem 'execjs'
gem 'therubyracer', platforms: :ruby

Nginxのバーチャルホスト設定

2015年10月2日 Posted by PURGE

バーチャルホストの設定についての体系的な記述が見当たらなかった。
下記の設定方法が正当であるかどうかは不明であるが一つの定番例として覚え書き。

バーチャルホスト設定ファイル配置用のディレクトリ作成

これは習慣的な方法らしく、sites-availableに設定ファイル実体を配置して、sites-enabledに設定ファイルへのシンボリックリンクを張るらしい。
シンボリックリンクを削除することで、簡単にバーチャルホストのサイトを閉鎖することが可能となる。

$ mkdir /etc/nginx/sites-available
$ mkdir /etc/nginx/sites-enabled

sites-availableに設定ファイルを配置

/etc/nginx/sites-available/virtualhost.com

server {
    listen       80;
    server_name www.virtualhost.com;
    access_log  /var/log/nginx/virtualhost.com.access.log;
    location / {
        root   /var/www/html/virtualhost;
        index  index.html index.htm index.php;
    }
    location ~ \.php$ {
        root           /var/www/html/virtualhost;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME /var/www/html/virtualhost$fastcgi_script_name;
        include        fastcgi_params;
    }
}
$ cd /etc/nginx/sites-enabled/
$ ln -s /etc/nginx/sites-available/virtualhost.com virtualhost.com

シンボリックリンクのあるsites-enabledに対してインクルード

/etc/nginx/nginx.conf

include /etc/nginx/sites-enabled/*;

Apache HTTP Serverに比べると、直感的にも設定ファイルがわかりやすく記述できる。

Ruby2.X.XのCentOS6へのインストール方法

2015年10月2日 Posted by PURGE

Rubyのバージョンを管理しやすいようにrbebvを使用して最新Rubyをインストールしようと思い覚え書き。

rbenvのインストール

$ mkdir /var/rbenv
$ git clone git://github.com/sstephenson/rbenv.git
$ chmod -R 777 /var/rbenv
$ cd /var/rbenv/plugins
$ git clone git://github.com/sstephenson/ruby-build.git

環境変数設定

$ vi /etc/profile.d/rbenv.sh
export RBENV_ROOT="/var/rbenv"
export PATH="${RBENV_ROOT}/bin:${PATH}"
eval "$(rbenv init -)"

必要なライブラリのインストール

$ yum install -y readline-devel

Rubyのインストール

$ rbenv install 2.X.X
Installing ruby-2.X.X...

Rubyバージョンの選択

$ rbenv global 2.X.X

Rubyバージョンの確認

$ ruby --version
ruby 2.X.X (2015-08-18 revision 51636) [x86_64-linux]

成功した。

MySQL5.6のCentOS6へのインストール方法

2015年10月2日 Posted by PURGE

リポジトリ設定

$ yum install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

インストール

$ yum install mysql-community-server

バージョンの確認

$ mysqld --version
mysqld  Ver 5.6.26 for Linux on x86_64 (MySQL Community Server (GPL))

自動起動設定

$ chkconfig mysqld on
$ chkconfig --list mysqld
  mysqld            0:off   1:off   2:on    3:on    4:on    5:on    6:off

サーバの起動

$ service mysqld start

サーバの停止

$ /etc/init.d/mysqld stop

Nginx1.8のCentOS6へのインストール方法

2015年10月2日 Posted by PURGE

普通にyumインストールすると、古いバージョンのNginxがインストールされてしまう。

リポジトリ設定

$ rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

インストール

$ yum install nginx

自動起動設定

$ chkconfig nginx on
$ chkconfig nginx --list
  nginx             0:off   1:off   2:on    3:on    4:on    5:on    6:off

サーバの起動

$ nginx

ブラウザで確認

スクリーンショット 2015-09-30 13.29.17.png

サーバの停止

$ nginx -s stop

簡単です。

mount時に正常なブロックデバイスではありませんエラー

2015年9月14日 Posted by PURGE

CentOSからWindowsサーバへバックアップを取る為にマウントする必要がある。

$ mount -t cifs -o username=hoge,password=xxxx "//192.168.0.5/Backup/" /mnt/win

mount時に正常なブロックデバイスではありませんエラーが発生。
samba-clientが必要らしくインストール。

$ yum install samba-client

それでもまだ同じエラーが起きていたので、cifs-utilsのインストール。
CIFS-UTILs

$ tar jxvf cifs-utils-6.3.tar.bz2
$ cd cifs-utils-6.3
$ ./configure --prefix=/usr
$ make
$ make install

マウント可能となった。

ちなみに、rootユーザ以外がmountする必要がある場合、visudoにて下記を追記する。

$ sudo visudo

%ユーザ名  ALL=(ALL) /bin/mount, /bin/umount

Redmineのファイルバックアップスクリプト

2015年8月14日 Posted by PURGE

特にエラーハンドリングしていないが、覚え書きで。

#!/bin/sh
#
# Redmine DB backup script

FILE_DIR=/app/redmine/files/
DMP_DIR=/var/tmp/
MNT_DIR=/mnt/svn/
BAK_DIR="//10.10.10.10/windows/Backup/server/dir"
PERIOD=5
DB_USER=user
DB_PASS=pass

USER_NAME=winuser
PASSWD=winpass
EXIT_STATUS=0

FILE_NAME=`date +%y%m%d`
RM_FILE_NAME=`date --date "$PERIOD days ago" +%y%m%d`

DMP_FILE=$DMP_DIR/Redmine_DB_$FILE_NAME.sql.gz
ARC_FILE=$DMP_DIR/Redmine_FILE_$FILE_NAME.tar.gz

RM_DMP_FILE=$MNT_DIR/Redmine_DB_$RM_FILE_NAME.sql.gz
RM_ARC_FILE=$MNT_DIR/Redmine_FILE_$RM_FILE_NAME.tar.gz

# ファイルサーバへマウント
mount -t cifs -o username=$USER_NAME,password=$PASSWD $BAK_DIR $MNT_DIR

# データのダンプ
mysqldump --opt --single-transaction --default-character-set=binary -u $DB_USER --password=$DB_PASS --all-databases | gzip > $DMP_FILE

# 添付ファイルのアーカイブ
tar cfvz $ARC_FILE $FILE_DIR

# ファイルの移動
mv $DMP_FILE $MNT_DIR
mv $ARC_FILE $MNT_DIR

# ファイルの削除
rm $RM_DMP_FILE
rm $RM_ARC_FILE
echo "Redmine Backup OK"

umount -l $MNT_DIR

exit $EXIT_STATUS

gem install mysql2 インストールエラー

2015年8月14日 Posted by PURGE

対象環境

  • CentOS 6.7
  • Ruby2.1
  • Rails4.1
  • MySQL Community Server 5.6.26

概要

Redmineをインストールするにあたって、MySQLをインストールし、Railsで使用するライブラリmysql2のインストールでエラーとなる。

$ gem install mysql2 -v '0.3.19'
Fetching: mysql2-0.3.19.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
        ERROR: Failed to build gem native extension.

    /usr/local/ruby2.2/bin/ruby -r ./siteconf20150814-32250-1l3iwxf.rb extconf.rb
checking for ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
checking for rb_thread_blocking_region()... no
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
-----
Using mysql_config at /usr/bin/mysql_config
-----
checking for mysql.h... no
checking for mysql/mysql.h... no
-----
mysql.h is missing. Try 'apt-get install libmysqlclient-dev' or
'yum install mysql-devel', check your installation of mysql and try again.
-----
*** 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=/usr/local/ruby2.2/bin/$(RUBY_BASE_NAME)
        --with-mysql-dir
        --without-mysql-dir
        --with-mysql-include
        --without-mysql-include=${mysql-dir}/include
        --with-mysql-lib
        --without-mysql-lib=${mysql-dir}/lib
        --with-mysql-config
        --without-mysql-config

extconf failed, exit code 1

Windows環境でハマった時の対応方法は、この記事であるが、今回の環境はまた異なるし、対応方法が異なるようだ。

そこで下記`mysql-devel`をインストール。

$ yum install mysql-devel
読み込んだプラグイン:fastestmirror, security
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: centos.usonyx.net
パッケージ mysql-devel は mysql-community-devel によって不要になりました。代わりに mysql-community-devel-5.6.26-2.el6.x86_64 のインストールを試みています。
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package mysql-community-devel.x86_64 0:5.6.26-2.el6 will be インストール
--> 依存性解決を終了しました。

依存性を解決しました

====================================================================================================
 パッケージ                    アーキテクチャ バージョン            リポジトリー               容量
====================================================================================================
インストールしています:
 mysql-community-devel         x86_64         5.6.26-2.el6          mysql56-community         3.2 M

トランザクションの要約
====================================================================================================
インストール         1 パッケージ

総ダウンロード容量: 3.2 M
インストール済み容量: 20 M
これでいいですか? [y/N]y
パッケージをダウンロードしています:
mysql-community-devel-5.6.26-2.el6.x86_64.rpm                                | 3.2 MB     00:01
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
  インストールしています  : mysql-community-devel-5.6.26-2.el6.x86_64                           1/1
  Verifying               : mysql-community-devel-5.6.26-2.el6.x86_64                           1/1

インストール:
  mysql-community-devel.x86_64 0:5.6.26-2.el6

完了しました!

再度、試したら上手く行った。

$ gem install mysql2
Building native extensions.  This could take a while...
Successfully installed mysql2-0.3.19
Parsing documentation for mysql2-0.3.19
Installing ri documentation for mysql2-0.3.19
Done installing documentation for mysql2 after 1 seconds
1 gem installed