concrete5のインストール

前回はベース用のAMIを作成したのでそこからサクッと別イメージを作成して
CMSなぞ構築してみようかと思ってWordPressという選択肢もあるんですが、今回は
concrete5を入れてみます。Moveble-Typeもあるけど、お金いるんで今回はパスで

1.参考情報
◆構築参照サイト
http://isboj.wp.xdomain.jp/2017/09/01/concrete5/
https://qiita.com/renny1398/items/a6aa309d05245f0aae60
https://websiteforstudents.com/install-concrete5-on-ubuntu-16-04-lts-with-nginx-mariadb-and-php-7-1-support/
https://qiita.com/sapi_kawahara/items/bbfbc57fd12ff348f216
https://tecadmin.net/install-php5-on-ubuntu/
◆使い方
◆テーマ作成方法
◆カスタマイズ等
◆Wordpressからの移行

まだ移行とかはできていないですが、HTMLからテンプレートを生成するところが
比較的簡単でした。WordPressよりも使い勝手いいかもしれないです。

2.構築手順
雑ですが、concrete5をベースイメージから構築する手順まとめました。
(1)インスタンス作成
 ・AMI[yyyymmdd_BaseOS_Image]を右クリックして作成を選択
 ・インスタンスタイプはt3microを選択
  [次へ]
 ・IAMロール:EC2toS3Backupを選択
 ・削除保護の有効化にチェックを付ける
 ・T2/T3 Unlimited の有効化を外す
  [次へ]
 ・ボリュームサイズは基本8GBなので用途に応じて設定(基本10GB以上)
  ※今回は20GBを設定
  [次へ]
 ・タグを設定
  キー:concrete5-Backup-Generation , 値:1
  キー:Name 値:concrete5sv
  [次へ]
  既存のセキュリティグループを選択する
  [確認と作成]
  [作成]

(2)ElasticIP割当
 ・作成済みのインスタンを停止する。
  右クリック→インスタンスの状態から[停止]を選択
 ・ElasticIPを紐付
  ElasticIPを選択→割当対象のIPを選択後右クリック→アドレスの関連付を選択
  インスタンスの箇所でconcrete5svを選択
 ・該当インスタンスを起動する。

(3)サーバ上でのコマンド

# ホスト名設定
$ sudo hostnamectl set-hostname concrete5sv

# アップデート
$ sudo apt-get -y update
$ sudo apt-get -y upgrade

# バックアップシェル修正
$ sudo vi ami_auto_backup.sh
※BILLINGGROUPとBACKUPGROUPの箇所修正
++++++++++++
BILLINGGROUP="concrete5"
BACKUPGROUP="concrete5-Backup-Generation"
++++++++++++

# ubuntuユーザをwww-dataグループに追加
$ sudo usermod -aG www-data ubuntu

## nginxインストール
$ sudo apt-get -y install nginx
$ nginx -v
nginx version: nginx/1.14.0 (Ubuntu)


## SSL証明書設定
# 自己証明書
$ cd /etc/nginx/
$ sudo mkdir ssl
$ cd ssl
$ sudo openssl genrsa -aes128 -out server.key 2048
Enter pass phrase for server.key:password
Verifying - Enter pass phrase for server.key:password
$ sudo openssl rsa -in server.key -out server.key
Enter pass phrase for server.key:password
$ sudo openssl req -new -days 3650 -key server.key -out server.csr
$ sudo openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 36500


## nginx設定
# Basic認証設定
$ sudo apt-get install apache2-utils
$ sudo htpasswd -c /etc/nginx/.htpasswd auth_user
New password: passwd
Re-type new password: passwd

