Ubuntu18.04にWordPressをインストールしてローカルの開発環境を作る方法

IT

今回、Ubuntu18.04にWordpressを入れる機会があったので、その知見を公開します。

 

Apache2 + MySQL + PHP7.2 + WordPress という形で構成します。XAMPPは使いません。

 

少しでもお力になれれば幸いです。

 

なお、参考1をベースに書いているため、手順は似ています。気になる方は合わせて読んで下さい。

 

sysv-rc-confのインストール

マシンを起動した時、同時にMySQL, apache2を起動したいので、sysv-rc-confをインストールします(参考2)。

 

wget http://archive.ubuntu.com/ubuntu/pool/universe/s/sysv-rc-conf/sysv-rc-conf_0.99.orig.tar.gz
tar zxvf sysv-rc-conf_0.99.orig.tar.gz
cd sysv-rc-conf-0.99
sudo make
sudo make install

 

以下の依存パッケージが必要です。

sudo apt install libcurses-ui-perl libterm-readkey-perl libcurses-perl

 

そして以下を実行し、図のように出力されれば成功。

sudo sysv-rc-conf

 

MySQL

インストール

sudo apt install -y mysql-server
sudo mysql_secure_installation

 

このとき色々選択肢がありますが、参考3を見ながらやりました。

 

 

セットアップ

MySQLにルートでログインする(参考4)。

sudo mysql -u root -p

 

この記事では’wp_db’という名前のデータベースを作ります。

 

データベース名は何でも構いません。ユーザー名は’wp_user’にしました。

 

また、’user_password’, ‘database_password’は好きなパスワードを設定して下さい。

CREATE DATABASE wp_db SET utf8;
CREATE USER wp_user@localhost IDENTIFIED BY 'user_password'
GRANT ALL PRIVILEGES ON wp_db.* TO wp_user@localhost IDENTIFIED BY 'database_password';
FLUSH PRIVILEGES;

 

データベースが出来たか確認するには、

SHOW DATABASES;

 

これで自分の作ったものがあればオーケーです。

 

続いて、記事冒頭でインストールしたsysv-rc-confでMySQLが自動起動するようにします。

sudo sysv-rc-conf mysqld on

 

Apache2

まずはインストールしましょう。

sudo apt install -y apache2

 

インストールできたら、自動起動を設定します。

sudo sysv-rc-conf apache2 on
(out)AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
(out)apachectl[18161]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80

 

ここで僕の場合以上のようなエラーが出ました。

 

エラー1:
AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message

 

解決方法(参考5)

sudo echo ServerName $HOSTNAME > /etc/apache2/conf-available/fqdn.conf
sudo a2enconf fqdn
sudo service apache2 restart

 

エラー2:
apachectl[18161]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80

 

80番ポートが別のプロセスに占有されているようです。
これに関しては、参考6参考7を読み込めば解決できます。

 

解決したらもう1回

sudo sysv-rc-conf apache2 on

 

 

PHP

インストール

PHP7.2をインストールします。

sudo apt install -y php libapache2-mod-php php-mysql

 

以下は必要に応じて、と参照サイトにはありましたが、全部入れちゃって良いんじゃないでしょうかね。

ちなみにphp-mcriptだけ7.2版がなかったので、7.1版に指定しました。

sudo apt install -y php-mbstring php7.1-mcrypt php-curl php-gd php-xml

 

 

動作確認

/var/www/html/info.phpを作成し、以下を記入します。
ファイルの作成

touch /var/www/html/info.php
vim /var/www/html/info.php

 

ファイルの編集

<?php phpinfo();

 

ここで重要なのが、外部からのアクセスを制限することです。

今の所、80番ポートを全世界に向けておっぴろげているので、アクセス許可をlocalhostに限定します(参考8)

sudo vim /etc/apache2/ports.conf

 

これで、先頭の方に

 

Listen 80

 

とあるのを

 

Listen 127.0.0.1:80

 

にしておきます。

 

127.0.0.1はループバックIPアドレスと言って、自分自身を表すIPアドレスです。

 

 

WordPress

以下殆ど参考1と同じことをします。内容も殆ど同じになってしまうので、引用しておきます(書式は改変、内容もごく一部改変)

 

 

