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
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
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
これで無事環境構築できました。