FreeBSD10.1サーバーにNginxを使用してWordPressをインストールする方法
序章
WordPressは、世界で最も人気のあるコンテンツ管理システム(CMS)およびブログプラットフォームです。 WordPressを使用すると、Webサイトをすばやく構成およびカスタマイズできるため、コンテンツを追加したり、視覚要素を簡単に調整したりできます。
このガイドでは、コンテンツを提供するためにNginxを使用してFreeBSD10.1マシンにWordPressをインストールします。 Nginxは、多数の同時接続を効率的に処理する強力なWebサーバーです。 これを、このガイドで設定するWordPressインストールのベースとして活用します。
前提条件と目標
このガイドを完了するために、サーバーを準備するために実行する必要のあるいくつかの準備手順があります。
このガイドのコンポーネントを、構成済みのFEMP(FreeBSD、Nginx、MySQL、およびPHP)スタックに追加します。 FreeBSD 10.1サーバーでNginx、MySQL、およびPHPをセットアップする方法については、ガイドこちらをご覧ください。
Nginx、MySQL、およびPHPをサーバーにインストールして構成したら、このガイドを続けることができます。 このガイドの目標は、FreeBSDサーバーに最新バージョンのWordPressをインストールすることです。
FreeBSDのpkg
コマンドを介してインストール可能な既存のWordPressパッケージがありますが、現在はPHPバージョン5.4に依存しており、今後はセキュリティアップデートのみを受信します。 その完全な寿命は2015年9月になります。
私たちのサイトが長期間サポートを受けるベースで構築されることを保証するために、プロジェクトのサイトから最新バージョンのWordPressをダウンロードしてインストールし、PHPバージョン5.6を使用して動的コンテンツを処理します。
WordPressに必要な追加のPHP拡張機能をインストールする
FEMPガイドでFreeBSDサーバーにPHPをセットアップするときに、php56
パッケージとphp56-mysql
パッケージをインストールして、PHPインスタンスが必要に応じてMySQLデータベースからデータをクエリできるようにしました。
これは、PHPをさまざまな異なるアプリケーションのベースとして使用できるようにするために必要な最小限の構成を表しています。 WordPressはphp56-mysql
パッケージを使用しますが、コア機能の多くを実装するためにいくつかの追加の拡張機能も必要です。
幸い、これらはpkg
コマンドを使用して簡単にインストールできます。 次のように入力して、必要な拡張機能をダウンロードしてインストールします。
sudo pkg install php56-xml php56-hash php56-gd php56-curl php56-tokenizer php56-zlib php56-zip
インストールの完了後、デフォルトのtcsh
シェルを使用している場合は、シェルが新しいファイルを見つけられるように再ハッシュを開始します。
rehash
インストールしたパッケージはすべてPHP拡張機能です。 PHP-FPMインスタンスでこれらの新しい拡張機能を使用するには、プロセスを再起動する必要があります。
sudo service php-fpm restart
これが完了したら、データベースの構成を開始できます。
MySQLデータベースの作成と構成
WordPressには、サイトのコンテンツとユーザーデータを保存するためにSQLスタイルのデータベースが必要です。 以前のガイドでMySQLをインストールしたので、そのようなデータベースを作成してアクセスを提供するために必要なツールがあります。
まず、mysql
コマンドを使用して、データベースシステムに対して管理ユーザーとして認証する必要があります。
mysql -u root -p
前のガイドで構成したMySQLrootユーザーのパスワードの入力を求められます(mysql_secure_installation
スクリプトの実行中)。 正しいパスワードを入力すると、MySQLプロンプトが表示されます。
最初に行うことは、WordPressインスタンスのデータベースを作成することです。 これは好きなように呼び出すことができますが、セマンティックで覚えやすいため、このガイドではデータベース名wordpress
を使用します。
CREATE DATABASE wordpress;
上記のコマンドで問題が発生した場合は、ステートメントの最後にセミコロン(;)が付いていることを確認してください。 SQLクエリ言語では、すべてのステートメントがセミコロンで終わる必要があります。
データベースを作成したら、次のステップは、データベースへのアクセスに使用する専用ユーザーを作成することです。 MySQL内にデータを格納するアプリケーションごとに個別のMySQLユーザーを作成して利用することをお勧めします。 これにより、セキュリティ問題の範囲を最小限に抑えることができます。
このガイドでは、新しいユーザーwordpressuser
を呼び出し、サーバー自体から発信された接続に対してのみ有効になるようにアクセス制限を構成します。 また、ユーザーのパスワードを設定します。
CREATE USER wordpressuser@localhost IDENTIFIED BY 'password';
上記のコマンドのpassword
コンポーネントを安全なパスワードに変更することを忘れないでください。 この値は後で覚えておく必要があります。
これで、WordPressのインストールに必要な2つのMySQLコンポーネントが作成されました。 ただし、それらはまだ接続されていません。 新しいユーザーにWordPressデータベースへのアクセスを許可して、サイトのデータを設定および管理できるようにする必要があります。 これを行うには、次のように入力します。
GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost;
これで、新しいユーザーは、構成したデータベースにアクセスできます。 現在実行中のMySQLのインスタンスにこれらの新しい変更を知らせるには、特権テーブルをフラッシュする必要があります。
FLUSH PRIVILEGES;
最後に、次のように入力して、MySQLプロンプトを終了し、通常のシェル環境に戻ることができます。
exit
データベースとユーザーの準備ができたので、実際のWordPressファイルをダウンロードして構成できます。
WordPressをダウンロードして構成する
インストールに使用するために、プロジェクトのWebサイトから最新バージョンのWordPressをダウンロードします。 セキュリティアップデートの可能性があるため、常に最新バージョンのWordPressを使用することが非常に重要です。
WordPressチームは、常に最新バージョンをサイトの/latest.tar.gz
のアーカイブにパッケージ化することで、これを簡単にしています。 FreeBSD fetch
ユーティリティを使用して、これをホームディレクトリにダウンロードできます。
cd ~
fetch http://wordpress.org/latest.tar.gz
ファイルがダウンロードされたら、tar
コマンドを使用してWordPressファイルとディレクトリ構造を抽出できます。
tar xzvf latest.tar.gz
作成されるディレクトリはwordpress
と呼ばれます。 .tar.gz
アーカイブを削除してから、そのディレクトリに移動して、構成を開始できるようにします。
rm latest.tar.gz
cd wordpress
内部には、インストールのテンプレートとして使用できるサンプル構成ファイルがあります。 WordPressによって読み取られるwp-config.php
ファイル名にファイルをコピーします。
cp wp-config-sample.php wp-config.php
これで、編集用にファイルを開いて、前のセクションで設定したMySQLデータベースとユーザーのアクセス資格情報を構成できるようになりました。
vi wp-config.php
内部には、WordPressがMySQLシステムに正しく接続して利用するために変更する必要のある3つの値があります。 DB_NAME
変数は、作成したMySQLデータベースの名前を定義し、DB_USER
は作成したユーザーに設定し、DB_PASSWORD
はユーザーのパスワードを含むように変更する必要がありますそのユーザー用に選択:
. . .
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');
/** MySQL database username */
define('DB_USER', 'wordpressuser');
/** MySQL database password */
define('DB_PASSWORD', 'password');
. . .
これらの値の変更が終了したら、ファイルを保存して閉じます。
次に、WordPressのインストールを/usr/local/www
ディレクトリにコピーして、さまざまなサイトファイルを保存します。 rsync
ユーティリティを使用します。これにより、移動中に特定のファイル属性を維持できます。
sudo rsync -avP ~/wordpress /usr/local/www
次に、WordPressファイルの所有者を調整して、Webサーバーが適切な場所で変更を行えるようにする必要があります。 私たちのWebユーザーとグループはどちらもwww
と呼ばれています。
sudo chown -R www:www /usr/local/www/wordpress
WordPressファイルが正しい構成で配置されたので、Nginx構成を変更できます。
Nginxを構成する
前回のガイドでは、デフォルトのNginx Webページを提供するようにNginxを設定し、PHPリクエストをPHP-FPMインスタンスに渡すように構成しました。 これにより、WordPressに必要な構成にほとんどの道をたどることができます。
sudo
権限でNginx構成ファイルを開き、変更を加えます。
sudo vi /usr/local/etc/nginx/nginx.conf
前回のガイドの指示に従った場合、ファイルは次のようになります(わかりやすくするために以下のコメントを削除しました)。
user www;
worker_processes 2;
error_log /var/log/nginx/error.log info;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name example.com www.example.com;
root /usr/local/www/nginx;
index index.php index.html index.htm;
location / {
try_files $uri/ $uri/ =404;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/www/nginx-dist;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
}
}
WordPressが正しく機能するようにするには、2つの調整を行う必要があります。
まず、WordPressファイルは/usr/local/www/wordpress
ディレクトリにあるため、ドキュメントルートを調整する必要があります。
server {
. . .
root /usr/local/www/wordpress;
. . .
}
他に必要な変更は、location /
ブロック内のtry_files
ディレクティブです。 現在、構成はNginxに最初にファイルとしてリクエストを見つけようとするように指示しています。 一致するファイルが見つからない場合は、要求に一致するディレクトリを見つけようとします。 これで結果が得られない場合、Nginxはリソースが見つからなかったことを示す404エラーを発行します。
これを変更して、404エラーで終了するのではなく、リクエストがindex.php
ファイルに書き換えられるようにする必要があります。 元のリクエストと引数はクエリパラメータとして渡されます。 try_files
ディレクティブを次のように変更することで、これを構成できます。
server {
. . .
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
. . .
}
終了すると、構成ファイルは次のようになります。
user www;
worker_processes 2;
error_log /var/log/nginx/error.log info;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name example.com www.example.com;
root /usr/local/www/wordpress;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/www/nginx-dist;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
}
}
上記の変更が完了したら、ファイルを保存して閉じます。
これで、新しい変更を実装するためにNginxを再起動できます。 まず、構文が正しいことを再確認します。
sudo nginx -t
エラーが見つからない場合は、サービスを再起動します。
sudo service nginx restart
Webインターフェイスを介したインストールの完了
これで、WordPressのインストールがサーバー側で完全に構成されました。 Webブラウザーを使用して、残りのプロセスを完了することができます。
Webブラウザーで、サーバーのドメイン名またはIPアドレスにアクセスします。
http://example.com
WordPressは最初にどの言語を使用したいかを尋ねます:
選択すると、WordPressのインストールをセットアップするための初期構成ページが表示されます。
サイトの名前を入力し、サイトの管理に使用するユーザー名を選択します。 サイトのパスワードを選択して確認し、連絡可能なメールアドレスを入力する必要があります。 最後のオプションは、検索エンジンがサイトにインデックスを付けることを許可するかどうかに関する選択です。
選択したら、ページの下部にある[WordPressのインストール]ボタンをクリックします。 選択したクレデンシャルを使用してサイトにサインインするように求められます。
ログインすると、新しいWordPressインストールの管理パネルが表示されます。
このインターフェイスを使用して、新しいコンテンツを投稿したり、サイトの外観を変更したり、プラグインをインストールして構成したりして、追加機能を利用できます。
結論
これで、Nginx、MySQL、およびPHPに支えられた新しいWordPressインストールが稼働しています。 WordPressは非常に強力で、好みに応じてさまざまな種類のコンテンツを表示できます。 WordPressを初めて使用する場合は、オプションのテーマとプラグインを確認することから始めてください。