# いい感じの ブログ を作成する

現状の課題

  • 現在:生PHPによるブログ生成のためモダンじゃない
  • robot が収集してくれない
  • markdown の表示がイケてない
  • 保守性にかける

一般的な構成調査

用語

CMS(Contest Management System)

gitベース

apiベース

一般的なブログ構成

やってみた

とりあえず WordPress 導入

https://ja.wordpress.org/download/

sudo amazon-linux-extras install nginx1.12 -y
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
sudo amazon-linux-extras install php7.4 -y

sudo vi /etc/php-fpm.d/www.conf
sudo systemctl restart php-fpm.service
sudo systemctl restart nginx.service

cd /usr/share/nginx/html
sudo echo "<?php phpinfo(); ?>" | sudo tee - info.php

sudo vi /etc/nginx/nginx.conf

sudo yum install mariadb-server mariadb-client
sudo systemctl enable mariadb
sudo systemctl start mariadb

wget https://ja.wordpress.org/latest-ja.zip
unzip latest-ja.zip
sudo chown -R nginx:ec2-user /usr/share/nginx/html/

mysql -u root
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8;
GRANT ALL ON wordpress.* TO wordpress@localhost IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

残りはここを参考に https://qiita.com/cherubim1111/items/1e1f227a0a495bc14a11

要件

  • PHP 7.4以上
  • MySQL 5.6
  • Nginx / Apache

導入完了

所感

コンポーネントが多い カスタマイズ等は十分そう

もう少し軽量なCMSが欲しい

試してみる

WonderCMS

wget https://github.com/robiso/wondercms/releases/download/3.1.4/WonderCMS-3.1.4.zip
unzip WonderCMS-3.1.4.zip
mv WonderCMS-3.1.4.zip wondercms
sudo chown -R nginx:ec2-user wondercms/
sudo chmod 774 -R wondercms/

500が返却されるので理由確認

sudo cat /etc/php-fpm.d/www.conf | grep "error"
sudo vi /etc/php-fpm.d/www.conf

sudo yum -y install php-mbstring

OK

sudo vi /etc/nginx/nginx.conf の server_name を参照するのでここミスっているとログイン不可

nginxでは.htaccessを利用できないのも罠

nginx用の設定 https://github.com/robiso/wondercms/wiki/NGINX-server-config

root /usr/share/nginx/html/wondercms;
include /etc/nginx/default.d/*.conf;

        # rewrite url to make it pretty
        location / {
            if (!-e $request_filename) {
                rewrite ^/(.+)$ /index.php?page= last;
            }
        }

この辺の設定がうまく動作しないと動作しない

fastcgi_pass で php-fpmが提供する UnixDomainSocket を設定しないといけない

ログイン画面は表示されたが、セッションが保存されない

cat /etc/php-fpm.d/www.conf | grep “session” sudo ls -l /var/lib/php/session total 0

いかにもセッション作成に失敗してそうな雰囲気

sudo ls -l /var/lib/php/ total 0 drwxrwx— 2 root apache 6 Jul 7 17:39 opcache drwxr-xr-x 2 root root 6 Jul 7 17:39 peclxml drwxrwx— 2 root apache 6 Jul 7 17:39 session drwxrwx— 2 root apache 6 Jul 7 17:39 wsdlcache

なぜか apache が持ってた sudo chown root:nginx /var/lib/php/session

おお、これは使いやすそう