コンユウメモ @kon_yu

作ったガラクタとか、旅行とかの話

CentOS 6.4でNginx, php-fpm, MySqlでWordpressをいちから設定する手順

使うのさくらのVPS

ちょっとOSインストールされた状態から設定する機会があったから作業工程をメモ

ユーザの作成から、SSHの設定してwordpress起動まで。MySQLやNginxの調整はしてない。

技術的にすごいことはしてないけど、これ系は忘れがちだし初心者様のお役に立てればと思う。

ちなみにcentOSのバージョン確認はこう

> cat /etc/redhat-release
CentOS release 6.4 (Final)

ユーザ作成

> useradd xxx

ユーザのパスワード作成

wheelグループに追加

> passwd xxx
> usermod -G wheel xxx
# グループに追加されているか確認
> cat /etc/group |grep xxx
#ログアウトしてsshでログインできることを確認

wheelのユーザーだけsuできるようにする

>emacs /etc/pam.d/su
以下を#コメントアウト
auth            required        pam_wheel.so use_uid
↑はいらないかも

> visudo
%wheel ALL=(ALL) ALL // #コメントアウトする

 #sudoが使えるか確認
> su xxx
> sudo ls /
 #パーミッションエラーが出なければOK

sshでrootのログインを禁止

> emacs /etc/ssh/sshd_config

 PermitRootLogin no // #を削除してコメントアウトし、yes -> noに変更

sshd を再起動

> /etc/init.d/sshd restart
# ログアウトしてrootでログイン出来ないことを確認

nginx インストール

> yum install nginx

php インストール

> yum install php
# versionの確認
>php -v
PHP 5.3.3  (cli) (built: Jul 12 2013 20:35:47)
# php-fpmで動くバージョンであることを確認http://php-fpm.org/download/

ほかに何かいるかも

php-fpm インストール

> yum install php-fpm

#yum list |grep php-fpmであったので
--enablerepo=remi オプションを付けてインストールする必要はもうない

mysql インストール

> yum install mysql-server

phpMyAdmin インストール

yum install phpmyadmin

php-fpm 設定をnginxにする

/etc/php-fpm.d/www.conf

; RPM: apache Choosed to be able to access some dir as httpd
user = nginx # apacheから書き換える
; RPM: Keep a group allowed to write in log dir.
group = nginx # apacheから書き換える

wordpressをダウンロードする

wordpress http://ja.wordpress.org/ の公式サイトの右サイドに有る から

.tar.gz 形式をダウンロード — 5.7 MB のリンクのURLをコピーしてDLする

# wordpressのファイルをダウンロード
> wget http://ja.wordpress.org/wordpress-3.6.1-ja.tar.gz
# 解凍
> tar xzf wordpress-3.6.1-ja.tar.gz
# nginxのドキュメントルート/var/www へ移動
> mv wordpress /var/www
# ドキュメントルートへ移動
> cd /var/www
# 権限を変更する
> chown -R nginx.nginx wordpress

nginxの設定をする

#設定ファイルをバックアップする
> cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.back
#設定ファイル編集
> emacs /etc/nginx/conf.d/default.conf

#ドキュメントルートの設定
    location / {
        root   /var/www/wordpress;
        index  index.php;

        if (!-e $request_filename) {
            rewrite ^/(.+)#  /index.php?q=$1 last;
            break;
        }
    }

#php-fpmの設定 default.confの下の方にあるのでコメントアウトおよび、修正をする
    location ~ \.php$ {
    #    root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
    #   fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        fastcgi_param   SCRIPT_FILENAME  /var/www/wordpress$fastcgi_script_name; #追加 wordpressをおいているパスを示す
        include        fastcgi_params;
    }

php-fpmを起動、nginxを起動する。

> /etc/rc.d/init.d/php-fpm start
> /etc/init.d/nginx restart


# phpが動くかどうか確認する
> echo '<?php echo phpinfo(); ?>' > test.php

#ブラウザから domainname/test.phpにアクセスしてphpのいつものVersion名などが表示されればOK

# nginxで実行できるようにする(これいる気がする)
> sudo  chown -R nginx.nginx /usr/share/phpMyAdmin
> 
> cp  /etc/nginx/conf.d/virtual.conf /etc/nginx/conf.d/virtual.conf.back
> emacs /etc/nginx/conf.d/virtual.conf
server {
    listen      80;
    server_name phpmyadmin.domain.com;
    access_log  /var/log/phpmyadmin.access_log;
    error_log   /var/log/phpmyadmin.error_log;

    location / {
        root /usr/share/phpMyAdmin;
        index index.php;
    }

   location ~ \.php# {
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME /usr/share/phpMyAdmin$fastcgi_script_name;
        include         /etc/nginx/fastcgi_params;
    }
}

session を使うための設定

PHPでsessionを使うために、session ディレクトリのオーナーを nginxに変更

# chown -R nginx.nginx /var/lib/php/session/

mysql設定

# 基本聞かれたことに答えていけばOK<http://lightly.wjg.jp/wiki/858> 

> /usr/bin/mysql_secure_installation
# wordpress 向けのテーブル作成
> mysql -u root -p
mysql> CREATE DATABASE wp;
mysql> GRANT ALL PRIVILEGES ON wp.* TO wp@localhost IDENTIFIED BY "password";

自動起動設定

>  chkconfig nginx on
>  chkconfig php-fpm on
>  chkconfig mysqld on

wordpressブラウザ設定

ブラウザでドキュメントルートにアクセスする

先ほど作ったユーザ名: wp、パスワード、ホスト名を入力し、データベース名: wp、テーブルはデフォルト

nextgen-galleryのインストール

2013年10月5日現在 nextgen-gallery2系は問題があるようなので,1.9系の最新版を入れる 右記のアドレスから1.9系からDLするhttps://bitbucket.org/photocrati/nextgen-gallery/downloads

手動でインストールする

  • 管理ページ/wp-admin/ プラグイン->新規追加 画面
  • アップロードを選択、先ほどDLしたプラグインファルを選択肢、今すぐインストール ボタンを押す
  • しばらくしたら、画面が変わるので、「プラグインの有効化」ボタンを押す

PHPでアップロードできる最大サイズを上げたデフォだと2M phpとnginxの設定を変える必要がある

phpの設定変更 php.iniの場合

> emacs /etc/php.ini
post_max_size = 100M #ポストできる最大サイズ
upload_max_filesize = 100M #1ファイルあたりの最大ファイルサイズ最大サイズ 

> emacs /etc/nginx/conf.d/default.conf
server {
    listen       80 default_server;
    client_max_body_size 100M; #追加
# php-fpm再起動
> /etc/init.d/php-fpm restart
# nginxも再起動
> /etc/init.d/nginx restart

おまけ

ユーザのホームディレクトリを変更する

ユーザ作成時に -d オプションでホームディレクトリを指定しておまけに名前を間違えたため変更する必要があった。変更するユーザにログインしていると変更できないので一旦ログアウトする必要あり。

> usermod -d /home/xxx2 xxx
> mv /home/xxx2 /home/xxx #.bashrcとかを引き継いであげる