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

FreeBSD-13.0-RELEASEにapache2,php,postgresql,openldapをインストール

(更新) (公開)

はじめに

FreeBSD-13.0-RELEASE

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


【2023年11月更新】

ブログ投稿当時は存在したphp74が存在しなくなりました。その他、ブログ投稿当時と異なったバージョンがインストールされるため、新記事「【FreeBSD13+php74】pkgをビルドしてDeprecatedで消えたphp7.4.16をインストール」を追加しました。

apache2インストール から # vi /usr/local/etc/apache24/modules.d/001_mod-php.conf の直前までの手順は、新記事を確認してください。


apache2インストール

# pkg update
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y

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


# pkg install -y apache24
# sysrc apache24_enable="YES"

sysrcコマンド:

apache24_enable="YES"を/etc/rc.confに追加します。

vi等エディタで手動で行っても同じことです。


phpインストール

# pkg install -y php74 php74-extensions php74-gd php74-mbstring php74-pear php74-gettext php74-iconv

php74-extensionsによって、

libedit: 3.1.20210216,1

libiconv: 1.16

php74: 7.4.16

php74-ctype: 7.4.16

php74-dom: 7.4.16

php74-extensions: 1.0

php74-filter: 7.4.16

php74-iconv: 7.4.16

php74-json: 7.4.16

php74-opcache: 7.4.16

php74-pdo: 7.4.16

php74-pdo_sqlite: 7.4.16

php74-phar: 7.4.16

php74-posix: 7.4.16

php74-session: 7.4.16

php74-simplexml: 7.4.16

php74-sqlite3: 7.4.16

php74-tokenizer: 7.4.16

php74-xml: 7.4.16

php74-xmlreader: 7.4.16

php74-xmlwriter: 7.4.16

sqlite3: 3.34.1,1

がインストールされます。


php74-gd php74-mbstring php74-pear php74-gettext php74-iconv

によって、さらに、

fontconfig: 2.13.93,1

freetype2: 2.10.4

giflib: 5.2.1

jbigkit: 2.1_1

jpeg-turbo: 2.0.6

libargon2: 20190702

libgd: 2.3.1,1

oniguruma: 6.9.6

pcre2: 10.36

php74-gd: 7.4.16

php74-gettext: 7.4.16

php74-mbstring: 7.4.16

php74-pear: 1.10.12

php74-zlib: 7.4.16

png: 1.6.37_1

tiff: 4.2.0

webp: 1.2.0

がインストールされます。


php74-gd:JPEG、PNG、GIFなどの画像処理ライブラリ拡張モジュールです。

php74-mbstring:マルチバイト文字を使用できるようにする拡張モジュールです。

php74-pear:PEAR (PHP Extension and Application Repository)を利用できるモジュールです。

PEARとは、クラスライブラリ群のことです。例えば、phpのコードでtarを扱えるようになるArchive_Tarなどです。

php74-gettext:複数言語対応拡張モジュールです。

php74-iconv:文字エンコーディング変換用拡張モジュールです。


php-pgsqlインストール

# pkg install -y php74-pgsql php74-pdo_pgsql

これ以前に

postgresql*-server postgresql*-client

がpkg installされている場合、削除されて、

postgresql12-client-12.6

がインストールされます。(2021年5月時点)

php74-pdo_pgsql は、PDOを使って、postgresqlを扱うことができる拡張モジュールです。

PDOとは、「PHP Data Objects」略で、PHPからデータベースの種類、バージョンを意識せずに扱える機能です。


postgresql12-serverインストール

# pkg install -y postgresql12-server
# sysrc postgresql_enable=yes
# /usr/local/etc/rc.d/postgresql initdb

/var/db/postgres/data12が作成されます。
/var/db/postgres/data12は、設定、データベースのバイナリデータがある領域です。


openldap-client-2.4.57インストール php-ldap対応

# pkg install -y php74-ldap

openldap-client: 2.4.58
php74-ldap: 7.4.16
がインストールされます。
(2021年5月時点)


バージョン確認

# postmaster -V
postgres (PostgreSQL) 12.6

# httpd -v
Server version: Apache/2.4.46 (FreeBSD)

# ldapsearch -VVV
ldapsearch: @(#) $OpenLDAP: ldapsearch 2.4.58 (Apr 15 2021 01:08:40) $

# curl -V
curl 7.75.0 (amd64-portbld-freebsd13.0) libcurl/7.75.0 OpenSSL/1.1.1k zlib/1.2.11 nghttp2/1.43.0

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


その他作業

apache-php対応

# pkg install -y mod_php74

php-curl対応

# pkg install -y php74-curl

# vi /usr/local/etc/apache24/modules.d/001_mod-php.conf

以下を書き込み、保存します。

<IfModule dir_module>
   DirectoryIndex index.php index.html
   <FilesMatch "\.php$">
       SetHandler application/x-httpd-php
   </FilesMatch>
   <FilesMatch "\.phps$">
       SetHandler application/x-httpd-php-source
   </FilesMatch>
</IfModule>

# apachectl configtest
Performing sanity check on apache24 configuration:
Syntax OK

# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

phpのエラーを非表示から表示するに変更します。

# vi /usr/local/etc/php.ini
display_errors = On
display_startup_errors = On

phpのエラーログは、

/var/log/httpd-error.log

[php7:error]・・・

で出力されます。


# apachectl restart

info.phpを作成します。

# vi /usr/local/www/apache24/data/info.php
<?php
  phpinfo();
?>

初期設定では、<?php か <?= から始めないとphpプログラムと認識されません。

php.ini が short_open_tag = On の場合、<? から始めてもOKになります。

なお、phpのコードだけの場合、最後の ?> は有っても無くても構いません。


info.php確認

http://[FreeBSD13のIPアドレス]/info.php
へブラウザからアクセスします。


phpにpostgresql,openldap,curlが組み込まれているのが確認できます。
成功です!

info.php1


info.php2


info.php3

loading...