- 記事一覧 >
- ブログ記事
Ubuntu 20.04.2.0にapache2,php,postgresqlをインストール
はじめに
Ubuntu 20.04.2.0(Desktop)
に
・Apache 2.4.41
・PHP 8.0.3
・PostgreSQL 12.6
インストールを行います。
作業時期は、2021年4月ですので、
時期によっては、バージョンが異なっていたり、
うまくいかなかったりするかもしれません。
apache2インストール
# apt update
unattended-upgrades が既に80番ポートを使っているため、killしました。
unattended-upgrades は、Ubuntuの無人アップグレード機能です。
# ps ax | grep unattended
778 ? Ssl 0:00 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
1780 pts/0 S+ 0:00 grep --color=auto unattended
# kill 778
# apt install apache2
Do you want to continue? [Y/n] Y(or エンター)
※以降基本的にYのため、-yを付けます。
-y は、? [Y/n] のようなときに自動的に Y とするオプションです。
【パッケージ管理コマンド aptとapt-getの違い】
Debian管理者ハンドブックによると「aptはapt-getの持っていた設計上のミスを克服しています」と記載されています。
Ubuntuにおいては、バージョン14.04よりaptコマンドの使用が推奨されています。
よって、aptを使うのが正解になります。
OS 起動時の apt update と unattended-upgrade を抑制
不要と思ってやっただけで、必須ではありません。
# systemctl edit apt-daily.timer
# systemctl edit apt-daily-upgrade.timer
どちらも次の内容で保存
[Timer]
Persistent=false
→CTRL+0, エンター, CTRL+X
# systemctl daemon-reload
※恒久的に削除する場合
# apt remove unattended-upgrades
postgresqlインストール
# apt -y install postgresql postgresql-contrib
postgresql-contribは、pgbenchなどの便利ツール群です。
# mkdir /var/lib/postgresql/data
# chown postgres:postgres /var/lib/postgresql/data
# su - postgres
$ /usr/lib/postgresql/12/bin/initdb --encoding='UTF-8' -D /var/lib/postgresql/data
$ exit
phpインストール
# apt -y install software-properties-common
software-properties-commonについて調べると、
「このソフトウェアは、使用されているaptリポジトリの抽象化を提供します。これにより、ディストリビューションと独立したソフトウェアベンダーのソフトウェアソースを簡単に管理できます。」
とあり、いまいち良く分かりませんでしたが・・・要するに、software-properties-common→いろいろインストールされる→この後必要な add-apt-repository が使えるようになるから必要な手順になります。
サードパーティ製の Ubuntu 非公式のリポジトリの情報を Ubuntu に教えたい場合には、add-apt-repository コマンドを使ってリポジトリ情報を追加することができます。
ppa:ondrej/phpリポジトリを追加します。
# add-apt-repository ppa:ondrej/php
Press [ENTER] to continue or Ctrl-c to cancel adding it.
ppaとは、Personal Package Archives の略で、個人が作成したパッケージとそれを保管する場所の意味です。
ondrejは、オンドレイ(アンドレア?)さんです。
# apt update
# apt -y install php8.0 php8.0-gd php8.0-mbstring php8.0-common
php-pgsql対応
# apt -y install php8.0-pgsql
php-curl対応
# apt -y install curl
# apt -y install php8.0-curl
バージョン確認
# php -v
PHP 8.0.3 (cli) (built: Mar 5 2021 07:54:13) ( NTS )
# apache2 -v
Server version: Apache/2.4.41 (Ubuntu)
# su - postgres -c "/usr/lib/postgresql/12/bin/postmaster -V"
postgres (PostgreSQL) 12.6 (Ubuntu 12.6-0ubuntu0.20.04.1)
# curl -V
curl 7.68.0 (x86_64-pc-linux-gnu) libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3
インストールできました!
phpが動作して、postgresqlの機能が組み込まれていることを確認します。
info.php作成
# vi /var/www/html/info.php
<?php
phpinfo();
?>
初期設定では、<?php か <?= から始めないとphpプログラムと認識されません。
php.ini が short_open_tag = On の場合、<? から始めてもOKになります。
なお、phpのコードだけの場合、最後の ?> は有っても無くても構いません。
phpのエラーを非表示から表示するに変更
# vi /etc/php/8.0/apache2/php.ini
display_errors = On
display_startup_errors = On
apache再起動
# service apache2 restart
http://192.168.xxx.xxx/info.php
でアクセスします。
あるいは、UbuntuのGUIから
http://localhost/info.php
です。
PostgreSQLが組み込まれています。
成功です!
【phpのエラー】
phpのエラーは、何も設定変更していない現在の場合、
/var/log/apache2/error.log
へ
[php:error]・・・
で出力されました。
ちなみに応答ヘッダを見てみますと・・・
# curl --head http://localhost/info.php
HTTP/1.1 200 OK
Date: Tue, 13 Apr 2021 13:53:44 GMT
Server: Apache/2.4.41 (Ubuntu)
Content-Type: text/html; charset=UTF-8
Server: ヘッダからPHPの存在が分からず、
X-Powered-By ヘッダは付きません。
その他、宣伝、誹謗中傷等、当方が不適切と判断した書き込みは、理由の如何を問わず、投稿者に断りなく削除します。
書き込み内容について、一切の責任を負いません。
このコメント機能は、予告無く廃止する可能性があります。ご了承ください。
コメントの削除をご依頼の場合はTwitterのDM等でご連絡ください。