Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@tkj

nginxとwordpressの連携

More than 3 years have passed since last update.

やりたいこと

nginxとwordpressを連携させてとりあえずhtml表示させたい。
なるべくデフォルト設定にする。

(以下の手順は後からまとめたので再確認はまだしてない)

インストール

nginxを入れる

$ sudo yum install nginx
$ sudo chkconfig --level 345 nginx on 

documentrootは/var/www/htmlとする。
混乱すると嫌なので、デフォルトのほうは消す

$ sudo rm -rf /usr/share/nginx

以下confの設定。
documentrootを上のパスにする。
あとphp-fpmの設定も追加する。

 diff -u /etc/nginx/conf.d/default.conf.org /etc/nginx/conf.d/default.conf  
--- /etc/nginx/conf.d/default.conf.org  2015-06-17 06:34:15.000000000 +0900
+++ /etc/nginx/conf.d/default.conf  2016-05-15 18:26:16.437516988 +0900
@@ -13,20 +13,20 @@
     include /etc/nginx/default.d/*.conf;

     location / {
-        root   /usr/share/nginx/html;
-        index  index.html index.htm;
+        root   /var/www/html;
+        index  index.php index.html index.htm;
     }

     error_page  404              /404.html;
     location = /404.html {
-        root   /usr/share/nginx/html;
+        root   /var/www/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;
+        root   /var/www/html;
     }

     # proxy the PHP scripts to Apache listening on 127.0.0.1:80
@@ -37,13 +37,13 @@

     # 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           /var/www/html;
+        fastcgi_pass   127.0.0.1:9000;
+        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 root
     # concurs with nginx's one
[root@ik1-303-11969 nginx]# 

上のfastcgi_paramの箇所はちゃんと$document_rootになってることを確認

php-fpmを入れる

$ sudo yum install php-fpm
$ sudo chkconfig --level 345 php-fpm on

confの設定はデフォルトでapacheの箇所をnginxにするだけ。

$ sudo vi /etc/php-fpm.d/www.conf
$ cat /etc/php-fpm.d/www.conf
[www]
listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
user  = nginx
group = nginx
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
slowlog = /var/log/php-fpm/www-slow.log
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session

mysqlを入れる

$ sudo yum install mysql-server
$ sudo /sbin/chkconfig --level 345 mysqld on
$ sudo /etc/init.d/mysqld start
$ sudo mysqladmin -u root password 'パスワード'
$ sudo mysql_secure_installation
      # root ユーザーのパスワードを変更するか?
      Change the root password? [Y/n] n

      # 匿名ユーザーを削除するか?
      Remove anonymous users? [Y/n] Y

      # リモートから root ユーザーのログインを禁止するか?
      Disallow root login remotely? [Y/n] Y

      # test データベースを削除するか?
      Remove test database and access to it? [Y/n] Y

      # 権限テーブルをリロードするか?
      Reload privilege tables now? [Y/n] Y

続けてDBを作成

$ mysql -u root -p
> create database xxxxxxx;

wordpressを入れる

$ tar zxvf wordpress-4.5.2-ja.tar.gz
$ sudo cp -r wordpress/* /var/www/html/
$ sudo chown nginx.nginx -R  /var/www/html/
$ sudo vi /var/www/html/wp-config.php

# DB_NAME, DB_USER, DB_PASSWORDを上で設定した値にする。
# AUTH_KEY~NONCE_SALTのdefineの設定は
# https://api.wordpress.org/secret-key/1.1/salt/
# にアクセスして取得したものを貼る

起動させる。

$ sudo /etc/init.d/php-fpm start
$ sudo /etc/init.d/nginx start

以上でとりあえずwordpressの画面にアクセスできるはず・・。


ちなみにiptablesを設定している場合は注意。
ローカルから9000ポートにアクセスできるようにしておきましょう。

$ sudo iptables -A INPUT -m state --state NEW -m tcp   -p tcp --dport 9000  -j ACCEPT -s 127.0.0.1

[追記]

なぜかテーマと、プラグインのメニューに「新規追加」の項目が出なかった。

db消して、wordpressを置きなおしたら直ったが、直接の原因は恐らく設定ファイルの文字コード
だと思われる。

$ nkf -g  /tmp/wp-config.php.old  ./wp-config.php
/tmp/wp-config.php.old:ASCII (LF)
./wp-config.php:UTF-8 (LF)

wp-config.php.oldが古いほう。

0
Help us understand the problem. What is going on with this article?
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
tkj
現在の仕事→ネットサーファー

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?