Posts tagged ‘CentOS’

WordPress運用時のユーザー

WordPressを使用している場合、テーマやプラグインを導入したり削除したりするのはダッシュボードのプラグイン設定から出来るのですが、
多分FTPか、FTPSのアカウントが必要です。(少なくともWP2.8 MUでは)

自身が管理するサーバーの場合は、FTPサーバーは立てずに、操作やファイル転送等はSSH関連で全て行いたいところです。
(レンタルサーバー事業でもやるなら利便性のために必要かもしれませんが)

なので、ダッシュボードの削除機能は使わないとして、テーマやプラグインのインストールはSFTPを使うことにしています。

クライアントは、WinSCPとPuttyを使っていますが、
普通にApacheを導入した場合、httpdの実行ユーザー(2.2系の場合デフォルトはapache.apache)はでシェル実行は出来ないので、プラグインやテーマをインストールする場合は
・WinSCPでSSH用のユーザーでログインし、そのログインユーザーのホームディレクトリあたりにファイル転送して、
・その後PuttyでログインしてsuしてホームディレクトリからDocumentRootに移動し、
・chown apache.apache

しないといけないので面倒でしょうがない。
SSHログインユーザーをapacheグループに所属させるという手もありますが、
特に何も指定しない場合、ファイルパーミッションは755で、所有者しかファイルの更新削除が出来ないはず。
なので、操作予定のファイルのパーミッションを775に変更しないといけないが、それもどうかな~。

apacheユーザーでSSHログイン出来れば良いとは思うのですが、そういう運用は一般的なんだろうか。
「apache」ユーザーは、システムアカウントと言って普通はログインして作業するようなものではないのだが・・・。
とりあえずはSSHなので秘密鍵がない限り大丈夫だと思い、apacheユーザーでSSHログイン出来るように設定してみました。

apacheユーザーはhttpdが起動しているので、そもそもあるかと思いますが、
ホームディレクトリはないので作成してさらにssh用のディレクトリを作成します。

#mkdir -p /home/apache/.ssh
#chown -R apache.apache /home/apache
#chmod 700 /home/apache/.ssh/

ここで、SSHの鍵を生成するために、apacheユーザーにsuしてみると・・・。

#su apache
This account is currently not available.

