スポンサーリンク

CentOS8.2でWebサーバー&データベース&PHP7.4インストール方法

開発

CentOS8.x系統は、デフォルトでPHP7.2系統のPHPがインストールされますが、今回は最新の7.4系をインストールしてみます。

apacheのインストールとポート開放

まずはApache HTTPD本体のインストールを行います。

#dnf -y install httpd httpd-tools httpd-devel httpd-manual

インストールが終わったら、サービスを起動してみます。

# systemctl start httpd

問題なく起動できたら、
http://localhost/
にアクセスして、Welcomeメッセージが出てきたら成功です。

再起動後に自動的に起動するように下記の設定をしておきます。

# systemctl enable httpd

でも、このままだと外部からの接続ができません。
HTTPとついでにHTTPSの接続を有効にしておきましょう。

# firewall-cmd --add-service=http --permanent
# firewall-cmd --add-service=https --permanent
# firewall-cmd --reload

外部のPCからIPアドレスでアクセスしてみて、同じようにWellcomeメッセージが出てきたら成功です。

PHPのインストール

以下のように行います。

# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
# dnf module reset php
# dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
# dnf module install -y php:remi-7.4
# php -v
PHP 7.4.7 (cli) (built: Jun  9 2020 10:57:17) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

内容としては
CentOSのバージョンを確認。
インストール済みのPHPを削除。
remiリポジトリの登録
remiリポジトリのPHP7.4をインストール
インストールされたPHPのバージョンを確認
となります。

データベース(mariadb)のインストール

以下の3つのモジュールを組み込みます。

#dnf install -y mariadb-server mariadb mariadb-devel

いろいろ表示されると思いますが、最後に”完了しました!”と出ていればおそらく大丈夫でしょう。
次に、mariadbを起動&常時起動設定を行っておきます。

# systemctl start mariadb
# systemctl enable mariadb

次に、mariadbの初期設定を行います。

# mysql_secure_installation

こちらは、昔からあるいつもの奴です。メッセージに従って設定してください。
設定が終わったらとりあえずrootでログインしてみて、データベースの一覧を表示してみましょう。

# mysql -u root -p
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.000 sec)

総合的な動作確認

とりあえず、動くかどうかの確認で、phpmyadminを入れてみます。
phpmyadminをダウンロードします(URLは変わる可能性がありますので、随時調べて入れましょう)

#cd /var/www/html
# wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.zip
# unzip phpMyAdmin-5.0.2-all-languages.zip
# rm phpMyAdmin-5.0.2-all-languages.zip

ここで、http://localhost/phpMyAdmin-5.0.2-all-languages にアクセスすると設定画面が出てくるはずですが…
mysqli 拡張がありません。って言われちゃいましたので入れます。

# dnf install -y php-mysqli

もう一度アクセスするとログイン画面が出てきます。ログインできることを確認しましょう。
新しいテーブルやユーザーを作成できることを確認します。
因みに、phpMyAdminは結構セキュリティーホールになったりする場合が多いので、外部からアクセスできるサーバーの場合は、アプリのログインとは別に何かしらの接続制限を設けることをお勧めします。

[おまけ]CakePHP3を動かしてみる

私はCakePHPを使うことが多いので、CakePHP3も入れてみます。
まず、php-intlモジュールが必須なので追加でインストールします。

# dnf install -y php-intl

composer経由でインストールしますが、コマンドは公式サイトに書いてありますので、その通りにやれば良いでしょう。
https://getcomposer.org/download/

composer.pharをダウンロードできたら、以下の場所に移動させて、いつでも使える状態にしておきます。

# mv composer.phar /usr/local/bin/composer

composer経由でcakephpを入れてみます。現在の最新版の3.8を入れてみます。

# composer self-update && composer create-project --prefer-dist cakephp/app:^3.8 my_app_name

これで、
http://localhost/my_app_name
にアクセスするとcakeの初期画面が表示されるはずです。

開発
スポンサーリンク
CodeLabをフォローする
スポンサーリンク
CodeLab技術ブログ