裏紙に書く程度の内容

CentOS7 + nginx + wordpress

CentOS7 に php,MariaDB,nginx,wordpressをインストール、初期設定を行うまでのメモです。

phpのインストール

インストール

phpと必要なモジュールをインストールします。

$ sudo yum -y install php-mysql php php-gd php-mbstring php-fpm

php-fpm設定

php-fpmの設定を行います。

$ sudo vi /etc/php-fpm.d/www.conf

# php-fpmのサービス実行ユーザ、グループを指定します。
# デフォルトはapacheになっているのでnginxに変更します。
# [修正前]
# user = apache
# group = apache
# ↓
# [修正後]
user = nginx
group = nginx

php-fpm起動設定

まず、現在の設定を確認しておきます。

$ systemctl list-unit-files | grep php-fpm
php-fpm.service                             disabled

上記のようにdisabledとなっている場合、OSブート時に自動起動しません。これを自動起動するように変更します。

$ sudo systemctl enable php-fpm.service
ln -s '/usr/lib/systemd/system/php-fpm.service' '/etc/systemd/system/multi-user.target.wants/php-fpm.service'

# 再確認
$ systemctl list-unit-files | grep php-fpm
php-fpm.service                             enabled

再確認してenabledになっていればOKです。

また、現在は起動してないので起動しておきます。

$ sudo systemctl start php-fpm.service

# サービスの状態は以下で確認
$ systemctl status php-fpm.service
php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled)
   Active: **active** (running) since 水 2015-01-21 17:07:28 JST; 23s ago
 Main PID: 18961 (php-fpm)
   Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
   CGroup: /system.slice/php-fpm.service
           ├─18961 php-fpm: master process (/etc/php-fpm.conf)
           ├─18963 php-fpm: pool www
           ├─18964 php-fpm: pool www
           ├─18965 php-fpm: pool www
           ├─18966 php-fpm: pool www
           └─18967 php-fpm: pool www

 1月 21 17:07:28 localhost.localdomain systemd[1]: Starting The PHP FastCGI Process Manager...
 1月 21 17:07:28 localhost.localdomain systemd[1]: Started The PHP FastCGI Process Manager.

systemctl status (サービス名) でサービスの状態を確認できます。

何やらいっぱい出てきますが、Active: active と表示されていればサービスは起動しています。

MariaDBインストール

続いて、MariaDBをインストールします。

インストール

$ sudo yum -y install mariadb mariadb-server

# バージョン確認
$ mysql --version
mysql  Ver 15.1 Distrib 5.5.40-MariaDB, for Linux (x86_64) using readline 5.1

起動設定

php-fpmと同じように、サービスが自動起動するように設定しておきます。

# 自動起動設定を確認
$ systemctl list-unit-files | grep mariadb
mariadb.service                             disabled

# 自動起動に設定
$ sudo systemctl enable mariadb.service
ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service

# 再確認
$ systemctl list-unit-files | grep mariadb
mariadb.service                             enabled

# サービスの状態を確認
$ systemctl status mariadb
mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled)
   Active: inactive (dead)

# サービス起動
$ sudo systemctl start mariadb

# 再確認
$ systemctl status mariadb
mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled)
   Active: **active** (running) since 水 2015-01-21 17:18:38 JST; 16s ago
  Process: 19710 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
  Process: 19630 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
 Main PID: 19709 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─19709 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           └─19868 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error...

WordPressで使用するための設定

ルートユーザのパスワードを設定、WordPressで使用するDBの作成、接続ユーザを作成しておきます。

$ mysql -uroot
# rootユーザのパスワードを設定します(やらなくてもOK)
> set password for root@localhost=password('password');
Query OK, 0 rows affected (0.00 sec) 

# wordpress用のDBを作成します。
# ここでは'wordpress'という名前にしました。
> create database wordpress character set utf8;
Query OK, 1 row affected (0.00 sec)

# 作成したDBに接続するユーザを作成します。
# ここでは ユーザ名:'wpuser', パスワード: 'wppassword' としました。
> grant all privileges on wordpress.* to wpuser@localhost identified by 'wppassword';
Query OK, 0 rows affected (0.00 sec)

> flush privileges;
Query OK, 0 rows affected (0.00 sec)

> quit
Bye

Nginxインストール

続いてNginxです。

インストール

$ sudo rpm -ivh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.6.2-1.el7.ngx.x86_64.rpm
$ sudo yum -y install nginx

公式サイトで環境に合ったものを確認してください。

バーチャルホスト設定

デフォルトの設定ファイルを流用してバーチャルホスト作成します。バーチャルホストを使用しない場合はdefault.confを直接編集でも構いません。

