1. 記事一覧 >
  2. ブログ記事
category logo

CentOS8.3にapache2,php,postgresql,openldap-clientをインストール

(更新) (公開)

はじめに

CentOS Linux release 8.3.2011

・Apache 2.4.37
・PHP 7.4.6
・PostgreSQL 13.2
・OpenLDAP 2.4.46
インストールを行います。
作業時期は、2021年5月ですので、
時期によっては、バージョンが異なっていたり、
うまくいかなかったりするかもしれません。


インストール準備

root権限で作業していますので、全てsudoは省略しています。


2023年10月現在

# dnf check-update

Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

のエラーになり、リポジトリを書き換えないと進まないことに気付いたため、以下追記です。

ミラーリストをコメントアウトします。

# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*

リポジトリ参照先を vault.centos.org に変更します。

# sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

2023年10月追記はここまでです。


アップデート可能なパッケージを調査します。

# dnf check-update

表示された場合、dnf updateを行い、全てのパッケージを最新にしておきます。

# dnf update

タイムゾーンを設定します。

# timedatectl set-timezone Asia/Tokyo

※この後インストールするPostgreSQLの設定postgresql.confに timezone = 'Asia/Tokyo' が設定されます。


apache2インストール

# dnf install httpd
Is this ok [y/N]:y

※以降基本的にYのため、-yを付けます。
 -y は、? [y/N]: のようなときに自動的に y とするオプションです。


phpインストール

どのようなバージョンがあるか調べます。

# dnf module list php
CentOS Linux 8 - AppStream
Name    Stream     Profiles                      Summary
php     7.2 [d]    common [d], devel, minimal    PHP scripting language
php     7.3        common [d], devel, minimal    PHP scripting language
php     7.4        common [d], devel, minimal    PHP scripting language

7.2 [d] となっていますが、7.2がデフォルトであることを示しています。

「AppStream」とは、Red Hat Enterprise Linux 8 標準リポジトリの内の一つ AppStream リポジトリです。もう一つは、BaseOS リポジトリです。


このままインストールすると、php-7.2になりますので、7.4を有効にします。

# dnf -y module enable php:7.4

フルで書く場合、フォーマットは、

# dnf module [Command] [Name]:[Stream]/[Profile]

ですので、

# dnf module enable php:7.4/common

になります。

commonは、[d] でデフォルト扱いですので、省略した場合、Profile=common です。


# dnf -y module install php

先ほど、php:7.4/commonを有効にしたため、

php:7.4/commonがインストールされます。

# dnf module install php:7.4

あるいは、

# dnf module install php:7.4/common

でも同じ結果です。

Profile=devel (# dnf module install php:7.4/devel)

の場合、php本体はインストールされず、

perl-*

php-devel-*

zlib-devel-*

等がインストールされました。


Profile=minimal (# dnf module install php:7.4/minimal)

の場合、

php-cli-7.4**

php-common-7.4*

がインストールされました。cliとは、コマンドライン版phpを指します。Webで動いているのは、「CGI版」です。


インストールされたことを確認します。

# dnf module list php
CentOS Linux 8 - AppStream
Name    Stream     Profiles                          Summary
php     7.2 [d]    common [d], devel, minimal        PHP scripting language
php     7.3        common [d], devel, minimal        PHP scripting language
php     7.4 [e]    common [d] [i], devel, minimal    PHP scripting language

common [d] [i] の [i] はインストールされていることを示します。


postgresqlインストール

postgresqlは、気が利いてまして、
""
ここ
・インストールしたいバージョン
・OS
・CPUの種類
を選択するとコピペでインストールできるようにコマンドが出てきます。


pgdg-redhatリポジトリをインストールします。

# dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

既存のPostgreSQLモジュールを無効にします。
⇒CentOS(RedHat)が配布するpostgresqlの扱いを停止します。

# dnf -qy module disable postgresql

-y : 全ての問い合わせに対して「yes」を選択したとみなす

-q : 実行時にメッセージを出力しない


postgresql13をインストールします。

# dnf install -y postgresql13-server

DBを初期化します。

# /usr/pgsql-13/bin/postgresql-13-setup initdb

/var/lib/pgsql/13/data がデータ領域で、base 等のディレクトリ、postgresql.conf 等のファイルが作成されます。


起動します。

# systemctl enable postgresql-13
# systemctl start postgresql-13

openldapインストール

openldap.x86_64 : LDAP support libraries

openldap.i686 : LDAP support libraries

openldap-clients.x86_64 : LDAP client utilities

openldap-devel.i686 : LDAP development libraries and header files

openldap-devel.x86_64 : LDAP development libraries and header files

perl-Mozilla-LDAP.x86_64 : LDAP Perl module that wraps the OpenLDAP C SDK

としか表示されず、クライアントしか有りません。

openldap-serversは、Identity Management(Red Hat版Active Directoryのようなもの)で使うRed Hat Directory Server推しになり、リポジトリ管理をやめたようです。

・ソースコードをビルド

・389 Directory Serverなどで代替

など案は有りますが、今回、LDAP Serverのインストールは見送ります。


Open LDAP クライアントだけインストールします。

# dnf -y install openldap-clients

phpにpgsql,ldap機能組み込み

# dnf -y install php-pgsql php-ldap

バージョン確認

# php -v
PHP 7.4.6 (cli) (built: May 12 2020 08:09:15) ( NTS )

# /usr/pgsql-13/bin/postmaster -V
postgres (PostgreSQL) 13.2

# httpd -v
Server version: Apache/2.4.37 (centos)

# ldapsearch -VVV
ldapsearch: @(#) $OpenLDAP: ldapsearch 2.4.46 (Jul 20 2020 20:38:27) $

# curl -V
curl 7.61.1 (x86_64-redhat-linux-gnu) libcurl/7.61.1 OpenSSL/1.1.1g zlib/1.2.11 brotli/1.0.6 libidn2/2.2.0 libpsl/0.20.2 (+libidn2/2.2.0) libssh/0.9.4/openssl/zlib nghttp2/1.33.0

※curlは最初から入っていました。


phpinfo確認

# systemctl start httpd
# systemctl enable httpd
# systemctl start php-fpm
# systemctl enable php-fpm

phpinfo()のファイルを作成します。 ※apache - php 関連の設定は、何もしなくても /etc/httpd/conf.d/php.conf に書かれています。

# vi /var/www/html/info.php
<?php
  phpinfo();
?>

ファイアウォールの http(80番ポート) https(443番ポート)を開けておきます。

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

http://[IPアドレス]/info.php へブラウザでアクセス


""

curlは最初から入っていて、最初(php:7.4/common)からphpに組み込まれています。


""


""


できました!

loading...