人気ブログの一つに「Wordperss」がありますよね。
今回はインフラ基盤を一から作り自分の記事が書けることをゴールに設定しました!
Wordpressとは?
"WordPress(ワードプレス)とは、サイトの作成やブログの作成などが
できるCMS(コンテンツ管理システム)の1つ"
では早速構築に移りましょう!
:::message
Amazon Linux2でのインストールを試みます。
:::
yumのアップデート
yum update -y
まずはwebサーバを構築していきます。今回はApacheをミドルウェアに採用し
やっていきましょう!
Apacheのインストール・起動・自動設定
yum install -y httpd
systemctl start httpd
systemctl enable httpd
※ディレクトリ以下ファイルのアクセス権限をapacheにしておかないとファイルへの書き込みができずにエラーに陥るので権限委譲とパーミッションは変更しておきましょう!
ディレクトリの権限委譲
chown -R apache:apache /var/www
chmod 2775 /var/www && find /var/www -type d -exec chmod 2775 {} \;
find /var/www -type f -exec chmod 0664 {} \;
WordpressにはPHPが必要なためパッケージ諸共インストールしていきます!
レポジトリにあるPHPを参照
amazon-linux-extras enable php7.3
関連のパッケージインストール
yum install -y php php-gd php-mysqlnd php-xmlrpc
Wordpressのデータ保存先のデータベースを構築していきます。
今回はMariaDBを採用しました!
DBのインストール
yum install mariadb mariadb-server -y
systemctl start mariadb
systemctl enable mariadb.service
DBへのログイン時のパスワード設定をします。
このパスワードは後ほどログインする際必要なのでメモっとくといいでしょう。
セキュリティ設定
mysql_secure_installation
以下続けて設定
#現在のパスワード入力が求められますが、Enterで大丈夫です
Enter current password for root (enter for none):
#パスワード設定はyes
Set root password? [Y/n] y
#新たなパスワード設定
New password:
#もう一度同じパスワード設定
Re-enter new password:
#匿名ユーザーアカウントを削除
Remove anonymous users? [Y/n] y
#リモートルートログインを無効
Disallow root login remotely? [Y/n] y
#テストデータベースを削除
Remove test database and access to it? [Y/n] y
#権限テーブルを再ロードし、変更を保存
Reload privilege tables now? [Y/n] y
#以下の文言が出てくればOK!
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
DBへログイン
mysql -u root -p
#パスワードは先ほど設定したもの
ログイン後以下をDB内にて登録
#ユーザ登録
CREATE USER 'wordpress-user'@'localhost' IDENTIFIED BY '登録したいパスワード名';
#DB名登録
CREATE DATABASE `wordpress-db`;
#ユーザへの権限付与
GRANT ALL PRIVILEGES ON `wordpress-db`.* TO "wordpress-user"@"localhost";
#権限内容の反映
FLUSH PRIVILEGES;
# ctl+dでDBから抜けます
カレントディレクトリに移動
cd && pwd
今回メインのWordpressデータをインストールしていきます!
Wordpressインストール・ファイルの解凍
wget https://ja.wordpress.org/latest-ja.tar.gz
tar -xzvf latest-ja.tar.gz
解凍済みファイルの削除
rm -rf latest-ja.tar.gz
PHPの設定ファイルコピー・作成
cp wordpress/wp-config-sample.php wordpress/wp-config.php
vim wordpress/wp-config.php
DBログインした際に登録した情報をPHPに流し込んでいきます。
以下内容を編集
// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define( 'DB_NAME', 'DBの編集で登録したDB名' );
/** MySQL データベースのユーザー名 */
define( 'DB_USER', '登録したユーザ名' );
/** MySQL データベースのパスワード */
define( 'DB_PASSWORD', '登録したパスワード名' );
今回はわかりやすいようにhtml配下に「wordpress」というディレクトリを作成し、そこにwordpressのデータをコピーしていきます!
webページ用ディレクトリ作成
mkdir /var/www/html/wordpress
Wordpressのファイルを全て先ほど作成したディレクトリへコピー
cp -r wordpress/* /var/www/html/wordpress/
最後にApacheの設定です。
Apacheの設定ファイルのオリジナルコピー・編集
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org
vim /etc/httpd/conf/httpd.conf
151行目のAllowOverride Noneを Allへ編集
(WordpressとApacheのパーマリンクを実現しています。)
「パーマリンクとは「Webサイトのページ毎に設定しているURL」のこと」
https://www.xserver.ne.jp/blog/wordpress-permalink/
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#151行目に記載
#AllowOverride None
↓
AllowOverride All
最後にApacheを再起動
sys
temctl restart httpd
ブラウザよりWordpress設定
http://自分のグローバルIP/wordpressで初期設定画面へ移行。
後半はざざっとやっていきましたが、これでWordpress初期画面からログインができるようになったかと思います!