ポートフォワーディングの設定
ブラウザから閲覧できるかを確認するためポートフォワーディングを設定する。
「設定」→「ネットワーク」→「ポートフォワーディング(P)」をクリック
「ホストポート」、「ゲストポート」をHTTP用に共に80を設定する
一般ユーザーからrootユーザーに切り替え
CentOSにログイン。環境構築のため一般ユーザーからrootユーザーに切り替え作業を行う。
# rootユーザーに切り替え
$ su -
:パスワードを入力
ファイアウォールの無効化
- ファイアウォールの状態確認
$ systemctl status firewalld
# Active: active (running) と表示されていたら起動中
- ファイアウォールを無効化
# 無効化
$ systemctl stop firewalld
# 状態を再確認。Active: inactive (dead) と表示されていたら止まっている。
$ systemctl status firewalld
- ファイアウォールの自動起動設定を確認・無効化
# 設定を確認。enabled と表示されていたら、次回起動時に自動起動するので無効化する。
$ systemctl is-enabled firewalld
# 設定を無効化。再度設定確認コマンドを実行し、disabled と表示されていたら、自動起動設定を無効化できています。
$ systemctl disable firewalld
Apacheのインストール
- インストール
dnf install -y httpd
- Apacheの起動
# 起動
$ systemctl start httpd
# 状態の確認。Active: active (running) と表示されていたら起動中。
$ systemctl status httpd
- Apacheの自動起動設定を有効化
# 有効化
$ systemctl enable httpd
# 設定を確認。enabled と表示されていたら、次回起動時に自動起動します。
$ systemctl is-enabled httpd
- Apacheにアクセス
http://localhost/ にブラウザでアクセス
Apacheのデフォルト画面が表示されます
PHPのインストール
- EPELリポジトリをインストール
RHELまたはCentOSの次期バージョン向けのEPELパッケージを提供するリポジトリをインストールします。
# 事前にリポジトリの一覧を表示し確認
$ dnf repolist
# リポジトリの詳細情報を一覧表示する
$ dnf repolist -v
# 有効および無効なリポジトリの両方を一覧表示する
$ dnf repolist all
# EPELリポジトリをインストール
# epel-nextは、将来のバージョンのパッケージをテストまたは利用したい場合に使用されることがあり、
特にCentOS Streamなどのローリングリリース向けに役立ちます。
$ dnf -y install epel-release epel-next-release
- Remiリポジトリをインストール
$ dnf -y install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
# Remiリポジトリがインストールされてるか確認
$ dnf repolist | grep remi
- PHP8.4をインストール
# インストール可能なPHPバージョンを確認する
$ dnf module list php
# 特定バージョンのRemiリポジトリを有効化する
$ dnf module reset php
$ dnf module enable php:remi-8.4
# PHPをインストール
$ dnf install php
# PHPが正しくインストールされたかどうか下記コマンドで確認
$ php -v
# この後追加モジュールをインストール(必要に応じて)
dnf install -y php-json php-mbstring php-zip php-gd php-pdo php-mysqlnd php-mysqli
SELinuxの無効化
ブラウザ上でPHPの動作を確認するためSELinuxを無効化する
- SELinux設定の確認
$ getenforce
# Enforcing と表示されていたら、SELinuxが有効
- 無効化の設定
$ vim /etc/selinux/config
# 下記のように設定を変更
SELINUX=enforcing
↓
SELINUX=disabled
- CentOS Sream_9を再起動
$ systemctl reboot
# 再度下記コマンドで設定を確認し、Disabledと表示されたら成功
$ getenforce
MariaDBのインストール
- MariaDB公式リポジトリをインストール
$ dnf install -y curl
$ curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
- MariaDBのインストール
$ dnf install -y MariaDB-server MariaDB-client
# バージョンを確認。エラーなく表示されれば成功
$ mariadb --version
# 起動と自動起動設定を有効化
$ systemctl start mariadb
$ systemctl enable mariadb
- 初期設定するために、セキュリティスクリプトを実行して、rootパスワードの設定や匿名ユーザーの削除などを行います
mariadb-secure-installation
rootパスワードの設定や匿名ユーザーの削除などを行います。下記サイトを参考にさせていただきました。
MariaDBが正常に動作しているか確認
ステータスが「active」と表示されれば、インストールは正常に完了
$ systemctl status mariadb
MariaDBにログイン
現状rootユーザーしかいないので新しくユーザーを追加します
- まずrootユーザーでMariaDBにログイン
$ mariadb -u root -p
- 新しいユーザーを追加
# ユーザー名とパスワードは任意で
# ホストは基本的にlocalhostを指定すればOK
$ CREATE USER '新しいユーザー名'@'ホスト' IDENTIFIED BY 'パスワード';
- ユーザーに権限を付与
$ GRANT ALL PRIVILEGES ON データベース名.* TO '新しいユーザー名'@'ホスト';
# すべてのデータベースに対して全権限を付与する場合は下記のように設定
$ GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost';
- 権限のリロード。権限を有効にするため、以下のコマンドを実行
$ FLUSH PRIVILEGES;
- テスト用DBの作成とサンプルデータの挿入
# テスト用データベースの作成
$ CREATE DATABASE testdb;
# テーブルの作成とサンプルデータの挿入
USE testdb;
CREATE TABLE test_table (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50)
);
INSERT INTO test_table (name) VALUES ('sample data');
ブラウザ上でDB接続を確認
index.phpをサーバー(デフォルトでは /var/www/html )にアップロードし、下記URLにアクセスしてサンプルデータが表示されれば成功
http://localhost
<?php
$dsn = 'mysql:host=localhost;dbname=testdb;charset=utf8';
$username = '【新しく追加したユーザー名】';
$password = '【追加したユーザーのパスワード】';
try {
// PDOオブジェクトを生成
$pdo = new PDO($dsn, $username, $password);
// エラーモードを例外に設定
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "接続成功<br>";
// テーブルの中身を取得して表示
$sql = "SELECT id, name FROM test_table";
$stmt = $pdo->query($sql);
if ($stmt->rowCount() > 0) {
// 結果を出力
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "id: " . $row["id"] . " - Name: " . $row["name"] . "<br>";
}
} else {
echo "0 件のレコード";
}
} catch (PDOException $e) {
echo "接続失敗: " . $e->getMessage();
}
?>
phpMyAdminのインストール
ついでにMySQLデータベースの接続クライアントツールであるphpMyAdminをインストール。これがあるといろいろ楽なので
- 必要なパッケージをインストール
$ dnf install -y php-json php-mbstring php-zip php-gd
- phpMyAdminのインストール
$ dnf --enablerepo=remi install -y phpMyAdmin
- phpMyAdminのアクセスを許可するため、Apacheの設定を編集
$ vi /etc/httpd/conf.d/phpMyAdmin.conf
# 下記のように編集
Require local
↓
Require all granted
# Apacheの再起動
$ systemctl restart httpd
http://localhost/phpMyAdmin にアクセスしてログインできれば成功
vsftpdのインストール
ついでにFTP接続できるようにします。CentOS Stream 9でFTPサーバーを有効にするには、vsftpdを使用します。
$ dnf install -y vsftpd
# FTPサーバーの起動と自動起動の設定
$ systemctl start vsftpd
$ systemctl enable vsftpd
初期設定を変更する際は /etc/vsftpd/vsftpd.conf を編集
FTP接続に自分はFileZillaを使用しています(自分的にはこれが一番使いやすい)
接続方法は各々で調べてやってみてください。そんなに難しくないはず。
参考文献
CentOS Stream 9 : MariaDB 10.5 : インストール : Server World
CentOS7にLAMP環境を構築する手順書
macOSでMariaDB
色々と参考にさせていただきました。ありがとうございます。