PHPをインストールし、Webプログラムを動かそう!
ここでは、PHP7.4の導入手順を掲載しています。
PHPとは…?
"PHP:Hypertext Preprocessor"の略称で、オープンソースにより開発されているスクリプト言語です。
PHPを利用することで、HTMLを動的に生成したり、サーバ側で動作するWebアプリケーションを開発することが可能です。
非常に動作が軽快で、データベースとの連携が比較的容易に行えるのが特徴と言えるでしょう。
スクリプトの構文はC言語に似ています。
PHPのインストール
2023年03月08日現在、最新版は8.2.3です。RHELは安定志向のため、インストールされるPHPは少し前のバージョンとなります。Rocky Linuxも同様です。
ちなみにRHEL8では、インストールするPHPのバージョンを選択することが可能です。まずはどのバージョンがインストール可能か確認してみましょう。
[root@rl8 ~]# dnf module reset php
[root@rl8 ~]# dnf module list php
Rocky 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 php 8.0 common [d], devel, minimal PHP scripting language ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled
[d]と付いているものが標準でインストールされます。今回の場合は7.2ですね。
任意のバージョンをインストールする場合は、インストール時にバージョン番号を記載します。今回は、標準でインストールできる中で最新の「7.4」をインストールしてみます。
その他のバージョン(8.0など)をインストールする場合は赤字の番号を変更してください。
[root@rl8 ~]# dnf module -y install php:7.4
インストール済み:
nginx-filesystem-1:1.14.1-9.module+el8.4.0+542+81547229.noarch
oniguruma-6.8.2-2.el8.x86_64
php-cli-7.4.30-1.module+el8.7.0+1067+0a7071cc.x86_64
php-common-7.4.30-1.module+el8.7.0+1067+0a7071cc.x86_64
php-fpm-7.4.30-1.module+el8.7.0+1067+0a7071cc.x86_64
php-json-7.4.30-1.module+el8.7.0+1067+0a7071cc.x86_64
php-mbstring-7.4.30-1.module+el8.7.0+1067+0a7071cc.x86_64
php-xml-7.4.30-1.module+el8.7.0+1067+0a7071cc.x86_64
完了しました!
データベースと連携するためのモジュールもインストールしておきます。
[root@rl8 ~]# dnf -y install php-mysqlnd
インストール済み:
php-mysqlnd-7.4.30-1.module+el8.7.0+1067+0a7071cc.x86_64
php-pdo-7.4.30-1.module+el8.7.0+1067+0a7071cc.x86_64
完了しました!
PHPの設定
続いて、設定を行います。
[root@rl8 ~]# 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@rl8 ~]# 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@rl8 ~]# 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@rl8 ~]# systemctl enable --now httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
[root@rl8 ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor prese> Drop-In: /usr/lib/systemd/system/httpd.service.d mqphp-fpm.conf Active: active (running) since Thu 2023-03-09 03:18:42 JST; 10h ago Docs: man:httpd.service(8) Main PID: 742 (httpd) Status: "Running, listening on: port 443, port 80" Tasks: 213 (limit: 11387) Memory: 22.3M CGroup: /system.slice/httpd.service tq 742 /usr/sbin/httpd -DFOREGROUND tq1162 /usr/sbin/httpd -DFOREGROUND tq1163 /usr/sbin/httpd -DFOREGROUND tq1164 /usr/sbin/httpd -DFOREGROUND mq1166 /usr/sbin/httpd -DFOREGROUND
動作の確認
きちんとApacheが動いているかを確認しましょう。
まず、はじめから入っている不要なファイルを削除します。
[root@rl8 ~]# rm -f /etc/httpd/conf.d/welcome.conf
[root@rl8 ~]# rm -f /var/www/error/noindex.html
HTMLのテストファイルを作成します。
[root@rl8 ~]# 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@rl8 ~]# 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@rl8 ~]# chmod +x /var/www/html/test.cgi
SSIのテストファイルを作成します。
[root@rl8 ~]# 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@rl8 ~]# vi /var/www/html/test.php
<?php phpinfo(); ?>
ここまでできたら、ブラウザのアドレスバーにサーバのIPアドレスを入れて接続してみましょう。
全てのページがきちんと表示されればOKです。されない場合はどこか設定が間違っているので、見直しましょう。
動作が確認できたら、テストページは削除しておきましょう。
[root@rl8 ~]# rm -f /var/www/html/index.html /var/www/html/test.cgi /var/www/html/test.shtml /var/www/html/test.php
これで、Webサーバの構築はおしまいです。
[広告]
トップページ
Rocky Linux 8
○インストール準備
○仮想化準備(VMware)
○仮想化準備(Hyper-V)
○仮想化準備(Proxmox)
○基本操作
○導入
○セキュリティ対策
○Dynamic DNS
○NTPサーバ
○データベース
○WEBサーバ
○FTPサーバ
○メールサーバ
○DNSサーバ
○ブログシステム
○オンラインストレージ
○その他