これはshellが有効でない場合に出るらしい。
(参考:Apacheの動作についての考察

以下のように、Shellを有効にして再度suする。(ついでに、ホームディレクトリも変えてみる。)

#chsh apache
apache のシェルを変更します。
新しいシェル [/sbin/nologin]: /bin/bash
シェルを変更しました。
 
#usermod -d /home/apache apache
#cp /etc/skel/.b* /home/apache
#chown -R apache.apache /home/apache
 
# su apache
$

SSH鍵を生成します。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/apache/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/apache/.ssh/id_rsa.
Your public key has been saved in /home/apache/.ssh/id_rsa.pub.
The key fingerprint is:
23:9a:2d:06:0a:81:f2:25:1e:a8:09:cf:c0:4c:52:54 apache@xxx.xxx

出来た公開鍵「id_rsa.pub」を「authorized_keys」にリネームします。

$ mv id_rsa.pub authorized_keys
$ chmod 600 authorized_keys

あとは一時的に秘密鍵のパーミッションを変更して、現在のSSHログインユーザーでダウンロードできるようにします。

これでログイン出来るようになったか試してみると、

No supported authentication methods available

と出てログイン出来ない。
Server側のログを見てみると

 User apache from xxx.xxx.xxx.xxx not allowed because not listed in AllowUsers

sshのPermission denied
がすぐ見つかったので、sshd_configのAllowUsersにapacheを追記して再起動したら無事にWinSCPでログイン出来たようです。

これから様子見でどうするかを決めたいと思います。


Tokyo Cabinetをのインストール

またインストールネタですいません。
Tokyo Cabinetを入れてみます。

環境はいつもの。

#cat /etc/redhat-release
CentOS release 5.3 (Final)

とりあえず。ダウンロード(ああ、wgetは面倒くさい)

# cd /tmp
# wget http://tokyocabinet.sourceforge.net/tokyocabinet-1.4.32.tar.gz

前提として、zlibとbzip2が入っていることが前提だそうなので

# yum list zlib
zlib.i386 1.2.3-3 installed
# yum list bzip2
bzip2.i386 1.0.3-4.el5_2 installed

入っているようなのでこのままインストールします。

# tar zxvf tokyocabinet-1.4.32.tar.gz
# cd tokyocabinet-1.4.32
# ./configure
 :
checking bzlib.h usability... no
checking bzlib.h presence... no
checking for bzlib.h... no
configure: error: bzlib.h is required

bzlib.hがないというエラーなので、調べてみるとbzip2-develというのが必要らしい。

yum install bzip2-devel

改めて、

# ./configure
# make
# make install

これでストレージ部分はインストールは出来たのですが、これを管理するというか操作する部分がないのでTokyo Tyrantというクライアント(というかマネージャ?)もインストールします。
Tokyo Tyrantのドキュメントを参照(素直にググって出てこなかったのですが・・・)

# wget http://tokyocabinet.sourceforge.net/tyrantpkg/tokyotyrant-1.1.33.tar.gz
# tar zxvf tokyotyrant-1.1.33.tar.gz
# cd tokyotyrant-1.1.33
# ./configure
# make
# make install

ここまで出来たら、

# ttserver

で起動することを確認出来ればOKです。


yumを間違って削除しちゃった場合の手順

yumという超便利なRHL系のパッケージがあるが、標準じゃないリポジトリに接続したかったので、色々やっているうちに「yum-fastestmirrot」というのをいったん消してみようじゃないかという話に(自分の中で)なったので

yum remove yum-fastestmirror

とやったら、yum自体がアンインストールされてしまった。その際の復旧手順です。
まず最新版のyumを取ってきて、rpmコマンドでインストールしますと。

# wget http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/yum-3.2.19-18.el5.centos.noarch.rpm
--00:31:57--  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/yum-3.2.19-18.el5.centos.noarch.rpm
ftp.iij.ad.jp をDNSに問いあわせています... 202.232.140.135, 202.232.140.138, 202.232.140.136, ...
ftp.iij.ad.jp|202.232.140.135|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 939467 (917K) [application/x-rpm]
Saving to: `yum-3.2.19-18.el5.centos.noarch.rpm'
 
100%[=============================================================================================================>] 939,467     5.39M/s   in 0.2s
 
00:31:57 (5.39 MB/s) - `yum-3.2.19-18.el5.centos.noarch.rpm' を保存しました [939467/939467]
 
# rpm -ivh yum-3.2.19-18.el5.centos.noarch.rpm
エラー: 依存性の欠如:
        yum-fastestmirror は yum-3.2.19-18.el5.centos.noarch に必要とされています

したら、yum-fastestmirrorが必要だと言っているので、じゃfastestmirrorを先に入れますと。

# wget http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm
--00:32:33--  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm
ftp.iij.ad.jp をDNSに問いあわせています... 202.232.140.139, 202.232.140.135, 202.232.140.138, ...
ftp.iij.ad.jp|202.232.140.139|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 18886 (18K) [application/x-rpm]
Saving to: `yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm'
 
100%[=============================================================================================================>] 18,886      --.-K/s   in 0.02s
 
00:32:33 (1.03 MB/s) - `yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm' を保存しました [18886/18886]
 
# rpm -ivh yum-3.2.19-18.el5.centos.noarch.rpm
エラー: 依存性の欠如:
        yum-fastestmirror は yum-3.2.19-18.el5.centos.noarch に必要とされています

yum-fastestmirrotはyumが必要だそうです。見事にデッドロックしています。
どうしたもんかと調べていたら、同じ悩みを抱える方が居たようで

http://kajuhome.com/cgi-bin/patio/patio.cgi?mode=view&no=1765

これをみて、以下のようにしたら復旧しました。

[root@blackhole ~]# rpm -ivh yum-3.2.19-18.el5.centos.noarch.rpm yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm
準備中...                ########################################### [100%]
   1:yum-fastestmirror      ########################################### [ 50%]
   2:yum                    ########################################### [100%]