# 設定ファイル修正
$ sudo vi /etc/nginx/nginx.conf
+++++++
http {
        ##
        # Basic Settings
        ##
++        server_tokens off;
   keepalive_timeout 160;  ←修正



$ sudo vi /etc/nginx/conf.d/concrete5.conf
++++++++
upstream phpfpm{
  server unix:/var/run/php/php7.2-fpm.sock;
}

server {
        listen 80; # httpへのアクセスをhttpsへリダイレクトする
        listen [::]:80;
        server_name  XX.XX.XX.XX;

        if ($http_x_forwarded_proto != https) {
            return 301 https://$host$request_uri;
        }
}
server {
    listen 443 ssl;
    listen [::]:443 ssl;
    ssl on;
    server_name  XX.XX.XX.XX;
    index  index.html index.htm index.php;
    client_max_body_size 128M;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_session_timeout 5m;

    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    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:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
    ssl_prefer_server_ciphers on;
    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains" always;

    location / {
        root /var/www/concrete5;
        index index.html index.htm index.php;

        auth_basic "Please Input ID and Password";
        auth_basic_user_file /etc/nginx/.htpasswd;

        try_files $uri $uri/ /index.php?$query_string;

        if ( !-e $request_filename ) {
            rewrite ^ index.php last;
        }
    }
 
    location ~ \.php$ {
        fastcgi_pass phpfpm;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/concrete5/$fastcgi_script_name;
        include fastcgi_params;
    }
}
++++++++


## PHP7.2インストール
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update
$ sudo apt-get -y install php7.2-fpm php7.2-common php7.2-mbstring php7.2-xmlrpc php7.2-soap php7.2-gd php7.2-xml php7.2-intl php7.2-mysql php7.2-cli php7.2-zip php7.2-curl
$ php -v
PHP 7.2.12-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Nov 12 2018 09:55:44) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.12-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

# PHP.ini編集
$ sudo vi /etc/php/7.2/fpm/php.ini
memory_limitを書き替え
++++++++++++++++++++++++++++++++++
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 256M
++++++++++++++++++++++++++++++++++


## MariaDBインストール
$ sudo apt-get -y install mariadb-server

# 文字コード設定
$ sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf
以下2行の通りutf8に変更
++++++++++++++++++++++++++++++
 character-set-server = utf8
 collation-server = utf8_general_ci
++++++++++++++++++++++++++++++

$ sudo vi /etc/mysql/mariadb.conf.d/50-client.cnf
以下の通りutf8に変更
++++++++++++++++++++++++++++++
 default-character-set = utf8
++++++++++++++++++++++++++++++

$ sudo vi /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf
++++++++++++++++++++++++++++++
default-character-set = utf8 
++++++++++++++++++++++++++++++

## MariaDB初期設定
$ sudo mysql_secure_installation

# パスワード設定(空白にしない) 
Enter current password for root (enter for none):
Change the root password? [Y/n] Y
New password:password
Re-enter new password:password

# 匿名ユーザ削除
Remove anonymous users? [Y/n] Y

# rootリモートログイン禁止 
Disallow root login remotely? [Y/n] Y

# テストデータベース削除 
Remove test database and access to it? [Y/n] Y

# 特権情報リロード 
Reload privilege tables now? [Y/n] Y

# MariaDB再起動
$ sudo service mysqld restart

# 接続確認
$ mysql --version
mysql  Ver 15.1 Distrib 10.1.34-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
$ sudo mysql -u root -p

MariaDB [(none)]> show variables like 'character_set%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

# concreate5用データベース作成
MariaDB [(none)]> create database concrete5;
MariaDB [(none)]> select user from mysql.user where user='concrete5';
MariaDB [(none)]> grant all privileges on concrete5.* to concrete5@localhost identified by 'concrete5';
MariaDB [(none)]> exit
$ sudo mysql -u concrete5 -p
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| nConcrete5         |
+--------------------+
MariaDB [(none)]> exit


## concrete5インストール
$ sudo apt-get -y install unzip
$ cd /var/www/
$ sudo wget http://www.concrete5.org/download_file/-/view/107738/
※URLはhttps://concrete5-japan.org/about/download/にてボタンのリンクをコピーすること
$ sudo mv index.html concrete5.zip
$ sudo unzip concrete5.zip
$ sudo mv concrete5-8.4.3 concrete5
$ sudo chown -R www-data concrete5
$ sudo chgrp -R www-data concrete5
$ sudo rm -f concrete5.zip

# 再起動
$ sudo systemctl restart nginx.service
$ sudo systemctl restart php7.2-fpm.service

# 自動起動設定
$ sudo systemctl enable nginx.service
$ sudo systemctl enable php7.2-fpm.service
$ sudo systemctl enable mariadb.service

(4)concrete5インストール
http://XX.XX.XX.XXにアクセスして画面の指示に沿って設定
詳細はこちらを参照

とりあえずはWordPress5.0出てるみたいです。
concrete5と似たようなブロック方式採用しているようなのでプラグイン次第ではWordPressのシェアが伸びるかもしれないかなぁ


コメント

このブログの人気の投稿

証券外務員1種勉強(計算式暗記用メモ)

GASでGoogleDriveのサブフォルダとファイル一覧を出力する

マクロ経済学(IS-LM分析)