WordPressでブログを運営している人が増えてきています。
多くの人はレンタルサーバで構築していますが、レンタルサーバでは制限があり、カスタマイズや他システムとの連携ができないことがあります。
そこで、自由にカスタマイズ可能なAWSでWordPress環境を構築する方法を説明します。
・EC2インスタンスでWordPressを動かしたい
・WordPressと独自システムを動かしたい
・EC2でWordPressを使うまでの手順が知りたい
EC2でWordPressの管理画面を表示するまでの手順を解説しますね。
上から順番に実行してけば、環境ができるので、試してみてくださいー。
一通り実行すると、なにがどういう役割なのか理解も深まるので、参考にしてください!
AWSのアカウント作成とAmazon Linux2インスタンスへのssh接続ができている前提の内容になります。
ここまでできていない方はこちらを参考にインスタンスに接続できるようにしてください。
まずは環境について説明します。
対象の環境と異なる場合は、その部分だけ別の方法に置き換えてください。
実際にインストールから設定までを説明していきます。
最後にプログラミングの学習にオススメのサービスを紹介します。
環境情報
2020/10時点で実行すると以下の環境となります。
- EC2(AmazonLinux2)
- PHP7.4
- Apache/2.4.46
- MySQL 8.0.21
この記事では「Amazon Linux2」のインスタンスを使用します。
「Amazon Linux」とは使い勝手が違うので、注意してください。
またEC2インスタンスにSSH接続ができている前提の紹介になります。
接続するまで知りたい方は、こちらを参考に準備してください。
SSH接続できたら、以下のコマンドを実行して最新の状態にしておいてください。
$ sudo yum update -y
事前準備は以上です。
実際に必要なソフト等をインストールしていきましょう。
Apache
Apacheを利用することでWebサービスとして公開することができます。
以下のコマンドをEC2内で実行してインストールします。
$ sudo yum install -y httpd
インストールが完了したら以下のコマンドでバージョンを確認しておきましょう。
バージョンが表示されたら、インストールが完了していることがわかります。
$ httpd -v
Apacheを起動するには以下のコマンドを実行する必要があります。
$ sudo systemctl start httpd
”start”の部分を”stop”に変えると停止させることができ、”restart”に変えると再起動することができます。
インスタンス起動のたびにコマンドを実行するのは面倒なので、以下のコマンドを実行しておきましょう。
サーバが起動すると自動的にApacheも起動するようになります。
$ sudo systemctl enable httpd
設定ファイルの編集
以下の設定を行うには「.htaccess 」を利用する必要があります。
・IP制限 ・リダイレクト ・パーマリンク設定
そこでApache設定ファイル「/etc/httpd/conf/httpd.conf」を編集しましょう。
必須の設定といってもよいでしょう。
<Directory "/var/www/html">
〜〜〜
AllowOverride None → AllowOverride All
〜〜〜
</Directory>
<Directory “/var/www/html”>内の”AllowOverride None”を”AllowOverride All”に変更してください。
設定が完了したら、以下のコマンドでApacheを再起動しておきましょう。
$ sudo systemctl restart httpd
PHP
これからの作業は必ずApacheをインストールしたあとで、行ってください。
ぼくは、こちらの作業からやってしまったために、Apache内にPHPのモジュールが作成されず2時間悩みました。。。
まずはデフォルトでインストールされているPHPを削除します。
$ sudo yum remove php-*
デフォルトの状態では、古いバージョン(5系)しかインストールできないので、リポジトルを追加します。
$ sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
実際に必要パッケージのインストールしていきます。
$ sudo yum install --enablerepo=remi,remi-php74 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt
PHPインストールの準備は完了です。
PHP7.4をインストールしていきます。
以下のコマンドは「Amazon Linux2」でしか利用できないので、注意してください。
$ sudo amazon-linux-extras install php7.4
さらにPHPを利用するときに利用するパッケージをインストールしておきます。
$ sudo yum install --enablerepo=remi,amzn2extra-php7.4 php-xml php-mbstring
これでPHPを利用することができるようになりました。
念のためにApacheでPHPが利用できるのか確認しておきましょう。
以下のファイルがあるのか確認してください。
$ ls -l /etc/httpd/modules/libphp7.so
このフィアルがなければPHPを実行することはできるのですが、WordPress上で動かすことができません。
※PHPファイルをブラウザで見たときにソースコードがそのまま表示される場合は、このファイルがあるか確認してください。
MySQL
デフォルトでインストールされているMariaDBを削除します。
$ sudo yum remove mariadb-libs
MySQLリポジトリをyumに追加します。
$ sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
MySQLに必要なパッケージをインストールしていきます。
$ sudo yum install --enablerepo=mysql80-community mysql-community-server
$ sudo yum install --enablerepo=mysql80-community mysql-community-devel
ログファイルがなければMySQLを動かすことができないので、事前に作成しておきます。
$ sudo touch /var/log/mysqld.log
MySQLが使える状態になったので、実際に起動していきます。
$ sudo service mysqld start
”start”の部分を”stop”に変更したら、停止させることができます。
WordPressで利用する前のデータ作成
まず”root”ユーザのパスワードを変更します。
セキュリティの観点から必須の対応になります。
まず最初のパスワードを確認します。
$ sudo cat /var/log/mysqld.log
ーーーーーーーーーーーーーーーーーー
【表示(一部)】
A temporary password is generated for root@localhost: 〇〇
表示された「○○」の部分がパスワードになります。
MySQLコマンドでデータを編集していきます。
$ mysql -u root -p
パスワードがきかれるので、先ほど確認したものを入力してください。
※入力してもコンソールに表示されないので、気にせず入力してEnterを押してください。
ログインできたらMySQL上で以下のコマンドを実行してパスワードを変更します。
mysql> ALTER USER 'root'@'localhost' identified BY '〇〇'
「○○」の部分が新しいパスワードになります。
WordPressで利用するDBを作成しておきます。
mysql> CREATE DATABASE データベース名;
「データベース名」を任意なものに変更して実行してください。
WordPress
それではWordPressをインストールしていきましょう。
まずURLからダウンロードするための「wget」コマンドをインストールします。
$ sudo yum -y install wget
最新のWordPressファイルがZIPにまとまったものを取得します。
$ wget http://wordpress.org/latest.tar.gz
ダウンロードできたら、「tar」コマンドで解凍します。
$ tar -xzvf latest.tar.gz
「wordpress」というディレクトリができているはずです。
このディレクトリ内が実際に利用するWordPressのファイルが入っています。
設定ファイルの変更
設定ファイルを作成します。
$ cp wordpress/wp-config-sample.php wordpress/wp-config.php
作成した設定ファイル「wordpress/wp-config.php 」を編集します。
変更場所はこちら↓です。
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );
/** MySQL database username */
define( 'DB_USER', 'username_here' );
/** MySQL database password */
define( 'DB_PASSWORD', 'password_here' );
/** MySQL hostname */
define( 'DB_HOST', 'localhost' );
以下の変更してください。
・「database_name_here」 : 作成したDB名
・「username_here」:利用するMySQLユーザ(この記事の場合は「root」)
・「password_here」:利用するMySQLユーザのパスワード(先ほど変更したもの)
・「localhost」:同じサーバ内であれば変更の必要なし(外部サーバの場合はIPアドレス)
また「wordpress/wp-config.php」内に以下があると思います。
* Authentication Unique Keys and Salts.
*
* Change these to different unique phrases!
* You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
なにかのブラウザで「@link」以降のURLを表示してください。
上記の場合は「https://api.wordpress.org/secret-key/1.1/salt/」です。
表示されたものをコピーしておき、「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' );
ApacheでWordPress利用
URLからアクセスしたときにWordPressが表示されるように設定していきます。
先ほど用意したWordPressファイルをApacheが見にいく先に移動します。
$ sudo cp -r wordpress/* /var/www/html/
このままではApacheが利用できない権限のため、ファイルの所持者、グループ、権限を変更します。
この対応により、プラグインなどが使えるようになります。
$sudo chown apache.apache -R /var/www/html/
$sudo chmod +w -R /var/www/html/
これでWordPressが利用できる状態になりました。お疲れ様でした!!!
EC2インスタンスのグローバルIPをブラウザで開いてみてください。
WordPressの管理画面が表示されます!
プログラミング学習 -オススメのサービス-
WordPressを利用する場合、少なくとも「HTML、CSS」の知識が必要です。
カスタマイズするなら加えて、「JavaScript、PHP」を扱える必要があります。
そんなにいっぱいのこと勉強しないといけないの。。。
1つ1つムズカシイし、勉強の仕方がわからない。。。
本とか買ってたら、お金がめっちゃかかる。。。
安心してください!
『Freeks 』を利用すれば、「HTML、CSS、JavaScript、PHP」はもちろん、その他の言語についても学び放題です!
スクールなどでは30万〜80万かかることが多いですが、Freeksでは「月額9,800円」でいくらでも受講することができます。
質問ができることはもちろん、勉強会参加、転職サポートもあるので安心してください!
無料説明会もあるので、気になった方は参加してみてください。
最後に
EC2でWordPressを構築できたら、どんどんカスタマイズしていきましょう!
サーバとしての制限がほとんどないので、自分が求めている環境を作り込んでいってください。
他の言語や、これから別システムを構築する際は、まず概要を理解した上で実際に作り込んでいくやり方をオススメします。
悩みながらも調べつつ進めていくことが最終的には一番早いです。
楽しみながら欲しいサービスを作っていきましょう!
最後まで読んでくださり、ありがとうございました!!!
コメント