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の設定を変える必要がある
> 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とかを引き継いであげる