マグカップの裏

プログラムとか、思ったこととか、料理とか

nginx+Codiadな環境を構築した話

少し前にApache+Codiadな環境構築の話をしたばかりでしたが。
昨日投稿した、Android上でのコーディング環境の構想のひとつとして考えたCodiadを使う話で構築してみようということでやってみたレポ。

環境はVMWarePlayer上にインストールされたCentOS7。ブリッジ接続にしてホストと同じ用にルータにぶら下がった状態にしておきます。

私はGUIベースなサーバ構成インストールを選択しました、気まぐれで。
別に最小構成でいいと思う。

ではお馴染みのnginxインストール。CodiadはPHPで動作するのでPHPもいれてあげます。

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install -y nginx php php-fpm

php-fpmの設定を行う。こんな感じ

/etc/php-fpm.d/www.conf

listen = /var/run/php-fpm/php-fpm.sock;


~~~~~~~~~

; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions.
; Default Values: user and group are set as the running user
; mode is set to 0666
listen.owner = nginx
listen.group = nginx
;listen.mode = 0666

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx

ユーザやグループ設定をnginxにして、動作をソケットモードとか言うのにしています。
この方が高速らしいので。

/etc/nginx/sites-available/codiad.conf

server {
listen 80;
server_name exsample.com;
root /var/www/html/codiad;
index index.php index.html index.htm;

access_log /var/log/nginx/codiad/access.log;
error_log /var/log/nginx/codiad/error.log;


location ~ \.php$ {
root /var/www/html/codiad;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html/codiad$fastcgi_script_name;
include fastcgi_params;
}
}

あとは/etc/nginx/site-enableに上記ファイルのシンボリックリンクをはってあげればいいようですが、別に/etc/nginx/conf.d/配下に配置するだけでいい気もします。

あとはApacheの時と同じかんじでCodiadを配置。

cd /var/www/html/
wget https://github.com/Codiad/Codiad.git
mv Codiad codiad
chmod a+rwx -R codiad
chown nginx:nginx -R codiad

systemctl start nginx
systemctl enable nginx
systemctl start php-fpm
systemctl enable php-fpm


firewalldとかの設定は適せんやってください。
あと、私と同じようにGUIベースなサーバ構成インストールをしたときはSELinuxが悪さをするので黙らせるか設定するかしてください。
最小構成じゃないCentOS久しぶりですっかり忘れててしばらくはまりました。
そして最新のCentOSPHPを使っているとPHPが一部書き込み権限がないのかなんなのか、エラーをはいてCodiadにログインできないという事象が発生します。上記設定のエラーログにエラーが出ます。
そんなときは下記。

chmod 777 /var/lib/php/session

これでいいらしい。