Oracle CloudにWordPressを構築してみた
はじめに
これまでブログをBloggerに書いていたのですが、WordPressに移行しました。
ドメイン以外は無料で運用したかったので、Oracle Cloudの無料のVPS上に構築しました。
VPSの作成
Oracle CloudにVPS立てるまでの手順はここを参考にしました。
パッケージの更新
sudo dnf -y update
Nginxのインストール
sudo dnf -y install nginx
sudo systemctl enable nginx
sudo systemctl start nginx
ポートの開放
sudo firewall-cmd --add-service=http --zone=public
sudo firewall-cmd --add-service=https --zone=public
sudo firewall-cmd --runtime-to-permanent
sudo firewall-cmd --reload
SELinuxの無効化
sudo vi /etc/selinux/config
SELINUX=disabled
再起動
sudo reboot
/etc/nginx/nginx.conf の編集
以下をコメントアウトします。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
Let’s Encryptの設定
certbotのインストール
sudo dnf -y install epel-release
sudo dnf -y install certbot
Unable to find a match: epel-release が表示された場合は、以下を実行します。
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
confの作成
sudo mkdir -p /var/www/certbot
sudo vi /etc/nginx/conf.d/wordpress.conf
/etc/nginx/conf.d/wordpress.conf に以下を設定します。
server {
listen 80;
server_name _;
location / {
return 444;
}
location ^~/.well-known {
alias /var/www/certbot/.well-known;
}
}
Nginxの再起動
sudo systemctl restart nginx
証明書の発行
sudo certbot certonly --webroot --webroot-path /var/www/wordpress --domain ababa.cloud --email some@example.com --non-interactive --agree-tos --no-eff-email
自動更新の設定
sudo systemctl enable --now certbot-renew.timer
sudo vi /etc/letsencrypt/renewal-hooks/deploy/reload.sh
/etc/letsencrypt/renewal-hooks/deploy/reload.sh に以下を設定します。
#!/bin/bash
systemctl reload nginx
実行権限の付与
sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload.sh
PHP
インストール
sudo dnf install php php-fpm php-mysqlnd php-json php-mbstring php-gd
実行ユーザーの変更
sudo vi /etc/php-fpm.d/www.conf
/etc/php-fpm.d/www.conf を編集します。
user = apache
group = apache
↓
user = nginx
group = nginx
;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0660
↓
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
セッションを保存しておくディレクトリの所有者変更
sudo chown -R nginx:nginx /var/lib/php/session
sudo systemctl restart php-fpm
Maria DB
インストール
sudo dnf -y install mariadb mariadb-server
sudo systemctl start mariadb
sudo systemctl enable mariadb
rootユーザーパスワード設定
sudo mysql -u root
update mysql.user set password=password('my-db-password') where user = 'my-user';
flush privileges;
exit;
ユーザーの作成
mysql -u my-user -p
データベースの作成
create database wp_database;
grant all privileges on wp_database.* to wp_user@localhost identified by 'my-wordpress-password';
exit;
WordPressのインストール
curl -O https://ja.wordpress.org/latest-ja.tar.gz
sudo tar -xzvf latest-ja.tar.gz -C /var/www
sudo chown -R nginx:nginx /var/www/wordpress
/etc/nginx/conf.d/wordpress.conf に以下を設定します。
server {
listen 443 ssl;
server_name ababa.cloud;
ssl on;
index index.php index.html;
root /var/www/wordpress;
ssl_certificate /etc/letsencrypt/live/ababa.cloud/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ababa.cloud/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/ababa.cloud/fullchain.pem;
location ~* /wp-config.php {
deny all;
}
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
include fastcgi.conf;
fastcgi_pass unix:/run/php-fpm/www.sock;
}
}
sudo systemctl restart nginx
ディスカッション
コメント一覧
まだ、コメントがありません