【3】WordPressをubuntu(VPS/VMware)でnginx+php5-fpmで構築してみた!
2014 March 10
WordPressをubuntu(VPS/VMware)でnginx+php5-fpmで構築してみました!の手順まとめ。
第3回はUbuntu Serverの初期設定(nginxのインストール〜wordpressインストールまで)。
目次【1】VMware、Ubuntuのダウンロード〜VMware設定
- #1:VMwareをダウンロード
- #2:ubuntuのダウンロード
- #3:VMwareに仮想マシンを作成
- #4:ubuntuの設定
- ・SSHサーバインストール
- ・ソフトウェア(パッケージ)一覧情報の更新。
- ・ubuntuのIPをチェック
目次【2】Ubuntu Serverの初期設定
- #1:MacのターミナルからSSH接続
- #2:vimをインストール
- #3:ubuntuの日本語設定
- ・※デフォルト言語を英語に戻すとき
- #4:タイムゾーンの確認、設定
- #5:sshサーバの設定
- ・ubuntuホームディレクトリにsshディレクトリを作成
- ・authorized_keysの設定
- ・パーミッションを変更
- ・SSHのポート等を変更
- #6:ufwでファイアウォールを設定
- ・ufwのインストール
- ・ufwのステータスを確認
- ・ufwの設定
目次【3】Ubuntu Serverの初期設定(nginxのインストール〜wordpressインストールまで)☆いまここ!
- #1:nginxをインストール
- #2:phpの設定
- ・php-fpmのバックアップ、修正
- ・.iniの編集
- ・nginxを再起動
- #3:mysqlの設定
- ・データベース、ステータスの確認
- ・my.cnfの設定
- ・データベースを作成
- #4:サーバ内にサイトのディレクトリを作成
- #5:nginxのバーチャルホスト設定
- ・シンボリックリンクをはる
- #6:nginxの状況確認、モジュールのインストール
- ・wget、unzip、zipをインストール
- #7:wordpressをダウンロード
- ・woerpressをコピー
- #8:グループ権限、ユーザー権限の設定
- ・devというグループを作成
- ・パーミッションを変更
- #9:データベースの情報を入力
- #10:Hostsの設定
- #11:ブラウザからアクセスしてwordpressをインストール
- #12:オリジナルテーマを作成するための下準備
#01:nginxをインストール
WEBサーバ(nginx)をインストールします。
1 2 3 4 | # nginxをインストール $ sudo aptitude install nginx # 確認 $ nginx -v |
#02:phpの設定
wordpressを動かすためにphpをインストールします。
1 2 3 4 5 | # php5とモジュールをインストール $ sudo aptitude install php5 php5-cgi php5-cli php5-mysql php5-gd php-apc php5-fpm php5-curl php5-json php5-dev # 確認 $ php -v |
▼php-fpmのバックアップ、修正
NginxでPHPを使う場合、別プロセスで動くPHPとFastCGIでのソケット経由でやり取りを行います。これを管理するモジュールの一つ、php-fpmを使用します。
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 | # php-fpmのバックアップ $ sudo cp /etc/php5/fpm/php-fpm.conf /etc/php5/fpm/php-fpm.conf.org # エラーログの場所修正 $ sudo vim /etc/php5/fpm/php-fpm.conf 修正前: error_log = log/php-fpm.log 修正後: error_log = /var/log/php5-fpm.log # ※linuxでは指定する 修正前: ; events.mechanism = epoll 修正後: events.mechanism = epoll # www.confのバックアップ $ sudo cp /etc/php5/fpm/pool.d/www.conf /etc/php5/fpm/pool.d/www.conf.org $ sudo vim /etc/php5/fpm/pool.d/www.conf 修正前: ;listen = 127.0.0.1:9000 修正後: listen = /var/run/php5-fpm.sock |
▼.iniの編集
php.iniとは、PHPの全体的な動作や環境を設定するファイル。今回はタイムゾーンを編集します。
1 2 3 4 | # .iniの編集 $ sudo cp /etc/php5/fpm/php.ini /etc/php5/fpm/php.ini.org $ sudo vim /etc/php5/fpm/php.ini date.timezone = "Asia/Tokyo" |
▼phpを再起動
1 | $ sudo service php5-fpm restart |
#03:mysqlの設定
1 2 | # mysqlのダウンロード $ sudo aptitude install mysql-server mysql-client |
mysqlのパスワード作成の画面になるので入力。
▼データベース、ステータスの確認
1 2 3 4 5 6 | #mysqlに入ります $ mysql -u root -p -- mysql> SHOW DATABASES; mysql> STATUS; mysql> exit |
▼my.cnfの設定
設定ファイルmy.confの設定をします。
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 | # my.confをコピー $ sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.org # my.confを編集 $ sudo vim /etc/mysql/my.cnf -- [client] # 以下の1行を[client]以下に追加 default-character-set=utf8 [mysqld] # 以下の4行を[mysqld]以下に追加 skip-character-set-client-handshake character-set-server = utf8 collation-server = utf8_general_ci init-connect = SET NAMES utf8 -- $ sudo service mysql restart |
▼データベースを作成
【新しくドメインを追加する場合ここから同様】
01 02 03 04 05 06 07 08 09 10 11 12 | #mysqlに入ります $ mysql -u root -p #ステータスを確認 mysql> STATUS; #データベースを作成(データベース名はドメインやサイト名などわかりやすい名前で作成!) mysql> CREATE DATABASE `hoge.com`; # データベースが作成できているか確認 mysql> SHOW DATABASES; mysql> exit |
#04:サーバ内にサイトのディレクトリを作成
/var/www/以下にサイトのディレクトリを作成します。
1 | $ sudo mkdir -p /var/www/hoge.com/ |
#05:nginxのバーチャルホスト設定
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #sites-available/defaultをコピーしておきます。 $ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.org $ sudo rm /etc/nginx/sites-available/default $ sudo rm /etc/nginx/sites-enabled/default # sites-availble/hoge.com.confを作成 $ sudo vim /etc/nginx/sites-available/hoge.com.conf # ※vimでペーストする場合は「:set paste」でペーストモードにしてからinsert 以下をコピーしてhoge.com.confにそのペースト -- # # A virtual host using mix of IP-, name-, and port-based configuration # server { listen 80; server_name hoge.com; root /var/www/hoge.com/; index index.html index.php; access_log /var/log/nginx/hoge.com.access.log; error_log /var/log/nginx/hoge.com.error.log; location / { index index.php index.html index.htm; try_files $uri $uri/ /index.php?$uri&$args; } location ~ \.php$ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } -- ここまで 上記の「hoge.com」をサイトのドメインに書き換えます。(:%s/hoge.com/自分のドメイン名/g) |
書き換えできたら「:wq」で保存。
▼シンボリックリンクをはる
1 | $ sudo ln -s /etc/nginx/sites-available/hoge.com.conf /etc/nginx/sites-enabled/ |
#06:nginxの状況確認、モジュールのインストール
1 2 | $ sudo nginx -t $ sudo service nginx restart |
▼wget、unzip、zipをインストール
1 2 3 | $ sudo aptitude install wget $ sudo aptitude install unzip $ sudo aptitude install zip |
#07:wordpressをダウンロード
var/tmpフォルダにwordpressをwebサイトからダウンロードします。サイトから最新版のリンクをコピーしてきます。
http://ja.wordpress.org/
1 2 3 |
▼wordpressをコピー
unzipしたwordpressをコピーします。
1 2 | $ cd wordpress/ $ sudo cp -rp * /var/www/hoge.com |
-rp = フォルダやファイルのパーミッションなどを保持したままコピー
* = ディレクトリ以下全て
#08:グループ権限、ユーザー権限の設定
devというグループを作成
ubuntuのホームディレクトリに戻ってdevというグループを作成。
1 2 3 4 5 6 | $ cd #devというグループを作成 $ sudo groupadd dev # ルートディレクトリ以下をwww-dataユーザー権限、devグループ権限に全て変更する $ sudo chown -R www-data:dev /var/www/hoge.com(サイトドメイン)/ |
主要なユーザーのサブグループにdevを追加する
1 2 3 4 5 | $ sudo usermod -a -G dev www-data $ sudo usermod -a -G dev kawatama(※pcのユーザー名) # 確認 $ id kawatama |
▼パーミッションを変更
01 02 03 04 05 06 07 08 09 10 11 | # ubuntuに、さらにrootでログイン $ sudo su - # ドメイン以下へ移動 root@ubuntu:~# cd /var/www/hoge.com/ # パーミッションを変更 root@ubuntu:# find . -type f -print | xargs chmod 664 # ディレクトリのみ権限を2775(sgid)に変更する root@ubuntu:# find . -type d -print | xargs chmod 2775 root@ubuntu:# exit |
※パーミッション2775(sgid)は、ディレクトリ作成時にその親のディレクトリの所有グループと同じにする。つまり全てdevディレクトリの下に生成されるディレクトリの所有グループはdevになり、グループ内権限を統一することができる。
※もしパーミッションエラーがでたら、bashログイン・ログアウトする
ふぅ〜。ここまできたらあとちょっと!!
#09:データベースの情報を入力
wp-config.phpにデータベースを入力
1 2 3 | # wp-config-sample.phpをコピー(wp-config.php) $ cp /var/www/hoge.com/wp-config-sample.php /var/www/hoge.com/wp-config.php $ vim /var/www/hoge.com/wp-config.php |
データベースの情報を入力する(3箇所)
1 2 3 4 5 6 7 8 | /** WordPress のためのデータベース名 */ define('DB_NAME', 'database_name_here(ここにmysqlで設定したデータベース名)'); /** MySQL データベースのユーザー名 */ define('DB_USER', 'username_here(ここはroot)'); /** MySQL データベースのパスワード */ define('DB_PASSWORD', 'password_here(mysqlのパスワード)'); |
#10:Hostsの設定
DNSの設定前や、ローカルの場合はHostsを書くことで、設定したパソコンからサイトが見れるようになります。
macでhosts設定手順は別記事でまとめています。
#11:ブラウザからアクセスしてwordpressをインストール
ブラウザからhoge.comにアクセスします。すると、
hoge.com/wp-admin/install.php
ここにサイトタイトル/ユーザー名/パスワード/メールアドレスを入力して「インストール」で完了!
できたー!!^O^
#12:最後に、オリジナルテーマを作成するための下準備
オリジナルテーマを作成する際に必須となる2つのファイルを準備しておきましょう。
これは後から作成してもいいですし、オリジナルテーマが必要ない場合はしなくていいです。
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 | # テーマディレクトリ(テーマ名) $ mkdir -p /var/www/hoge.com/wp-content/themes/hoge.com/ # index.php $ vim /var/www/hoge.com/wp-content/themes/hoge.com/index.php :wq # style.css $ vim /var/www/hoge.com/wp-content/themes/hoge.com/style.css -- /* Theme Name: hoge Theme URI: http://hoge.com/ Description: http://hoge.com/ Version: 1.0 Author: hoge.com Author URI: http://hoge.com/ */ -- :wq |
今回はローカルサーバーで構築しましたが、本番サーバーでも手順は同じです。
慣れたら1時間かからないくらいで構築できますが、何度やってもやっぱりどこかミスしがち。。
次はAWSを使ってみようと目論見中なので、そちらもまた記事にします^O^
→記事書きました!2014.3.20
>AMIMOTO AMI.を使ってAWSでwordpressを構築してみた
☆追記☆
実際にこの記事でサーバー構築〜wordpressインストールまでやってみていただきました!^O^
それによって説明不足だった箇所や気づいたことなど、少し追記しました!