10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ubuntu Nginxでwordpressの環境構築

Last updated at Posted at 2020-11-25

wordpress環境構築の為に、AzureでVM作成してサーバーを立てました。

サーバのOSはUbuntu 18.04.5 LTSです。

レンタルサーバーなどを使用すれば簡単にできるwordpress環境構築ですが、1からwordpressの環境を構築したら結構難しかったので、やり方をまとめました。
#UbuntuにwebサーバーNginxをインストール
ApacheかNginxかで迷いましたが今回はNginxを使用しました。

まずは、インストール可能なパッケージの「一覧」を更新し、nginxをインストールする下記コマンドを実施。

ちなみに、apt-getコマンドは、Debian系のディストリビューション(DebianやUbuntu)のパッケージ管理システムであるAPT(Advanced Package Tool)ライブラリを利用してパッケージを操作・管理するコマンドです。

centOSの場合は、apt-getの代わりにyumコマンドが使えます。

# apt-get update
# apt-get install nginx

Nginxがインストールできたら、Nginxの設定が書いてある、nginx.confファイルを編集します。

vim /etc/nginx/nginx.conf

client_max_body_sizeを追加し、最大アップロードサイズを32めがバイトに設定します。

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
}
http {
client_max_body_size 32M;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}

Nginxを再起動します。
Nginxの設定ファイルなどを編集した際は、必ず再起動するようにして下さい。

# sudo service nginx restart
# sudo service nginx status

再起動後はステータスを確認し、activeになっていればOK。

● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2018-12-29 04:29:22 UTC; 1h 17min ago
Docs: man:nginx(8)
Process: 2233 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status
Process: 2221 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exite
Main PID: 2238 (nginx)
Tasks: 2 (limit: 1152)
CGroup: /system.slice/nginx.service
├─2238 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2239 nginx: worker process

#UbuntuにMySQLをインストールする

wordpressではデータベースMySQLを使用する為インストールする。

# apt-get update
# apt-get install mysql-server mysql-client

インストールしたら実際にデータベースを作成する必要があります。

下記のコマンドでMySQLにアクセスします。

# sudo mysql -u root -p

・今回の場合、wordpressという名前のデータベースを作成
・今回の場合、ユーザー名takeshi123パスワードsample123という名前のMySQLユーザーアカウントを作成します。

mysql> CREATE DATABASE wordpress CHARACTER SET UTF8 COLLATE UTF8_BIN;
CREATE USER 'takeshi123'@'%' IDENTIFIED BY 'sample123';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'%';
FLUSH PRIVILEGES;
quit;

#NginxにPHPサポートを追加する

wordpressはPHPを使用します。

NginxでPHPを使用できるようにPHPサポートを追加する為に、PHPの必須パッケージをインストールし、必要なPHPモジュールをインストールする。

# apt-get update
# apt-get install php7.2-fpm
# apt-get install php7.2-xml php7.2-curl php7.2-gd php7.2-mbstring php7.2-readline
# apt-get install php7.2-bz2 php7.2-zip php7.2-json php7.2-opcache

インストールが完了したら、PHP設定ファイルのphp.iniを編集します。

# updatedb
# vi /etc/php/7.2/fpm/php.ini
php.ini
file_uploads = On
max_execution_time = 300
memory_limit = 256M
post_max_size = 32M
max_input_time = 60
max_input_vars = 4440
upload_max_filesize = 32M

次に、NginxのデフォルトWebサイト設定ファイルを下記のように書き換える。

# vim /etc/nginx/sites-available/default
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
}

PHPサービスを再起動し、Nginxも再起動する。

# sudo service php7.2-fpm restart
# sudo service nginx restart

#UbuntuにWordpressをインストールする

tmpフォルダにwordpressをインストールする。

webブラウザでwordpress公式サイトにアクセスしてローカル環境にダウンロードしても良い。

その際サーバーにアップロードする場合は、scpコマンドでサーバーにアップロードすれば良い。

今回はサーバー上でコマンド操作でインストールしました。

# cd /tmp
# wget https://wordpress.org/latest.tar.gz
# tar -zxvf latest.tar.gz

インストールしてファイルを解凍したら/var/www/html/に移動

# mv wordpress /var/www/html/
# chown www-data.www-data /var/www/html/wordpress/* -R

WordPressのデータベースの接続情報などが記載してある設定ファイルであるwp-config.phpを編集します。

# cd /var/www/html/wordpress/
# mv wp-config-sample.php wp-config.php
# vim wp-config.php
wp-config.php
define('DB_NAME', 'wordpress');
define('DB_USER', 'takeshi123');
define('DB_PASSWORD', 'sample123');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

これで設定は完了でアクセスできるはずですが下記のエラーが発生しました。

「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。」

MySQL の拡張機能がインストールされていなかったみたいです。

下記コマンドで拡張機能をインストールすることで解決。

sudo apt-get -y install php-mysql

これでブラウザにアクセスすればWordpress画面にアクセスすることができるはずです。

nginxの場合パーマリンクの設定がデフォルトでできないので下記コードを/etc/nginx/sites-available/defaultファイルに追加することでパーマリンク設定の変更ができるようになります。

try_files $uri $uri/ /index.php?q=$uri&$args;

デフォルトの設定だとwordpressでテーマインストールがサイズオーバーでできなかったので、/etc/php/7.2/fpm/php.iniファイルを下記のように修正

upload_max_filesize: 10M
post_max_size: 10M

これで無事環境構築できました。

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?