今回、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エラーを解決する。
コメント