nginx和WordPress的集成

我想做的事情

我想要通过将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

继续创建数据库。

$ 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是旧版本。

广告
将在 10 秒后关闭
bannerAds