はじめに
単なる自分用のメモ書きです。
似た様な記事は、他の方も書かれていますが、自分でもやり方を纏めておこうと思った次第です。
今更な話題なので、余り見る価値は無いかと思います。
環境
OS : Ubuntu 18.04.1 LTS
PC : Virtual Box 6.0.4
Ubuntuのアップグレード(念の為)
sudo apt update
sudo apt upgrade
Apacheのインストール
- Apacheのインストール
sudo apt install apache2
その後、Apacheが動作していることを確認。
Webブラウザでlocalhostを指定し、Webページが出力されればOK。
PHPのインストール
- phpのインストール
sudo apt install php php-mysql php-mbstring
versionを指定するならこっち。
sudo apt install php7.2 php7.2-mysql php7.2-mbstring
- phpがapacheで動作する事を確認
デフォルトでは、/var/www/html
が、Apacheのルートディレクトリとなるため、そこにindex.phpを作り、下記のコードを書く。
(sudoを使わないとファイル作成、編集等が出来ないので要注意)
<?php
phpinfo();
phpinfoの画面が出てくればOK。
phpinfoの画面が出てこないとき(GCEでインストールした時のトラブル)
Google Compute Engineでapacheをインストールした際に、phpinfoの画面が出て来ませんでした。
GCE上での解決方法を記載しておきます。
……とは言ったものの、本当に「解決した」だけで、根本的な対処では無いと思うのですが……。
apache2ctrl -M
でモジュールを確認。php関連のモジュールが読み込まれていなさそうです。
$ apache2ctrl -M
Loaded Modules:
core_module (static)
so_module (static)
/etc/apache2/mods-enabled
内に、php関連の設定ファイルのシンボリックリンクを貼ります。
$ sudo ln -s ../mods-available/php7.2.load ./php7.2.load
$ sudo ln -s ../mods-available/php7.2.conf ./php7.2.conf
因みに下記資料の内容を、そのまま実行しただけです。
apache2について勉強しないと駄目ですね……。
configtestを実行。
$ apache2ctl configtest
[...省略...] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.
<以下省略>
ApacheのMPMをマルチスレッドのworkerからpreforkに変更する事で解決する事にしました。
……と書いていますが、workerとかpreforkとは何かが解っておらず、情けない限りです。
これもそのうち勉強します……。
ざっくり言うと、mpm_event.confとmpm_event.loadを読み込ませず、変わりにmpm_prefork.conf、mpm_prefork.loadを読み込ませただけです。
$ sudo rm mpm_event.*
$ sudo ln -s ../mods-available/mpm_prefork.conf ./mpm_prefork.conf
$ sudo ln -s ../mods-available/mpm_prefork.load ./mpm_prefork.load
これも、下記資料の内容を参考に実行しただけです。
参考資料
https://www.tokotokotekuteku.com/entry/2014/01/30/204607
apache2をrestart。これでもう一度phpinfoの画面を確認します。
$ sudo service apache2 restart
MySQLのインストール
- mysqlのインストール
sudo apt install mysql-server
- 起動確認
mysqladminや、systemctlで確認。
sudoを付けて実行しないとエラーとなります。
$ sudo mysqladmin ping
mysqld is alive
$ sudo systemctl status mysql.service
mysql.service - MySQL Community Server
...
Active : active (runnning)
下記も駄目です。通りません。
$ mysqladmin ping -u root -p
mysqlの初期化を実行します。
多分、全てYesでOKだと思います。(詳しくはググる)
$ sudo mysql_secure_installation
MySQLのユーザ作成とデータベース作成
- 一般ユーザを作る
mysqlに一般ユーザを作っておきます。
wordpressがユーザ名、passwordがパスワードです。
mysql> create user 'wordpress'@'localhost' identified by 'password';
一応、ユーザを確認します。
多分、下記のようになっているはずです。(出力は一部省略しています)
mysql> select host, user from mysql.user
+-----------+------------+
| host | user |
+-----------+------------+
| localhost | wordpress |
| localhost | root |
+-----------+------------+
hostというのが、アクセス可能なホスト(IPアドレス)を示しています。
%は、全てのホストからアクセス可能である事を示します。
- データベースを作成する
mysql> create database wordpressdb;
mysql> use wordpressdb;
create database
はデータベース作成、use
はデータベースへの接続コマンドです。
- 権限を与える
ユーザwordpress
に、データベースwordpressdb
に接続する権限を与えます。
面倒なので、全ての権限が使える様にしておきます。
mysql> grant all on 'wordpressdb'.* to 'wordpress'@'localhost';
権限が与えられている事を確認します。
mysql> show grants for 'wordpress'@'localhost';
+-------------------------------------------------------------------+
| Grants for wordpress@localhost |
+-------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'wordpressdb'@'localhost' |
| GRANT ALL PRIVILEGES ON `wordpressdb`.* TO 'wordpress'@'locahost' |
+-------------------------------------------------------------------+
wordpressのダウンロード
-
/var/www
の権限変更
一々、sudoと打ち込むのも面倒なので、/var/www
の所有者を変更します。
[user]の部分には、自分のユーザ名を入れてください。これで所有者が自分に変わります。
$ sudo chown -R [user].[user] /var/www
- wordpressのダウンロード
wordpressをダウンロードします。私はcurlで行いました。
その後、ファイルを展開し、全てのファイルを、html直下に移動させます。
展開する前に、余分なファイル(index.htmlやindex.php)は消しておきます。
$ cd /var/www/html
$ curl https://ja.wordpress.org/latest-ja.tar.gz -O
$ tar -xvzf latest-ja.tar.gz
$ rm index.html index.php latest-ja.tar.gz
$ mv wordpress/* .
$ rmdir wordpress
Apacheの設定を変えて、wordpressディレクトリをルートディレクトリにすれば良いのでしょうが、面倒なのでこうしておきました。
- wp-config.phpの編集
wp-config.phpを編集します。
データベースの接続に関わる設定などは、この段階で実施しておきます。
設定方法は割愛します。
$ cp wp-config-sample.php wp-config.php
$ vim wp-config.php
- wordpressへのアクセス
webブラウザを使い、サーバにアクセスします。
そうすると設定の続きを行うことが可能なので、必要な設定を行ってください。
最後に
自分用のメモなので、分かりづらい点はご容赦願います。
後、この内容は後日修正します。
GCE上で再度実行し直してみて、問題のある箇所を修正する予定です。