VirtualboxにUbuntuを入れて仮サーバーを構築しています。

OSはUbuntu 22.04。以前からCentOSを使用していたのですが、開発が止まるそうなのでRHELから別に派生したRockyLinuxかMiracleLinuxも一応考え中。

Webサーバーも使えるようにapache2、mariadb、ftp、phpをインストール。

【apache2】

apt -y install apache2
vi /etc/apache2/conf-enabled/security.conf

変更
ServerTokens Prod

再起動
systemctl restart apache2
※その他設定は今後行う

【mariadb】

apt -y install mariadb-server
vi /etc/mysql/mariadb.conf.d/50-server.cnf

確認
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci

再起動
systemctl restart mariadb

【vsftpd】

apt -y install vsftpd
vi /etc/vsftpd.conf

#コメント解除
write_enable=YES

コメント解除
chroot_local_user=YES
chroot_list_enable=YES

追記
allow_writeable_chroot=YES

コメント解除
chroot_list_file=/etc/vsftpd.chroot_list

コメント解除
ls_recurse_enable=YES

最終行へ追記
local_root=public_html

vi /etc/vsftpd.chroot_list
許可するユーザーを記載
〇〇〇〇 ← Linuxユーザー名

再起動
systemctl restart vsftpd

【PHP】

apt -y install php8.1 php8.1-mbstring php-pear

ネットにあるような基本的設定を行いある程度終了。
 

まずは確認から。

apache2が動作しているかを確認し、ブラウザにてゲストOSのIPアドレスを入力してみるとapache2のデフォルトページが表示。つまり動作していることが確認取れました。
 

次にmariadbの動作確認。これはコマンドを入力してみることに。

root@virtualBox:~# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 80
Server version: 10.6.11-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

返答があるため確認終了。
 

次にftpの確認。ホストOS側にFTPクライアントソフトを利用してゲストOSのIPアドレスとユーザー情報を入力。

ログインが確認できたらapache2のドキュメントルート /var/www/htmlディレクトリまで移動し、index.htmlを編集。

所がここでエラーが発生。パーミッションにより書き込みが禁止されていました。FTPで変更しようともこれも拒否。

この場合は、ゲストOSからコマンドでディレクトリのパーミッションを変更するよ良いそうです。

cd /var/www
chmod -R 777 html

変更後はindex.htmlの編集、新規ファイル作成も確認できました。
 

次にphpの確認。バージョン確認のコマンドを入力してバージョンが表示すればインストール確認はOK。

php -v

 

apache2のドキュメントルートにphpファイルを作成し、ブラウザで表示するか確認すると、ここで無反応で真っ白な状態でした。

phpはインストールするだけではダメなようで、使用するための関連モジュールもインストールして設定を行う必要があるんだそう。

apt -y install libapache2-mod-php
systemctl reload apache2

 

FTPでphpファイルを作成し、その中にphpinfo()関数を入れてブラウザ確認すると、PHPの情報が表示しました。これでWebサーバーはひとまず終了。