以下引用—————————————

設定ファイルをバックアップ

sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.original

 

WordPressのインストール先を追加

<Directory /var/www/html/wordpress>
        AllowOverride All
</Directory>

 

設定ファイルのチェック

sudo apache2ctl configtest
(out)Syntax OK

 

mod_rewriteを有効化し、Apacheを再起動

sudo a2enmod rewrite
sudo systemctl restart apache2

 

WP-CLIインストール

cd
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
wp --info

 

WordPressのインストール

WP-CLIで/var/www/html/wordpressにインストール

sudo su -
wp core download --locale=ja --path=/var/www/html/wordpress --allow-root
touch /var/www/html/wordpress/.htaccess
chmod 660 /var/www/html/wordpress/.htaccess
cp /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php
mkdir /var/www/html/wordpress/wp-content/upgrade
sudo chown -R [作業ユーザ名]:www-data /var/www/html/wordpress
sudo chmod g+w /var/www/html/wordpress/wp-content
sudo chmod -R g+w /var/www/html/wordpress/wp-content/themes
sudo chmod -R g+w /var/www/html/wordpress/wp-content/plugins
sudo chmod -R g+w /var/www/html/wordpress/wp-content/upgrade
sudo chmod -R g+w /var/www/html/wordpress/wp-content/languages
exit

引用終わり—————————————

 

wp-config.phpの変更

wp-config.phpを編集する前に、以下のコマンドから文字列を作っておきます。

curl -s https://api.wordpress.org/secret-key/1.1/salt/
(out)define('AUTH_KEY',         'hogehoge');
(out)define('SECURE_AUTH_KEY',  'fugafuga');
(out)define('LOGGED_IN_KEY',    'foofoo');
(out)define('NONCE_KEY',        'barbar');
(out)define('AUTH_SALT',        'foobar');
(out)define('SECURE_AUTH_SALT', 'piyopiyo');
(out)define('LOGGED_IN_SALT',   'buzbuz');
(out)define('NONCE_SALT',       'bizbiz');

 

この出力をクリップボードにコピーしておきましょう。

 

そうしたら、/var/www/html/wordpress/wp-config.phpを開きます。

define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

 

デフォルトでは上のようになっているところを、先程コピーしたものに差し替えます。

 

つづいて、同ファイル内に設定されているデータベース名、ユーザー名、パスワードは先程設定したものを入れて下さい。

// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('DB_NAME', 'wp_db');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'wp_user');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'your_password');

 

このあとは再び引用。(書式改変)

 

 

以下引用—————————————-

WordPress用のApacheバーチャルホスト設定

既存のファイルをコピーして新しいサイトの設定ファイルを作る

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/wordpress.conf

 

wordpress.confの変更

DocumentRootを/var/www/html/wordpressに変更する。

/etc/apache2/sites-available/wordpress.confを編集。

<VirtualHost *:80>
        # ドメインがある場合は設定する
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/wordpress

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

 

設定ファイルのチェック
Syntax OKの出力を確認

sudo apache2ctl configtest
(out)Syntax OK

 

デフォルトのサイトを無効化し、Wordpressのサイトを有効化

sudo a2dissite 000-default
sudo a2ensite wordpress
sudo systemctl restart apache2

引用終わり——————————–

 

 

これで、localhost:80にアクセスしてみましょう。

 

ページが表示されればオーケー!

 

全行程終了

これで僕は動きました。

 

わかりにくいところがあったらごめんなさい。

 

ご意見のある方はお問い合わせいただくと嬉しいです。

 

 

参考にしたサイト

(1) Ubuntu 16.04 LTSへWordPressをインストール

(2) Ubuntu18.04 LTSにsysv-rc-confを入れる方法

(3) 【MySQL, 開発環境】MySQLのインストールと初期設定

(4) ubuntu 14.04LTS wordpress インストール

(5) ubuntuにおけるapache2のAH00558エラーを解決する。

(6) (98)Address already in use: と出てapacheが再起動できない場合の対策

(7) lsofコマンド入門

(8) localhost のみのアクセスを許可する

コメント

タイトルとURLをコピーしました