Ubuntu16.04でWordPressが動くWebサーバを構築する

シェアする

UbuntuでNginx、PHP、MysqlをインストールしてWordPressが動くWebサーバを構築するメモです。




環境

今回はクラウドサービスの1つ、IDCFクラウドを使います。
最小構成にすると、メモリ1GBのマシンが月500円で維持できるのでオススメです。

事前設定

パスワードを変更

rootでログイン。パスワードを変更しておきます。

passwd

Vimをインストール

これは必須ではないですが、設定ファイルを触るのにエディタが欲しいのでVimをインストールします。

apt-get install vim

SSH接続できる様にする

SSH接続を行うため、openssh-serverをインストールします。

sudo apt-get install openssh-server

環境構築

Nginx、PHP、MySQLを入れます。

Nginxをインストール

Webサーバとして今回はNginxをインストールします。
(バージョンが若干古いけど今回は気にしない)

apt-get install Nginx

ちなみに、apt-get -s install nginx でインストされるnginxのバージョンが確認できるそうです。
参考: apt-get でインストールされるパッケージのバージョンを事前に確認する – ltcmdr927atenablog

PHPをインストール

PHPをインストールします。

apt-get isntall php-fpm

MySQLをインストール

MySQLをインストールします。
(最近はmariaDBが流行りですが。。。)

sudo apt-get install mysql-server

インストール中にパスワードのを何にするか聞かれるので設定します。

phpMyAdminをインストール

phpmyadmin をインストールします。

apt-get install phpmyadmin

インストール時に、apache2かlightpdか聞かれますが、どっちもチェックせずに進めます。
以上で、インストールは終わりです。

Nginxの設定

Nginxの設定を行います。

PHPを扱えるようにする

vim /etc/nginx/sites-available/default

PHPファイルを扱えるようにします。

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}

参考:ubuntu16.04 LTS上に Nginx/pukiwiki をインストール – Qiita

アップロードできるファイルサイズを変更

Nginxでアップロードできるファイルサイズを10MBへ変更します。
以下を追加。

client_max_body_size 10M;

/etc/php/7.0/fpm/php.ini に以下を追加します。

upload_max_filesize = 10M
post_max_size = 10M

参考:Nginx + PHP でのPOSTによるファイルアップロードの上限サイズを変更する – Qiita

phpMyAdminへアクセスできるようにする

自分のドメイン/phpmyadmin へアクセスした時にphpMyAdminを表示する設定をします。
他の人にアクセスされたくないのでアクセス制限もかけます。

location /phpmyadmin {
    root /usr/share;
    index index.php;
    allow xxx.xxx.xxx.xxx;
    deny all;
    location ~ ^/phpmyadmin.+\.php$ {
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

nginxの設定は上から順に適応されるそうですね。
参考:Nginx でIPアドレスによるアクセス制御を行う | Developers.IO

Nginxの設定ファイルを分割

これも必須作業ではありませんが、ドメインごとに設定ファイルを持ちたい場合などは設定ファイルを分割することができます。
シンボリックリンクを張る

ln -s /etc/nginx/sites-available/nakkaa.net sites-enabled

データベースの設定

作業用ユーザを作成

MySQLに作業用ユーザを追加します。
まずはMySQLへログイン。

mysql -u root -p

新規ユーザとパスワードを設定します。

CREATE USER 'user' IDENTIFIED BY "password";

WordPress用のテーブルを作成

MySQLへログインし、WordPress用のデータベースを作成します。

create database wordpress;

選択します。

use wordpress;

作成したデータベース wordpress のすべての権限(編集、追加、削除など)をユーザ user へ与えます。

GRANT all  ON wordpress.* TO user;

これをしないと、WordPressインストール時に以下のエラーメッセージが出てインストールできません。

WordPress データベースエラー: [CREATE command denied to user 'user'@'localhost' for table 'wp_users']

WordPress パーマリンク対応

このままだとWordPressのパーマリンクが正常に動かないので、Nginxに追加の設定を行います。
参考:【nginx】WordPress 用のパーマリンク設定を修正しました♪ – oki2a24
あとはWordPressをインストールすれば完成です。