ポジローぽけっと

昨日より今日、今日より明日を信じて、トライトライ

debianのnginxでpukiwikiを動かしたくなったら

php5-fpmをインストールして、pukiwikiを設置する。

php5-fpmのインストールと設定変更

以下でインストールして、

sudo apt install php5-fpm

以下ファイルの

sudo vi /etc/php5/fpm/pool.d/www.conf

listen.owner, listen.groupをnginxに変更する
unix domain sokectにnginx(/etc/nginx/nginx.confのuser)がrwできるようにするため
※user, groupはついでに変更

;user = www-data
;group = www-data
user = nginx
group = nginx
中略
;listen.owner = www-data
;listen.group = www-data
listen.owner = nginx
listen.group = nginx

変更したらリスタート

sudo service php5-fpm restart

設定が反映されているか確認

ls -l /var/run/php5-fpm.sock
srw-rw---- 1 nginx nginx 0 Aug 15 21:14 /var/run/php5-fpm.sock

pukiwikiの設置

例えば以下にsftpでuploadし、

/usr/share/nginx/pukiwiki

ディレクトリの権限を以下に従い修正する

PukiWiki/Install/インストール方法 - PukiWiki-official

nginxの設定

/etc/nginx/conf.d/pukiwiki.confを作成する

server {
  listen [ip]:[port];
  server_name [servername];
  root /usr/share/nginx/pukiwiki;
  location ~ (^/$)|(^/index\.php$)|(^/skin/.+\.php$) {
    # With php5-fpm:
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  location ~ ^/(skin|image)/ {
  }
  location / {
    return 404;
  }
}

作成したらリスタート

sudo service nginx restart

以上でhttp://[ip]:[port]/にアクセスすればpukiwikiが使える

参考

etckeeperのログを可視化したくなったら

簡易表示でよければgit標準cgiのgitwebを使う

install

gitが入っていればgitwebは入ってるはず。

gitwebは/usr/share/gitweb/gitweb.cgiにあるcgiなので、
cgiを動作させるために以下をインストールする

sudo apt install fcgiwrap spawn-fcgi

gitwebの設定

sudo vi /etc/gitweb/gitweb.conf

$projectrootに*.gitディレクトリを配置するディレクトリを設定する
以下の例は/var/lib/git

our $git_temp = "/tmp";

# The directories where your projects are. Must not end with a slash.
# our $projectroot = "/path/to/your/repositories";
our $projectroot = "/var/lib/git";
# Base URLs for links displayed in the web interface.
#our @git_base_url_list = qw(git://<your_server> http://git@<your_server>);

/var/lib/gitにetckeeperの.gitである/etc/.gitへのシンボリックリンクを張る ※otherから見れるように権限も変える

sudo chmod -R 755 /etc/.git
sudo ln -s /etc/.git /var/lib/git/etckeeper.git

nginxの設定

/etc/nginx/conf.dに以下のようなgitweb.confを作成する

server {
    listen [ip]:[port];
        server_name [server_name];
        location /gitweb.cgi {
        include fastcgi_params;
        gzip off;
        fastcgi_param   SCRIPT_FILENAME  /usr/share/gitweb/gitweb.cgi;
        fastcgi_param   GITWEB_CONFIG  /etc/gitweb/gitweb.conf;
        fastcgi_pass unix:/var/run/fcgiwrap.socket;
    }
    location / {
        root /usr/share/gitweb;
        index gitweb.cgi;
    }
}  

作成後はnginxに設定を読み込ませるため

sudo service nginx restart

以上で、http:/[ip]:[port]/にアクセスすればgitwebが見れる。

init.dで起動するプロセスが異常終了した場合に再起動かけたかったら

monitを使う

install

sudo apt install monit

setting

cd /etc/monit/conf.d
sudo vi example.conf

最もシンプルなexampleは以下(example.confは/etc/monit/monitrcから読み込まれる)、
(/etc/init.d/exampleは自身でexample.pidを生成し、serviceから呼び出せる場合

check process example with pidfile /var/run/example.pid
start program = "/usr/sbin/service example start"
stop  program = "/usr/sbin/service example stop" 

設定できたら

sudo service monit restart

test

起動しているexampleを停止したら、monitが再起動かけるかテスト

sudo tail -f /var/log/monit.log &
sudo service example stop

[JST Aug 14 21:13:56] error    : 'example' process is not running
[JST Aug 14 21:13:56] info     : 'example' trying to restart
[JST Aug 14 21:13:56] info     : 'example' start: /usr/sbin/service

[JST Aug 14 21:15:57] info     : 'example' process is running with pid 7267

monit自身が異常終了したらどうするの?

monitは/etc/inittabに登録する

※これはまだ試してない

参考

Easy, proactive monitoring of processes, programs, files, directories, filesystems and hosts | Monit

15分で始めるmonitによるサーバ監視 - SHANON Engineer's Blog

CentOS 6.5にmonitをインストールしてプロセス監視をする - Qiita

initとプロセス再起動