LoginSignup
6
1

More than 3 years have passed since last update.

CentOS 8とmysqlで WordPress 構築

Posted at

環境

CentOS 8.0.1905(Conoha VPS)
WordPress
Nginx
mysql

初めに

WordPressの環境を作りたく、作ってみた思ったより簡単にできたので
手順メモ。

フロー

1.Nginxインストール
2.mysqlインストール
3.phpインストール
4.phpの拡張機能インストール
5.db作成
6.wordpressのインストール
7.Nginx設定
8.完了

手順

LEMP環境を作成
LEMP…Linux,Nginx,Mysql,Phpの頭文字をとったもの。LAMPは知ってたけど。
遅れながら初耳。
という訳でVPSとかでOSまでのインストールまでは勝手にやってくれている前提でやってみる。まずはシステムのアップデート

dnfupdate
dnf update

dnfっていうのも初めて。調べてみるとyumの後継だとか。ほほう。ラズパイだとapt-getとかだよね(多分)
次、Nginxをインストール。

install_Nginx
dnf install nginx
#再起動時に自動で起動するように設定
systemctl enable --now nginx
#状態をチェック
systemctl status nginx

nginxのインストール

inginx_status
#以下のように表示されていればOKそう。
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2019-10-09 02:57:23 EDT; 10s ago
  #…(略)
#うまくいってないと以下のような表示がある
 Active: failed (Result: exit-code)
firewall
#firewallのポート設定http (80) https(443)を許可しておく
firewall-cmd --add-port = 80 / tcp --permanent
firewall-cmd --reload

ここまでで問題なければ
http://サーバーのIPアドレス
でブラウザを叩くとWelcome to Nginx なるページが表示されればOK。

お次はmysqlのインストール

mysqlのインストール

install_mysql
#これで一撃だった
dnf install @mysql
#インストール後はおなじみサービス起動と自動起動設定
systemctl start mysqld
systemctl enable mysqld
#mysqlの初期セキュリティ設定もついでにやっとく詳しい内容はググった。対話形式の設定なので躓く事はないかと。
mysql_secure_installation
#動作確認(ログインできるか確認する)
mysql -u root -p

mysqlはいったん完了。次PHP

phpのインストール

install_php
#これで一撃だった
dnf install php-cli php-json php-opcache php-xml php-gd php-curl
#phpも自動起動設定
systemctl enable --now php-fpm
#動作確認
vi /usr/share/nginx/html/test.php
#vimで開いたら以下のコードを書く
<?php 
phpinfo(); 
?>

ファイルを保存してブラウザで「http://サーバーのIPアドレス/test.php」を叩いて
phpinfoが表示されればOK。

ファイル削除
#確認が完了したらテストファイルは削除
rm -rf /var/www/html/test.php

phpの拡張機能インストール

CentOS 8でWordPressを実行するために必要なphpの拡張機能のインストールをする。

PHPExtensions
dnf install php-cli php-json php-opcache php-xml php-gd php-cur

ここからwordpress構築に向けてDBをいじる。

DB作成

login_mysql
#rootユーザで乗り込む
mysql -u root -p
#db作成(名前は任意でOK
create database wordpressdb;
#ユーザー作成と権限設定と設定反映
create user wpadmin@localhost identified by 'StrongP@432#';
grant all on wordpressdb.* to wpadmin@localhost;
flush privileges;
quit

wordpressのインストール

install_wordpress
#wordpress日本語版公式サイトからダウンロード
wget https://ja.wordpress.org/latest-ja.tar.gz
#wordpress用のフォルダー作成(フォルダー名は任意)
mkdir /usr/share/nginx/wp.example.com
#解凍
tar xzf wordpress-5.3.2-ja.tar.gz -C /usr/share/nginx/wp.example.com/ --strip-components=1
#設定ファイルをコピー
cp /usr/share/nginx/wp.example.com/wp-config-sample.php /usr/share/nginx/wp.example.com/wp-config.php
#設定ファイルを開く
vi /usr/share/nginx/wp.example.com/wp-config.php
wp-config.php
/** MySQL データベースのユーザー名 */
define( 'DB_USER', 'wpadmin' );

/** MySQL データベースのパスワード */
define( 'DB_PASSWORD', 'StrongP@432#' );

/** MySQL のホスト名 */
define( 'DB_HOST', 'localhost' );

/** データベースのテーブルを作成する際のデータベースの文字セット */
define( 'DB_CHARSET', 'utf8' );

/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define( 'DB_COLLATE', '' );

で、いったん保存。
認証ユニークキーを取得する。

getkey
curl -s https://api.wordpress.org/secret-key/1.1/salt/
define('AUTH_KEY',         'hogehoge');
define('SECURE_AUTH_KEY',  'hogehogehogehoge');
define('LOGGED_IN_KEY',    'hgoehogheohgoehgoehoge');
define('NONCE_KEY',        'hogehoghoehgoehgoehoehgoehoge');
define('AUTH_SALT',        'hogehogehogehogehogehogheogehoge');
define('SECURE_AUTH_SALT', 'hogehogehogheogheohgoehgoehgoehogheogho');
define('LOGGED_IN_SALT',   'hogehogehogheogheohgoehgoehgoehoghe');
define('NONCE_SALT',       'hogehogehogheogheohgoehgoehoge');

帰ってきた内容をwp-config.phpにコピペ
次はnginxの設定ファイル作成。

Nginx設定

nginx_setting
vi /etc/nginx/conf.d/example.conf
example.conf
server {
    listen       80 default_server;
    server_name  example.com;
    root         /usr/share/nginx/example.com;

    access_log /var/log/nginx/access_example.com.log;
    error_log /var/log/nginx/error_example.com.log;

    index   index.php;

    location / {
        try_files    $uri $uri/ /index.php?$args;
    }
    location ~ \.php$ {
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_index index.php;
    }
    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

作り終わったら、ファイル所有者を変更。

chwon
chown -R nginx:nginx /usr/share/nginx/example.com/

Nginxを再起動。

restart
systemctl restart nginx

問題なければサーバーのブラウザのIPアドレスを指定すると
wordpressの初期設定画面が表示されるので、あとは画面の表示に従って設定すればOK。
次はwordpressのセキュリティ周りの設定がないか気になるから調べよ。

今回はここまで。
初めての記事を書いたけど、書きなれてないせいか時間がかかるなぁ。。

参考サイト

https://kifarunix.com/install-lemp-stack-on-centos-8/
https://kifarunix.com/install-wordpress-with-nginx-and-mysql-8-on-centos-8/

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1