はじめに
Ubuntu22.04にLAMP環境の構築とWordPressの導入・動作確認までの手順書を記載します。
尚、今回は勉強用のためファイアウォールやapparmorを止めて操作を行います。
今回インストールと動作確認するサービス
- Apache Ver.2.4.52
- PHP Ver.8.1.2
- MariaDB Ver.10.6.16
- phpMyAdmin Ver.5.1.1
- vsftp Ver.3.0.5
前提条件
下記の記事で仮想環境が準備できており、Tera TermでSSH接続できている事です。
一般ユーザーからrootユーザーに切り替え
rootパスワードの設定
sudo passwd root
実行結果
[sudo] jet-blog のパスワード: 新しい パスワード: 新しい パスワードを再入力してください: passwd: パスワードは正しく更新されました
説明
初めに自分のアカウントのパスワードを入力してください。
その後、rootパスワードを「新しいパスワード」で設定してください。
rootユーザーに切り替え
su -
実行結果
パスワード:
説明
パスワードの入力を求められるので、先ほど設定したrootユーザーのパスワードを入力してください。
※入力できていないように見えますが、入力できています。
ファイアウォールの無効化
ufw disable
apparmor無効化
service apparmor stop
再起動
shutdown -r now
※再起動後、一般ユーザーからrootユーザーに切り替えを忘れずに!!
Vimのインストール
apt install -y vim
Apacheのインストール
インストール
apt install -y apache2
Version確認
apache2 -v
実行結果
Server version: Apache/2.4.52 (Ubuntu) Server built: 2024-01-17T03:00:18
起動
service apache2 start
起動状態の確認
service apache2 status
実行結果
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2024-04-08 13:01:43 JST; 3min 55s ago
説明
Active: active (running) と表示されていたら起動中です。
自動起動設定を有効化
systemctl enable apache2
実行結果
Synchronizing state of apache2.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable apache2
自動起動設定を確認
systemctl is-enabled apache2
実行結果
enabled
説明
enabled と表示されていたら、次回起動時に自動起動します。
Apacheにアクセスする
http://localhost/
にブラウザでアクセスしてください。
Apacheのデフォルト画面が表示されます。
PHPのインストール
インストール
apt install -y php php-mysql libapache2-mod-php libapache2-mpm-itk
インストールの確認
php -v
実行結果
PHP 8.1.2-1ubuntu2.14 (cli) (built: Aug 18 2023 11:41:11) (NTS) ...省略...
説明
PHP 8.1.2 が今回インストールされたPHPのVersionです。
設定 (必要であれば)
vim /etc/php/8.1/apache2/php.ini
- エラーメッセージをブラウザに表示するように設定を変更
- 486行目 : すべてのエラーを表示する設定
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
↓
error_reporting = E_ALL - 503行目 : エラーを画面に表示する
display_errors = Off
↓
display_errors = On
- 486行目 : すべてのエラーを表示する設定
Apache再起動
service apache2 restart
MariaDBのインストール
インストール
apt install -y mariadb-server mariadb-client
Version確認
mariadb -V
実行結果
mariadb Ver 15.1 Distrib 10.6.16-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper
起動
systemctl start mariadb
起動状態の確認
systemctl status mariadb
実行結果
● mariadb.service - MariaDB 10.6.16 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2024-04-08 14:32:58 JST; 3min 18s ago
説明
Active: active (running) と表示されていたら起動中です。
自動起動設定を有効化
systemctl enable mariadb
実行結果
Synchronizing state of mariadb.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable mariadb
自動起動設定を確認
systemctl is-enabled mariadb
実行結果
enabled
enabled と表示されていたら、次回起動時に自動起動します。
初期設定スクリプト実行
mariadb-secure-installation
質問形式でMariaDBの初期設定を行ってくれます。
- Enter current password for root (enter for none):
- MariaDBの現在のrootパスワードを入力してください。
- 初期はパスワード無し(none)なので、そのままEnter
- MariaDBの現在のrootパスワードを入力してください。
- Switch to unix_socket authentication [Y/n]
- unix_socket認証に切り替えます。
- 「Y」を入力してEnterキー
- unix_socket認証に切り替えます。
- Change the root password? [Y/n]
- Rootのパスワードを変更しますか?
- 「Y」を入力してEnterキー
- パスワードを入力してください。
- Rootのパスワードを変更しますか?
- Remove anonymous users? [Y/n]
- 匿名ユーザーを削除しますか?
- 「Y」を入力してEnterキー
- 匿名ユーザーを削除しますか?
- Disallow root login remotely? [Y/n]
- リモートからのrootログインを無効にしますか?
- 「n」を入力してEnterキー
- リモートからのrootログインを無効にしますか?
- Remove test database and access to it? [Y/n]
- testデータベースとアクセス権限を削除しますか?
- 「n」を入力してEnterキー
- testデータベースとアクセス権限を削除しますか?
- Reload privilege tables now? [Y/n]
- 特権テーブルを今すぐ再読み込みしますか?
- 「Y」を入力してEnterキー
- 特権テーブルを今すぐ再読み込みしますか?
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and haven't set the root password yet, you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password or using the unix_socket ensures that nobody can log into the MariaDB root user without the proper authorisation. You already have your root account protected, so you can safely answer 'n'. Switch to unix_socket authentication [Y/n] Y Enabled successfully! Reloading privilege tables.. ... Success! You already have your root account protected, so you can safely answer 'n'. Change the root password? [Y/n] Y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] Y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] n ... skipping. By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] n ... skipping. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] Y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
MariaDBにユーザーの追加と特権の設定
MariaDBにログイン
mysql -u root -p
実行結果
Enter password:
説明
MariaDBのrootユーザーのパスワードを入力してください。
※CentOS7のrootユーザーのパスワードではありません。
ユーザーの追加
CREATE USER 'jet-blog'@'%' IDENTIFIED BY 'password';
特権の設定と反映
GRANT ALL PRIVILEGES ON *.* TO 'jet-blog'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
MariaDBからログアウト
exit;
外部からの接続許可設定
vim /etc/mysql/mariadb.conf.d/50-server.cnf
27行目
bind-address = 127.0.0.1
↓
bind-address = 0.0.0.0
MariaDBの再起動
systemctl restart mariadb
phpMyAdminのインストール
インストール
apt install -y phpmyadmin
phpmyadmin を設定しています その1
「apache2」にチェック(※1)して<了解>を選択してください。
(※1)「apache2」を選択状態(アクティブ)で、スペースキーを押すと「*」(チェック)が入ります。
phpmyadmin を設定しています その2
<はい>を選択してEnterキーを押してください。
お好きなパスワードを入力してください。
入力できたら<了解>を選択してEnterキーを押してください。
※ Tabキーで移動できます。
再度同じパスワードを入力してください。
入力できたら<了解>を選択してEnterキーを押してください。
※ Tabキーで移動できます。
phpMyAdminにアクセスする
http://localhost/phpmyadmin
にブラウザでアクセスしてください。
ユーザー名とパスワードを入力してください。
入力できたら「実行」をクリックしてください。
phpMyAdminの画面が表示されます。
vsftpdのインストール
インストール
apt install -y vsftpd
起動
systemctl start vsftpd
起動状態の確認
systemctl status vsftpd
実行結果
● vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2024-04-08 15:28:14 JST; 1min 34s ago
説明
Active: active (running) と表示されていたら起動中です。
自動起動設定を有効化
systemctl enable vsftpd
実行結果
Synchronizing state of vsftpd.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable vsftpd
自動起動設定を確認
systemctl is-enabled vsftpd
実行結果
enabled
説明
enabled と表示されていたら、次回起動時に自動起動します。
初期設定
vim /etc/vsftpd.conf
設定項目
25行目:匿名ユーザのアクセスを拒否する
「YES」→「NO」に変更
anonymous_enable=NO
31行目:ファイルシステムを変更するFTPコマンドを許可する
「#」(コメントアウト)を削除して有効化
write_enable=YES
35行目:アップロード時のパーミッション書き換え設定
「#」(コメントアウト)を削除して有効化
「022」であれば「000」に変更
local_umask=000
99行目:アスキーモードのアップロードを許可する
「#」(コメントアウト)を削除して有効化
ascii_upload_enable=YES
100行目:アスキーモードのダウンロードを許可する
「#」(コメントアウト)を削除して有効化
ascii_download_enable=YES
114行目:設定したディレクトリより上層への移動を禁止する
「#」(コメントアウト)を削除して有効化
chroot_local_user=YES
123行目:YESの場合、リストアップされたユーザはchrootの対象から除外される
「#」(コメントアウト)を削除して有効化
chroot_list_enable=YES
125行目:リストアップのファイルの場所を指定する
「#」(コメントアウト)を削除して有効化
chroot_list_file=/etc/vsftpd.chroot_list
131行目:サブフォルダを含む一括アップロード・ダウンロードを出来るようにする
「#」(コメントアウト)を削除して有効化
ls_recurse_enable=YES
最終行に設定を新規追加
use_localtime=YES
pasv_enable=NO
アクセス許可をするユーザを設定する
vi /etc/vsftpd.chroot_list
新規(空)ファイルとして開かれます。
今回は例として「jet-blog」ユーザを1行追加する。
vsftpdの再起動
systemctl restart vsftpd
WordPressのインストール
ダウンロード
cd /var/www/html sudo wget https://ja.wordpress.org/latest-ja.tar.gz
解凍
tar xvf latest-ja.tar.gz
ディレクトリの所有者をwww-dataに変更
chown -R www-data:www-data .
WordPress用のデータベースを作成
MariaDBにログイン
mysql -u root -p
WordPress用のデータベースを作成
create database wordpress default character set utf8;
WordPress用のユーザーを作成
GRANT ALL ON wordpress.* TO wordpress@localhost IDENTIFIED BY 'password'; FLUSH PRIVILEGES; quit;
WordPressの初期設定
http://localhost/wordpress
にブラウザでアクセスしてください。
「さあ、始めましょう!」をクリックしてください。
データベース名 : wordpress
ユーザー名 : wordpress
パスワード : password
を入力してください。
入力できたら「送信」をクリックしてください。
「インストール実行」をクリックしてください。
サイトのタイトル : お好きなタイトル名を入力
ユーザー名 : お好きなユーザー名を入力
パスワード : お好きなパスワードを入力
メールアドレス : お好きなメールアドレスを入力
検索エンジンでの表示 : 今回はチェックを入れます。
入力できたら「WordPress を インストール」をクリックしてください。
早速ログインしていきましょう。
さきほど作成したユーザー名とパスワードを入力して、「ログイン」をクリックしてください。
WordPressのインストールが成功しました。