😆
centOS Strem9でApache,PHP,MySQLを設定する
centOS9の設定をしなければならない機会があり、サーバー全く触ったことがない + リリースされたばかりであまり記事などがないcentOS9だったため、かなり苦戦しました。
自分への備忘録としてまとめておきます。
- Apache 2.4
- PHP 7.4
- MySQL 8.0.22
サーバへの接続
- ターミナルを開いてsshで接続する
$ ssh root@IPアドレス
The authenticity of host 'IPアドレス (IPアドレス)' can't be established.
ED25519 key fingerprint is
SHA256:**********************.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?
-
yesを打つ
-
パスワードを入力
root@IPアドレス's password:
Apacheインストール
- 提供されているApache httpdを確認する
$ yum info httpd
Available Packages
Name : httpd
Arch : x86_64
Version : 2.4.6
Release : 67.el7.centos.6
Size : 2.7 M
Repo : base/7/x86_64
Summary : Apache HTTP Server
URL : http://httpd.apache.org/
License : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible
: web server.
- Apache httpd 2.4をインストールする
$ yum -y install httpd
- バージョン確認
$httpd -version
Server version: Apache/2.4.6 (CentOS)
Server built: Oct 19 2017 20:39:16
#PHPインストール
- centOSバージョン確認
$ cat /etc/redhat-release
CentOS Stream release 9
- バージョンに合わせたepelのインストール
どれをインストールすればいいかは公式サイトに載っています。
epel公式サイト
※下記はcentOS9の場合
$ yum config-manager --set-enabled crb
$ yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
- インストールできたか確認
$ sudo yum repolist all | grep -i epel
epel Extra Packages for Enterprise Linux 9 - x86_64 enabled
epel-debuginfo Extra Packages for Enterprise Linux 9 - x86_64 disabled
epel-source Extra Packages for Enterprise Linux 9 - x86_64 disabled
epel-testing Extra Packages for Enterprise Linux 9 - Testing disabled
epel-testing-debuginfo Extra Packages for Enterprise Linux 9 - Testing disabled
epel-testing-source Extra Packages for Enterprise Linux 9 - Testing disabled
リポジトリのstatusがenabledの時は使用できるので何もしなくて良い。disabledの時はインストールされているけど、無効なので有効にする必要がある。
有効にする場合
$ sudo yum-config-manager --enable epel
$ sudo yum repolist epel
- remiのインストール
epelと同様にcentOSのバージョンに合わせる必要がある。
公式サイト
※下記は9の場合
$ yum install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
$ yum config-manager --set-enabled remi
- インストールできたか確認
$ sudo yum repolist all | grep -i remi
remi Remi's RPM repository for Enterprise Linux enabled
remi-debuginfo Remi's RPM repository for Enterprise Linux disabled
remi-modular Remi's Modular repository for Enterprise Li enabled
remi-modular-debuginfo Remi's Modular repository for Enterprise Li disabled
remi-modular-test Remi's Modular testing repository for Enter disabled
remi-modular-test-debuginfo Remi's Modular testing repository for Enter disabled
remi-safe Safe Remi's RPM repository for Enterprise L enabled
remi-safe-debuginfo Remi's RPM repository for Enterprise Linux disabled
remi-test Remi's test RPM repository for Enterprise L disabled
remi-test-debuginfo Remi's test RPM repository for Enterprise L disabled
- phpインストール
リスト表示
$ yum module list reset php -y
Remi's Modular repository for Enterprise Linux 9 - x86_64
Name Stream Profiles Summary
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
php remi-8.1 common [d], devel, minimal PHP scripting language
- 6にある中から使いたいphpを有効にする(今回はphp7.4)
$yum module enable php:remi-7.4
- phpをインストール
$ yum install php
Installed:
libsodium-1.0.18-8.el9.x86_64
nginx-filesystem-1:1.20.1-9.el9.noarch
oniguruma5php-6.9.7.1-1.el9.remi.x86_64
php-7.4.27-1.el9.remi.x86_64
php-cli-7.4.27-1.el9.remi.x86_64
php-common-7.4.27-1.el9.remi.x86_64
php-fpm-7.4.27-1.el9.remi.x86_64
php-json-7.4.27-1.el9.remi.x86_64
php-mbstring-7.4.27-1.el9.remi.x86_64
php-opcache-7.4.27-1.el9.remi.x86_64
php-pdo-7.4.27-1.el9.remi.x86_64
php-sodium-7.4.27-1.el9.remi.x86_64
php-xml-7.4.27-1.el9.remi.x86_64
Complete!
※途中 [Is this ok [y/N]と聞かれるが全部yで答える
- インストールできたか確認
$php -v
PHP 7.4.27 (cli) (built: Dec 14 2021 17:17:06) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.27, Copyright (c), by Zend Technologies
MYSQLインストールと設定
- インストール
$ yum -y install mysql
$ yum -y install mysql-server
- インストールできたか確認
$ mysqld --version
/usr/libexec/mysqld Ver 8.0.22 for Linux on x86_64 (Source distribution)
- mysqlの起動
$ systemctl start mysqld
- 起動の確認
$ systemctl status mysqld
● mysqld.service - MySQL 8.0 database server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor p>
Active: active (running) since Fri 2022-01-07 11:05:55 JST; 11s ago
...
※ターミナルの場合一番下に「lines 1-15/15 (END)」が出てきて入力できなくなるが、「q」を押すと消える
Activeの部分が「active(running)」になっていれば起動している
- rootユーザーでログイン
$ mysql -u root
- パスワードの変更
mysql> set password for 'root'@'localhost' = '*********';
Query OK, 0 rows affected (0.02 sec)
※password関数はMySQL ver5.6.7時点で廃止されているので使えない
// これはエラーになる
mysql> update user set password=password('********') where user = 'root';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('********') where user = 'root'' at line 1
- DBの作成
mysql> create database DB名;
- ユーザーの作成
mysql> create user 'ユーザー名'@'localhost' identified with mysql_native_password by 'つけたいパスワード';
- ユーザーに権限を付与
mysql> grant all on `データベース名`.* to 'ユーザー名'@'localhost' with grant option;
- 変更を反映
mysql> flush privillages;
11.mysqlを閉じる
mysql> exit
Bye
- サーバーを停止する
$ systemctl stop mysqld
Discussion