- 記事一覧 >
- ブログ記事
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に組み込まれています。
できました!
その他、宣伝、誹謗中傷等、当方が不適切と判断した書き込みは、理由の如何を問わず、投稿者に断りなく削除します。
書き込み内容について、一切の責任を負いません。
このコメント機能は、予告無く廃止する可能性があります。ご了承ください。
コメントの削除をご依頼の場合はTwitterのDM等でご連絡ください。