nginx + php + mariadb でwordpressを構築

スポンサーリンク

構築の前に

今回は、nginx + php + mariadb でwordpressを構築します。
なぜ、nginxかというと…. 爆速だからです。
個人的に、この構成が一番パフォーマンスがいいと思っています。
apacheは、基本的に1リクエスト1プロセスに対して、nginxは、複数リクエストをワーカープロセス


長くなるので、今度にしましょう!

環境とミドルウェアのバージョン

KVM上の仮想ホストに構築します。

  • CentOS7.4
  • nginx 1.13.9
  • php 7.1
  • mariadb 10.2
  • wordpress 4.9.4

WordPressの構築

初期設定

  • パッケージのアップデート
# yum -y update
  • wgetのインストール
# yum -y install wget
  • firewallの設定
# firewall-cmd --add-service=http --zone=public --permanent
# firewall-cmd --reload
  • SElinuxを無効化
# vi /etc/sysconfig/selinux
SELINUX=disabled → 変更

nginxのインストールと設定

  • リポジトリの登録
# vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
  • インストール
# yum -y install nginx
  • 設定ファイルの編集
# vi /etc/nginx/conf.d/default.conf
server{
    listen       80;
    server_name  localhost;

    root  /usr/share/nginx/html;
    index  index.php index.html;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }    

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ .php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ .php$ {                  #この行から下のコメントアウトを外してください。
        root    /usr/share/nginx/html;
        fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock; → 変更 
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name; → 変更
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document ooot
    # concurs with nginx's one
    #
    #location ~ /.ht {
    #    deny  all;
    #}
}
  • サービスの自動起動を有効化
# systemctl enable nginx

phpのインストール

  • リポジトリの登録
# yum -y install epel-release
# yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
  • インストール
# yum install --enablerepo=remi-php71 php php-mbstring php-pear php-fpm php-mcrypt php-devel php-xml php-pdo php-mysqlnd php-pecl-mysql
  • php-fpmの設定
# vi /etc/php-fpm.d/www.conf
user = nginx → 変更
group = nginx → 変更
listen = /var/run/php-fpm/php-fpm.sock → 変更
listen.owner = nginx → 変更
listen.group = nginx → 変更
listen.mode = 0660 → 変更

mariadb 10.2のインストールと設定

  • リポジトリの登録
vi /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB 
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
  • インストール
# yum -y install MariaDB-devel MariaDB-client MariaDB-server
  • mariadbの起動と自動起動の有効化
# systemctl restart mariadb
# systemctl enable mariadb
  • データベースとユーザの作成
# mysql -u root -p
Enter password:  → 空エンター
MariaDB [(none)]> create database wordpress;
MariaDB [(none)]> grant all privileges on wordpress.* to ユーザ名@localhost identified by 'ユーザのpassword';
MariaDB [(none)]> exit

wordpressのインストール

  • wordpressをダウンロード
# wget https://ja.wordpress.org/latest-ja.tar.gz
  • 解凍と展開をする
# tar zxf latest-ja.tar.gz
  • 所有者の変更
# chown -P nginx:nginx wordpress
  • 移動させる
mv wordpress /usr/share/nginx/html → nginxのドキュメントルート指定
  • 設定ファイルをコピー
# cp /usr/share/nginx/html/wordpress/wp-config-sample.php /usr/share/nginx/html/wordpress/wp-config.php
  • wp-config.phpの編集
# vi /usr/share/nginx/html/wordpress/wp-config.php
define('DB_NAME', 'wordpress'); → 作成したDB名

/** MySQL データベースのユーザー名 */
define('DB_USER', 'ユーザ名'); → 作成したユーザ名

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'password'); → 作成したユーザのパスワード

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

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

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

続き

define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

秘密鍵自動生成
上記のリンクで自動的に作成してくれますので、コピペしましょう。

各サービスを再起動させる

systemctl restart nginx
systemctl restart php-fpm
systemctl restart mariadb

WebブラウザからWordpressの初期設定

  • http://ホストのIPアドレス/wordpress/にアクセスする

wordpress-setup

  • 各項目を入力し「インストール」をクリックする

以上でセットアップは終了です!

最後に

今回は、Wordpressを構築するまでを行いました。これだけでもリクエストに対するレスポンスは早いですが、nginx,php,mariadbのチューニングをすることで、もっとレスポンスを上げることができます。
ですので、次は、チューニングを取り上げたいと思います。
https化をしたい方は、こちらをご覧ください。

コメント

タイトルとURLをコピーしました