PHPをインストールし、Webプログラムを動かそう!
ここでは、PHP8.1の導入手順を掲載しています。
PHPとは…?
"PHP:Hypertext Preprocessor"の略称で、オープンソースにより開発されているスクリプト言語です。
PHPを利用することで、HTMLを動的に生成したり、サーバ側で動作するWebアプリケーションを開発することが可能です。
非常に動作が軽快で、データベースとの連携が比較的容易に行えるのが特徴と言えるでしょう。
スクリプトの構文はC言語に似ています。
PHPのインストール
2024年01月12日現在、最新版は8.3.1です。RHELは安定志向のため、インストールされるPHPは少し前のバージョンとなります。AlmaLinuxも同様です。
ちなみにRHEL8では、インストールするPHPのバージョンを選択することが可能だったのですが、RHEL9では1種類しか出てこないみたいです。
[root@al9 ~]# dnf -y module reset php
[root@al9 ~]# dnf module list php
Last metadata expiration check: 2:02:39 ago on Fri Jan 12 13:54:20 2024. AlmaLinux 9 - AppStream Name Stream Profiles Summary php 8.1 common [d], devel, minimal PHP scripting language Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
[d]と付いているものが標準でインストールされます。今回の場合は8.1ですね。
[root@al9 ~]# dnf -y module install php:8.1
Installed:
nginx-filesystem-1:1.20.1-14.el9_2.1.alma.1.noarch
oniguruma-6.9.6-1.el9.5.x86_64
php-cli-8.1.14-1.module_el9.2.0+24+ca6bd7c2.x86_64
php-common-8.1.14-1.module_el9.2.0+24+ca6bd7c2.x86_64
php-fpm-8.1.14-1.module_el9.2.0+24+ca6bd7c2.x86_64
php-mbstring-8.1.14-1.module_el9.2.0+24+ca6bd7c2.x86_64
php-xml-8.1.14-1.module_el9.2.0+24+ca6bd7c2.x86_64 Complete!
データベースと連携するためのモジュールもインストールしておきます。
[root@al9 ~]# dnf -y install php-mysqlnd
Installed:
php-mysqlnd-8.1.14-1.module_el9.2.0+24+ca6bd7c2.x86_64
php-pdo-8.1.14-1.module_el9.2.0+24+ca6bd7c2.x86_64 Complete!
PHPの設定
続いて、設定を行います。
[root@al9 ~]# vi /etc/php.ini
expose_php = On
↓
expose_php = Off
;error_log = php_errors.log
↓
error_log = /var/log/httpd/php-error.log
[Data]
;date.timezone =
↓
date.timezone = Asia/Tokyo
[mbstring]
;mbstring.language = Japanese
;mbstring.internal_encoding =
;mbstring.http_input =
;mbstring.http_output =
;mbstring.encoding_translation = Off
;mbstring.detect_order = auto
;mbstring.substitute_character = none
↓
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = pass
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none
[root@al9 ~]# vi /etc/php-fpm.d/www.conf
;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0660
↓
listen.owner = apache
listen.group = apache
listen.mode = 0666
Apacheの起動
ここまで設定が終わったら、PHPとApacheを起動します。
[root@al9 ~]# systemctl enable --now php-fpm
Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service.
[root@al9 ~]# systemctl enable --now httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
[root@al9 ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; preset: disabled)
Drop-In: /usr/lib/systemd/system/httpd.service.d
mqphp-fpm.conf
Active: active (running) since Fri 2024-01-12 16:04:21 JST; 9s ago
Docs: man:httpd.service(8)
Main PID: 3299 (httpd)
Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes served/sec: 0 B/sec"
Tasks: 213 (limit: 23048)
Memory: 38.1M
CPU: 418ms
CGroup: /system.slice/httpd.service
tq3299 /usr/sbin/httpd -DFOREGROUND
tq3300 /usr/sbin/httpd -DFOREGROUND
tq3301 /usr/sbin/httpd -DFOREGROUND
tq3302 /usr/sbin/httpd -DFOREGROUND
mq3303 /usr/sbin/httpd -DFOREGROUND
動作の確認
きちんとApacheが動いているかを確認しましょう。
まず、はじめから入っている不要なファイルを削除します。
[root@al9 ~]# rm -f /etc/httpd/conf.d/welcome.conf
[root@al9 ~]# rm -f /var/www/error/noindex.html
HTMLのテストファイルを作成します。
[root@al9 ~]# vi /var/www/html/index.html
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>HTMLテスト</title> </head> <body> <a href="test.cgi">CGI</a> <a href="test.shtml">SSI</a> <a href="test.php">PHP</a> </body> </html>
CGIのテストファイルを作成します。
[root@al9 ~]# vi /var/www/html/test.cgi
#!/usr/bin/perl
print "Content-type: text/html\n\n"; print "<html>\n"; print "<head>\n"; print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n"; print "<title>CGIテスト</title>\n"; print "</head>\n"; print "<body>\n"; print "CGIテスト\n"; print "</body>\n"; print "</html>\n";
[root@al9 ~]# chmod +x /var/www/html/test.cgi
SSIのテストファイルを作成します。
[root@al9 ~]# vi /var/www/html/test.shtml
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">> <title>SSIテスト</title> <body> SSIテスト <!--#config timefmt="%Y/%m/%d %H:%M:%S" --> <!--#echo var="DATE_LOCAL" --> </body> </html>
PHPのテストファイルを作成します。
[root@al9 ~]# vi /var/www/html/test.php
<?php phpinfo(); ?>
ここまでできたら、ブラウザのアドレスバーにサーバのIPアドレスを入れて接続してみましょう。
全てのページがきちんと表示されればOKです。されない場合はどこか設定が間違っているので、見直しましょう。
動作が確認できたら、テストページは削除しておきましょう。
[root@al9 ~]# rm -f /var/www/html/index.html /var/www/html/test.cgi /var/www/html/test.shtml /var/www/html/test.php
これで、Webサーバの構築はおしまいです。
[広告]
トップページ
AlmaLinux 9
○インストール準備
○仮想化準備(VMware)
○仮想化準備(Hyper-V)
○仮想化準備(Proxmox)
○基本操作
○導入
○セキュリティ対策
○Dynamic DNS
○NTPサーバ
○データベース
○WEBサーバ
○FTPサーバ
○メールサーバ
○DNSサーバ
○ブログシステム
○その他