2017年11月16日

Ruby2.4 のインストール

いや〜、もう11月ですかぁ!
年末ですなぁ。
ずいぶん長い事、ここほったらかしにしてますた(汗

なんか今日(11月16日)は、Windows XP が発売された日みたいですね。
2001年、16年前ですな。
わたすも若く幸せな時期ですた、なんて今が不幸な訳ではないですがwww

今回は、Ubuntu16.04 にRuby2.4 入れようとしたら面倒だったので覚書。
apt-get だと2.3までしか入りまへん。
Ubuntuはんは、.bashrc ではなくて .profile なので注意でっせ〜。

[準備]
sudo apt-get -y install git curl g++ make
sudo apt-get -y install zlib1g-dev libssl-dev libreadline-dev
sudo apt-get -y install libyaml-dev libxml2-dev libxslt-dev
sudo apt-get -y install sqlite3 libsqlite3-dev nodejs

[rbenvのインストール]
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile
echo 'eval "$(rbenv init -)"' >> ~/.profile
source ~/.profile

[rubyのインストール]
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
rbenv install 2.4.2
rbenv global 2.4.2
rbenv rehash


posted by NERDY at 11:18 | Comment(0) | 技術 | このブログの読者になる | 更新情報をチェックする

2017年05月15日

Nginx + PHP + Ubuntu 環境構築

Ubuntu に、Nginx + PHP 環境を構築するための覚書。
ざーっと書いちゃいます。
環境は以下。
# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"
# arch
x86_64

1.Nginxのインストール
PGPキーの追加。
wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key

/etc/apt/sources.list に以下を追加
deb http://nginx.org/packages/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/ubuntu/ xenial nginx

そしたら普通にUPDATE、INSTALL。
sudo apt-get update
sudo apt-get install nginx

2.PHP7.0のインストール
リポジトリの追加
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php-7.0 -y

アップデートの後、インストール
sudo apt-get update
sudo apt-get install php
sudo apt-get install php7.0-fpm

3.設定変更
/etc/nginx/conf.d/default.confを編集。
location / {
   #root /usr/share/nginx/html;
    root /var/www;
   #index index.html index.htm;
    index index.php;
}

location ~ \.php$ {
   #root html;
    root /var/www;
   #fastcgi_pass 127.0.0.1:9000;
    fastcgi_pass unix:run/php/php7.0-fpm.sock;
    fastcgi_index index.php;
   #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
    include fastcgi_params;
}

/etc/php/7.0/fpm/pool.d/www.confを編集。
listen = /run/php/php7.0-fpm.sock

4.動作確認
/var/www にindex.phpを作成。
<?php
phpinfo();

最後に、sockファイルのパーミッションを変更。
chmod 666 /run/php/php7.0-fpm.sock

localhostにアクセスして以下が表示されればOK。
phpinfo.jpg
posted by NERDY at 16:51 | Comment(0) | 技術 | このブログの読者になる | 更新情報をチェックする

2017年04月26日

おひとり様用マストドンを無料で立てたぞ

今、巷で「マストドン」なるものが流行っております。
世界最大の「mstdn.jp」を立ち上げた大学院生“ぬるかるさん”は一体何者か その素顔とドワンゴ入社が決まるまでの10日間に迫る

なんかおもすろそうなので、わたすもおひとり様用インスタンスを立ててみますた。
gyudn.png
気が向いたら遊びに来てください。


基本、以下サイトで出来るはずです。
今何かと話題のマストドン(mastodon)鯖を自分用に無料で立てる方法

この記事の難点は、AWSの準備が出来た以降となってるところですな。
なので、以下補足。
[補足1:AWS]
t2.micro 前提
OS:Ubuntu 16.04 LTS 前提

1)以下をやっとく。
AWSで無料枠を超えた時にアラートを飛ばす

2)Elastic IPを割り当てる(※インスタンス再起動時は解除してやらないと課金発生)

3)以下ポートを開ける
22(既に空いてる、というか開けとかないとSSH接続できない)
80
443
3000
4000

4)スワップの追加
以下をやっとく。やらないと、out of memory 出まくり。
t2.micro にスワップ領域を追加するための設定例

[補足2:今何かと話題のマストドン(mastodon)鯖を自分用に無料で立てる方法]
1).env.production
SMTP に SparkPost を使った場合の設定は以下
SMTP_SERVER=smtp.sparkpostmail.com
SMTP_PORT=587
SMTP_LOGIN=SMTP_Injection
SMTP_PASSWORD=発行されたAPIキー
SMTP_FROM_ADDRESS=mail@example.com→ここは任意に書き換え


2)証明書の取得は記事通りにやるとあきまへん。
certbot certonly --webroot -w /var/www/example -d example.com
certbot certonly --standalone -d xxxxx.com→ここは自分のドメインに書き換え

3)Nginxの設定
公式をパクればOK、と書いてあるけどダメ。
これだとブラウザアクセスはOKだけど、スマホアプリからのアクセス時に白アイコンになる。
下が良いと思う。
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name xxxxx.com; → 自分のドメイン
root /var/www/xxxxxxx; → このフォルダは適当な名称で作成する。実体はここじゃない。
index index.html index.php index.xml;

#ssl
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK';
ssl_certificate /etc/letsencrypt/live/xxxxx.com/fullchain.pem; → xxxxx.com は自分のドメイン
ssl_certificate_key /etc/letsencrypt/live/xxxxx.com/privkey.pem; → xxxxx.com は自分のドメイン
ssl_dhparam /etc/nginx/ssl/dhparam.pem; → こいつは作成してやる(後述)
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/xxxxx.com/fullchain.pem; → xxxxx.com は自分のドメイン
resolver 8.8.4.4 8.8.8.8 valid=300s;
resolver_timeout 10s;
add_header Strict-Transport-Security 'max-age=315360000; includeSubDomains; preload';
add_header Content-Security-Policy "script-src 'self'; frame-ancestors 'none'; object-src 'none';";

#gzip
 ここから下は、公式とおんなじだから省略

4)/etc/nginx/sites-enabled にある default(シンボリックリンク)を消去。
これをやっとかないと、nginx 再起動でエラーとなる。(ubuntu 特有の現象)

5)dhparam の作成。結構時間がかかる。
# mkdir /etc/nginx/ssl
# cd /etc/nginx/ssl
# openssl dhparam 2048 -out dhparam.pem

6)最後に以下をたたいて終わり
# su -
# docker stop $(docker ps -a -q) && docker-compose up -d
# nginx -s reload
posted by NERDY at 17:53 | Comment(0) | 技術 | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。