Help us understand the problem. What is going on with this article?

nginxでwordpressを動かすには

More than 5 years have passed since last update.

ちょいとサーバにwordpressを入れてみようかと思ったので、そこでの備忘録として書きます。

まあ、言いたい事はphp-fpm忘れんなよの一言ですが・・・
apacheを使えば無問題なんですが・・・

目次

  • 環境説明
  • ミドルウェアインストール
  • wordpressインストール
  • 各種設定
  • サービス起動
  • 次の目的+参考資料

環境説明

awsにてCentOS 6.5を使っています。

sudo 書くの面倒くさいんで、全てのコマンドはroot権限で実行している想定です。rootへのsu権限もらってない人は、随時sudoつけてやってください。

あと、【】で囲いをつけたところは、各自で適当に置き換えてください。
間違ってもそのまま使わないでくださいね。

ミドルウェアインストール

sedでのレポジトリの設定ファイルの編集は、飛ばしてもらっても構いません。
yumを使う際に、最低限のレポジトリへのアクセスにするためのものです。

nginxをインストールします。

nginxのレポジトリはインストールしたままだと “Stable version” であり、ミッションクリティカルな用途で用いるのでなければ “Mainline version” を用いても問題ないので、それについての手順も含めています。

# yum install http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
# sed -i "s/enabled=1/enabled=0/g" /etc/yum.repos.d/nginx.repo
# sed -i "s/nginx.org\/packages\/centos/nginx.org\/packages\/mainline\/centos/" /etc/yum.repos.d/nginx.repo
# yum install nginx --enablerepo=nginx

mysql をインストールします。

今回はver5.6を用います。

# yum install http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
# sed -i "s/enabled=1/enabled=0/g" /etc/yum.repos.d/mysql-community.repo
# yum -y install mysql-community-server --enablerepo=mysql56-community

phpをインストールします。

今回はver5.6を用います。
mysqlと合わせているわけではありませんので、必要があればバージョンアップしても問題ありません。

# yum install http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# yum install php --enablerepo=remi-php56

php のバージョンの確認します。

# php -v

5.6になっているか確認しましょう。

php-fpmをインストールします。

今回、php5.6を用いているためphp56のレポジトリからインストールします。

# yum install php-fpm --enablerepo=remi-php56

wordpressインストール

今回はver 4.3.1を用います。
特に理由が無ければ、”4.3.1” の部分を “latest”に変更して最新をインストールしても大丈夫だと思います。

自分がやったのは以下の通りです。

# cd /usr/local/src/
# wget https://ja.wordpress.org/wordpress-4.3.1-ja.tar.gz
# tar zxvf wordpress-4.3.1-ja.tar.gz

最新版をインストールする場合は以下を使ってください。

# cd /usr/local/src/
# wget https://ja.wordpress.org/wordpress-latest-ja.tar.gz
# tar zxvf wordpress-【インストールしたバージョン】-ja.tar.gz

wordpressのディレクトリを適当な所に移動させます。

# mv wordpress /var/www/

各種設定

mysqlにwordpress用のデータベースを作成します。

まずは起動します。すでに起動している場合はスキップしてください

# service mysqld start

次に、mysqlの初期設定を行います。こちらも、すでに実行済みの方はスキップしてください。
対話式でコマンドライン上に質問が出てくるので、下記のように対応してください。
また、mysqlのrootユーザのパスワードを決めておいてください。

# mysql_secure_installation

Enter current password for root (enter for none): 【ENTERキーを入力】

Set root password? [Y/n] Y
New password:【mysqlのrootユーザのパスワード】
Re-enter new password:【mysqlのrootユーザのパスワード】

Remove anonymous users? [Y/n] Y

Disallow root login remotely? [Y/n] Y 

Remove test database and access to it? [Y/n] Y

Reload privilege tables now? [Y/n] Y

次に、データベースを作成します。
ここでは、wordpressのシステムがmysqlにアクセスする用のデータベースとユーザを作成するため、パスワードを決めておいてください。

# mysql -uroot -p
Enter password: 【mysqlのrootユーザのパスワード】

mysql> create database wp;

mysql> grant all privileges on wp.* to wp@localhost identified by '【mysqlのwpユーザのパスワード】';

mysql> FLUSH PRIVILEGES;

nginxの設定ファイルを編集します。

/wp-config.php はmysqlのパスワードがべた書きされているので、ちゃんと見えなくなるようにしましょう。
http タグ内に下記を記述してください。

    server {
        listen 80;
        server_name 【あなたのサーバのホスト名】;
        index index.php ;
        root /var/www/wordpress ;
        location ~* /wp-config.php {
             deny all;
        }
        location ~ \.php$ {
             root           /var/www/wordpress ;
             fastcgi_pass   127.0.0.1:9000;
             fastcgi_index  index.php;
             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
             include        fastcgi_params;
        }
    }

編集後は文法チェックを忘れずに。

# service nginx configtest

以下のような出力が出ればOKです。

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful`

php-fpmの設定をします。

設定と言ってもphp-fpmのユーザとグループをnginxに変えるだけです。

# sed -i "s/user = apache/user = nginx/" /etc/php-fpm.d/www.conf
# sed -i "s/group = apache/group = nginx/" /etc/php-fpm.d/www.conf

php-fpmも文法チェックをしましょう。

# service php-fpm configtest

wordpressの設定を変更します。

下記のような記述があるので、それぞれ書き換えていってください。

/var/www/wordpress/wp-config.php
/** WordPress のためのデータベース名 */
define('DB_NAME', 'wp');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'wp');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', '【mysqlのwpユーザのパスワード】');

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

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

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

認証用ユニークキーの部分は、公式がよいサービスを提供してくれているので、下記を削除してそのまま利用しましょう。
https://api.wordpress.org/secret-key/1.1/salt/

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');

サービス起動

mysqlは設定時に起動しましたので、nginxとphp-fpmを起動させましょう。

# service nginx start
# service php-fpm start

サーバ再起動時の自動起動設定もしましょう。

# chkconfig mysqld on
# chkconfig nginx on
# chkconfig php-fpm on

あとは、ブラウザからの作業になります。
それは、以下を参照してください。(手抜き)
http://webkaru.net/linux/wordpress-install-centos/

次の目的+参考資料

次の目的

wordpressでbootstrapが使えるようにしたいので、それが出来るようなテーマでも作成しようかなと。
とは言え、公式のテーマのページがあるので、そこを見て自分が欲しいものが無かったらやろうかと思います。

参照サイト

http://qiita.com/utano320/items/36b6eac2bbd5bb5657f6
http://qiita.com/MiyaseTakurou/items/923c28f7ac60b2ce761a
http://qiita.com/utano320/items/36b6eac2bbd5bb5657f6
http://www.atmarkit.co.jp/ait/articles/1407/24/news003.html

fk1
よろしく私です。 インフラ屋肆年目です。 現場ではansibleを用いたIaCとかをやったりやってなかったり。 mysqlやらnginxをがつがつ触ってます。よく分からないミドルもぜんぜんやります。 主に高負荷で長期な案件をやっています。 負荷試験とか障害対応も楽しくやらしてもらってます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away