ghost+nginx+MariaDBをインストールして試してみた
Just a blogging platform
ghostは、ブログを書くためのプラットフォームです。
mediumのような、シンプルでかっこいいブログサイトを作ることができます。
ブログを書くためだけの機能のみ提供されているので、使い方はとても簡単です。
記事はmarkdownで書くこともできます。
やたらと高機能になってしまった感のあるWordPressよりも、
ghostの方が書くことに集中できていいかもしれません。
インストール
Ubuntu 12.04.3 LTSにいれてみました。
せっかくなので、フロントにnginx、DBにはMariaDB10.0.6を使ってみました。
インストールしたもの
Node.jsをインストール
cd ~/src wget http://nodejs.org/dist/v0.10.22/node-v0.10.22.tar.gz tar xf node-v0.10.22.tar.gz cd node-v0.10.22 ./configure --prefix=/usr/local/node make sudo paco -D make install
MariaDB10.0.6をインストール
sudo groupadd mysql sudo useradd -g mysql -M mysql -s /bin/false cd ~/src wget https://downloads.mariadb.org/interstitial/mariadb-10.0.6/kvm-bintar-hardy-amd64/mariadb-10.0.6-linux-x86_64.tar.gz/from/http://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb gunzip < mariadb | tar xvf - sudo mv mariadb-10.0.6-linux-x86_64/ /usr/local/ sudo ln -s /usr/local/mariadb-10.0.6-linux-x86_64 /usr/local/mysql cd /usr/local/mysql sudo chown -R mysql . sudo chgrp -R mysql . sudo apt-get install -y libaio1 scripts/mysql_install_db --user=mysql sudo chown -R root . sudo chown -R mysql data sudo cp support-files/mysql.server /etc/init.d/mysql sudo sysv-rc-conf mysql on sudo cp support-files/my-large.cnf /etc/my.cnf sudo ./bin/mysql_secure_installation rootユーザーのパスワードを設定 匿名ユーザーの削除 rootユーザーのリモート接続を禁止 testデータベースの削除 sudo sh -c "echo 'export PATH=\$PATH:/usr/local/mysql/bin' >> /etc/profile.d/mysql.sh" source /etc/profile.d/mysql.sh
とりあえず最低限の設定、文字コードをutf8に
vi /etc/my.cnf
[mysqld] character-set-server = utf8
mysqlのプロンプトで確認
mysql -uroot -p status show engines; show variables like '%char%';
nginxをインストール
sudo groupadd nginx sudo useradd -g nginx -M nginx -s /bin/false sudo mkdir /var/{log,run}/nginx sudo chown nginx:nginx /var/{log,run}/nginx/ sudo apt-get install -y zlib1g-dev libpcre3-dev cd ~/src wget http://nginx.org/download/nginx-1.4.4.tar.gz tar xf nginx-1.4.4.tar.gz cd nginx-1.4.4/ ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/run/nginx/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --without-http_ssi_module make sudo paco -D make install sudo chown -R nginx /usr/local/nginx
リバースプロキシの設定
ghostが2368ポートで立ち上がるので、流す。
vi /usr/local/nginx/conf/nginx.conf
// (snip) server { listen 80; server_name localhost; location / { proxy_pass http://localhost:2368; } // (snip)
起動スクリプト
cd ~/src wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx sed -i \ -e 's/PIDSPATH=\/usr\/local\/nginx\/logs/PIDSPATH=\/var\/run\/nginx/' \ -e 's/lockfile=\/var\/lock\/subsys\/nginx/lockfile=\/var\/run\/nginx/' \ nginx sudo chown root:root nginx sudo chmod 755 nginx sudo mv nginx /etc/init.d/ sudo /etc/init.d/nginx start
ghostをインストール
cd ~/src wget https://ghost.org/zip/ghost-0.3.3.zip unzip ghost-0.3.3.zip -d ~/ghost cd ~/ghost cp config.example.js config.js
本番環境として動かすので、productionの設定
最初のユーザを作るためにメール送信の設定が必要ぽいので
この辺に書いてあるのでどれかを使う。
http://docs.ghost.org/mail/
vi config.js
// (snip) production: { url: 'http://my-ghost-blog.com', mail: { transport: 'SMTP', options: { service: 'Gmail', auth: { user: 'your-account@gmail.com', pass: 'password' } } }, database: { client: 'mysql', connection: { { host: '127.0.0.1', user: 'db-user', password: 'db-user-password', database: 'ghost', charset: 'utf8' }, }, debug: false }, server: { host: '127.0.0.1', port: '2368' } }, // (snip)
npm install mysql npm install --production
ghostを起動
sudo NODE_ENV=production /usr/local/node/bin/npm start
せっかくなので、foreverを使ってデーモン化する
sudo npm install forever
起動と停止のスクリプト
vi start.sh
#!/bin/sh export PATH=$PATH:/usr/local/node/bin export NODE_ENV=production forever start index.js
vi stop.sh
#!/bin/sh export PATH=$PATH:/usr/local/node/bin export NODE_ENV=production forever stop index.js
chmod u+x {start,stop}.sh
ブログのユーザを作成
/ghost/signupにアクセスしてサインアップ
http://my-ghost-blog.com/ghost/signup/
このあと、config.jsのメールの設定はとっちゃってok
テーマの追加
テーマを変更すると、ブログの外観をガラリと変更できます、
http://marketplace.ghost.org/
このあたりから選んでディレクトリに突っ込んでghostを再起動すると
管理画面のsetting -> generalから追加したテーマを選択することができるようになります。
ghostのフォーラムにも上がってた
https://ghost.org/forum/themes/
テーマ「ghostium」の追加例:
cd ~/ghost/content/theme
git clone https://github.com/oswaldoacauan/ghostium/
今の流行なんでしょうか、フラットデザインでレスポンシブ、写真と文字がでかいデザインが多いですね。
シンプルでかっこいいので、使う人が増えてテーマが増えるといいなぁ。