# 設定ファイルのコピー
$ sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/wordpress.conf

# 設定ファイルの編集
# サーバ名を変更します。('wordpress.example.com'とした部分)
# ドメインを取得している場合はここにドメイン(サブドメインも)を指定します。
$ sudo vi /etc/nginx/conf.d/wordpress.conf
    listen       80;
    server_name  wordpress.example.com

# ルートディレクトリを指定します。ここでは、/usr/share/nginx/wordpress にしました。
    location / {
        root   /usr/share/nginx/wordpress;
        index  index.html index.htm;
    }

# php が使えるよう、以下のようにします。
    # [修正前]
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}
    #↓
    # [修正後]
    location ~ \.php$ {
        root           /usr/share/nginx/wordpress;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

ルートディレクトリの作成

上記で指定したルートディレクトリを作成しておきます。ついでに確認用ページも作成します。

$ sudo mkdir /usr/share/nginx/wordpress
$ sudo vi /usr/share/nginx/wordpress/index.php
# index.phpの中身は以下のようにしておきます。


設定の確認

nginxの設定を確認します。

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

上記のように表示されればOKです。エラーがある場合は設定ファイルを見直してみてください。

サービス自動起動設定

php-fpm,MariaDBと同じように、サービスを自動起動するように設定します。

# 自動起動設定を確認
$ systemctl list-unit-files | grep nginx
nginx.service                               disabled

# 自動起動に設定
$ sudo systemctl enable nginx.service
ln -s '/usr/lib/systemd/system/nginx.service' '/etc/systemd/system/multi-user.target.wants/nginx.service'

# 再確認
$ systemctl list-unit-files | grep nginx
nginx.service                               enabled

# サービスの状態を確認
$ systemctl status nginx
(省略)

# サービス起動
$ sudo systemctl start nginx

# 再確認
$ systemctl status nginx
(省略)

動作確認

ここまでできたら一旦動作確認しておきます。

ブラウザを開いて
/etc/nginx/conf.d/wordpress.conf
で設定したサーバにアクセスし、phpinfoが表示されればOKです。

phpinfo

エラーになる場合、ログ等を確認してみてください。
nginxのログは
/var/log/nginx/access.log
/var/log/nginx/error.log

に出力されています。

WordPressインストール

続いてWordPressのインストールです。

ダウンロード

wordpressを作業用ディレクトリにダウンロードします。

$ cd (作業用ディレクトリ)
$ wget https://ja.wordpress.org/wordpress-4.1-ja.tar.gz

※最新版はWordPress日本語サイト等で確認してください。

解凍、ファイル移動

ダウンロードしたファイルを解凍し、作成したドキュメントルートへ配置します。また、所有権の変更も行います。

$ tar xvzf wordpress-4.1-ja.tar.gz

# ※mvでディレクトリごと上書きする場合、移動先は空にしておく必要があります。
$ sudo rm -rf /usr/share/nginx/wordpress/*
$ sudo mv wordpress /usr/share/nginx

# 所有権をnginxに変更
$ sudo chown nginx:nginx -R /usr/share/nginx/wordpress

WordPress初期設定

ここまで来たら、ブラウザからWordPressの設定を行います。

/etc/nginx/conf.d/wordpress.conf
で設定したURLにアクセスします。

wptop_mini

“さあ始めましょう”ボタンクリックするとwordpressの初期設定画面が表示されます。


※表示されない場合はSELinuxの状態を確認します。

$ getenforce
Enforcing

Enforcing と表示される場合、SELinuxが有効になっているので無効にします。

$ sudo setenforce 0
$ getenforce
Permissive

Permissive と表示される場合、SELinuxは無効です。


wptop2_mini

各設定値は以下の通り入力します。

データベース名 : 前述MariaDBに作成したwordpress用データベース名

ユーザ名,パスワード : 前述MariaDBに作成したwordpress用ユーザ名,パスワード

データベースのホスト名、テーブル接頭辞はそのままでOK
入力したら送信ボタンをクリックします。

top3_mini

続いて”インストール実行”ボタンをクリックします。

top4_mini

サイトの定義情報を入力します。表示されているとおりですが、後から修正も可能です。

サイトのタイトル: サイトのタイトル
ユーザ名:管理ユーザ
パスワード:管理ユーザのパスワード
メールアドレス:管理ユーザのメールアドレス
プライバシー:
検索エンジンに公開したくない場合はチェックを外してください。
“WordPressをインストール”ボタンをクリックするとインストールが始まります。

top5_mini

上記完了画面が表示されたらインストール完了です。

site1

お疲れ様でした。

広告
Index