【PHP】【CentOS7】インストール&初期動作確認

インフラ系エンジニアなのであまり手広くプログラム言語を扱いたくないのですが、現在以下のプログラム言語を勉強しています。

 

今回は PHP のインストールと動作確認的に簡単な PHP プログラムを作成します。

目標はインフラ構成管理業務で業務を効率化できる Web アプリの開発です。

 

 

PHP のインストール

環境は CentOS 7.4 です。

CentOS ではデフォルトで PHP はインストールされていません。(CentOS インストール時に Core を選択した場合)

そのため、手動でインストールする必要があります。

→ Python はデフォルトでインストールされています。

[root@test07 ~]# php ← デフォルトで PHP がインストールされていません。少々寂しいですね。
bash: php: コマンドが見つかりませんでした...

 

 

php は yum コマンドでインストールできます。

[root@test07 ~]# yum install php
読み込んだプラグイン:fastestmirror, langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
base                                                                             | 3.6 kB  00:00:00
epel/x86_64/metalink                                                             | 6.4 kB  00:00:00
epel                                                                             | 4.7 kB  00:00:00
extras                                                                           | 3.4 kB  00:00:00
ius                                                                              | 2.3 kB  00:00:00
updates                                                                          | 3.4 kB  00:00:00
(1/6): epel/x86_64/group_gz                                                      | 266 kB  00:00:00
(2/6): epel/x86_64/updateinfo                                                    | 892 kB  00:00:00
(3/6): extras/7/x86_64/primary_db                                                | 166 kB  00:00:01
(4/6): ius/x86_64/primary_db                                                     | 250 kB  00:00:01
(5/6): updates/7/x86_64/primary_db                                               | 6.0 MB  00:00:04
(6/6): epel/x86_64/primary_db                                                    | 6.2 MB  00:00:05
Determining fastest mirrors
 * epel: ftp.iij.ad.jp
 * ius: hkg.mirror.rackspace.com
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ php.x86_64 0:5.4.16-43.el7_4 を インストール
--> 依存性の処理をしています: php-common(x86-64) = 5.4.16-43.el7_4 のパッケージ: php-5.4.16-43.el7_4.x86_64
--> 依存性の処理をしています: php-cli(x86-64) = 5.4.16-43.el7_4 のパッケージ: php-5.4.16-43.el7_4.x86_64
--> 依存性の処理をしています: libcrypto.so.10(OPENSSL_1.0.2)(64bit) のパッケージ: php-5.4.16-43.el7_4.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ openssl-libs.x86_64 1:1.0.1e-60.el7_3.1 を 更新
--> 依存性の処理をしています: openssl-libs(x86-64) = 1:1.0.1e-60.el7_3.1 のパッケージ: 1:openssl-1.0.1e-60.el7_3.1.x86_64
---> パッケージ openssl-libs.x86_64 1:1.0.2k-8.el7 を アップデート
---> パッケージ php-cli.x86_64 0:5.4.16-43.el7_4 を インストール
---> パッケージ php-common.x86_64 0:5.4.16-43.el7_4 を インストール
--> 依存性の処理をしています: libzip.so.2()(64bit) のパッケージ: php-common-5.4.16-43.el7_4.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ libzip.x86_64 0:0.10.1-8.el7 を インストール
---> パッケージ openssl.x86_64 1:1.0.1e-60.el7_3.1 を 更新
---> パッケージ openssl.x86_64 1:1.0.2k-8.el7 を アップデート
--> 依存性解決を終了しました。

依存性を解決しました

========================================================================================================
 Package                   アーキテクチャー    バージョン                    リポジトリー          容量
========================================================================================================
インストール中:
 php                       x86_64              5.4.16-43.el7_4               updates              1.4 M
依存性関連でのインストールをします:
 libzip                    x86_64              0.10.1-8.el7                  base                  48 k
 php-cli                   x86_64              5.4.16-43.el7_4               updates              2.7 M
 php-common                x86_64              5.4.16-43.el7_4               updates              565 k
依存性関連での更新をします:
 openssl                   x86_64              1:1.0.2k-8.el7                base                 492 k
 openssl-libs              x86_64              1:1.0.2k-8.el7                base                 1.2 M

トランザクションの要約
========================================================================================================
インストール  1 パッケージ (+3 個の依存関係のパッケージ)
更新                       ( 2 個の依存関係のパッケージ)

総ダウンロード容量: 6.4 M
Is this ok [y/d/N]: y
Downloading packages:
No Presto metadata available for base
(1/6): libzip-0.10.1-8.el7.x86_64.rpm                                            |  48 kB  00:00:01
(2/6): openssl-1.0.2k-8.el7.x86_64.rpm                                           | 492 kB  00:00:01
(3/6): openssl-libs-1.0.2k-8.el7.x86_64.rpm                                      | 1.2 MB  00:00:01
(4/6): php-5.4.16-43.el7_4.x86_64.rpm                                            | 1.4 MB  00:00:03
(5/6): php-common-5.4.16-43.el7_4.x86_64.rpm                                     | 565 kB  00:00:00
(6/6): php-cli-5.4.16-43.el7_4.x86_64.rpm                                        | 2.7 MB  00:00:03
--------------------------------------------------------------------------------------------------------
合計                                                                    1.1 MB/s | 6.4 MB  00:00:05
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  更新します              : 1:openssl-libs-1.0.2k-8.el7.x86_64                                      1/8
  インストール中          : libzip-0.10.1-8.el7.x86_64                                              2/8
  インストール中          : php-common-5.4.16-43.el7_4.x86_64                                       3/8
  インストール中          : php-cli-5.4.16-43.el7_4.x86_64                                          4/8
  インストール中          : php-5.4.16-43.el7_4.x86_64                                              5/8
  更新します              : 1:openssl-1.0.2k-8.el7.x86_64                                           6/8
  整理中                  : 1:openssl-1.0.1e-60.el7_3.1.x86_64                                      7/8
  整理中                  : 1:openssl-libs-1.0.1e-60.el7_3.1.x86_64                                 8/8
  検証中                  : php-cli-5.4.16-43.el7_4.x86_64                                          1/8
  検証中                  : php-5.4.16-43.el7_4.x86_64                                              2/8
  検証中                  : php-common-5.4.16-43.el7_4.x86_64                                       3/8
  検証中                  : 1:openssl-libs-1.0.2k-8.el7.x86_64                                      4/8
  検証中                  : libzip-0.10.1-8.el7.x86_64                                              5/8
  検証中                  : 1:openssl-1.0.2k-8.el7.x86_64                                           6/8
  検証中                  : 1:openssl-1.0.1e-60.el7_3.1.x86_64                                      7/8
  検証中                  : 1:openssl-libs-1.0.1e-60.el7_3.1.x86_64                                 8/8

インストール:
  php.x86_64 0:5.4.16-43.el7_4

依存性関連をインストールしました:
  libzip.x86_64 0:0.10.1-8.el7  php-cli.x86_64 0:5.4.16-43.el7_4  php-common.x86_64 0:5.4.16-43.el7_4

依存性を更新しました:
  openssl.x86_64 1:1.0.2k-8.el7                    openssl-libs.x86_64 1:1.0.2k-8.el7

完了しました!
[root@test07 ~]#

 

 

php のバージョンは「5.4.16」です。

少々古いです。

[root@test07 ~]# php -v
PHP 5.4.16 (cli) (built: Nov 15 2017 16:33:54)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

 

なぜ PHP のバージョンが古いのか?

CentOS の考え方というか哲学で、「CentOSはエンタープライズ(企業)用に開発されているので枯れたバージョンしか取り扱わない」というポリシーがあります。

現に CentOS の公式サイトでも以下のように記載があります。

https://wiki.centos.org/FAQ/General#head-472ce8446ebcfc82ca1800f775ba0e629ac835c7

最後に「It's a feature not a deficiency.」と記載があり「これは特徴であり欠点ではありません」ということを言っています。

 

 

ちなみに Python のバージョンも古いです。

いまだに「Python 2.7.5」を OS のデフォルト Python バージョンとして使用しています。

[root@test07 ~]# python
Python 2.7.5 (default, Nov  6 2016, 00:28:07)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
[root@test07 ~]#

 

 

動作確認(Apache)を使って POST データ送信

まずは Apache が正常に起動しているか確認します。

[root@cent07 ~]# systemctl -l status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since 土 2018-02-24 00:16:22 JST; 1 day 15h ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 26167 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
 Main PID: 1051 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           tq 1051 /usr/sbin/httpd -DFOREGROUND
           tq 2819 /usr/sbin/httpd -DFOREGROUND
           tq 2820 /usr/sbin/httpd -DFOREGROUND
           tq 2821 /usr/sbin/httpd -DFOREGROUND
           tq26180 /usr/sbin/httpd -DFOREGROUND
           tq26182 /usr/sbin/httpd -DFOREGROUND
           tq26184 /usr/sbin/httpd -DFOREGROUND
           tq26185 /usr/sbin/httpd -DFOREGROUND
           tq26186 /usr/sbin/httpd -DFOREGROUND
           mq26187 /usr/sbin/httpd -DFOREGROUND

 2月 24 00:16:00 cent07.localdomain systemd[1]: Starting The Apache HTTP Server...
 2月 24 00:16:22 cent07.localdomain systemd[1]: Started The Apache HTTP Server.
 2月 24 03:50:02 cent07.localdomain systemd[1]: Ignoring invalid environment assignment 'export LD_PRELOAD=/usr/lib64/libutil.so': /etc/sysconfig/httpd
 2月 24 03:50:02 cent07.localdomain systemd[1]: Ignoring invalid environment assignment 'export LD_LIBRARY_PATH=/usr/local/lib': /etc/sysconfig/httpd
 2月 24 03:50:03 cent07.localdomain systemd[1]: Reloaded The Apache HTTP Server.
 2月 25 03:34:01 cent07.localdomain systemd[1]: Ignoring invalid environment assignment 'export LD_PRELOAD=/usr/lib64/libutil.so': /etc/sysconfig/httpd
 2月 25 03:34:01 cent07.localdomain systemd[1]: Ignoring invalid environment assignment 'export LD_LIBRARY_PATH=/usr/local/lib': /etc/sysconfig/httpd
 2月 25 03:34:02 cent07.localdomain systemd[1]: Reloaded The Apache HTTP Server.
[root@cent07 ~]#

 

 

Apache が自動起動になっているか確認します。

[root@cent07 ~]# systemctl list-unit-files | grep httpd
httpd.service                                 enabled ← 自動起動が「ON(enabled)」の設定になっています。
[root@cent07 ~]#

 

 

Web画面が表示されるか確認します。

ブラウザを起動し「URL欄」「IPアドレス」を入力します。

問題なく初期ページが表示されました。

 

POST確認用プログラム

■POSTデータ送信プログラム

[root@cent07 html]# pwd
/var/www/html
[root@cent07 html]# ls
ResPost.php  _old  post.php
[root@cent07 html]# vi post.php
<!DOCTYPE html>
<html>
<body>
<form method="POST" action="ResPost.php">
一言どうぞ:<br>
<input type="text" name="comments" size="20" /><br>
<input type="submit" value="送信" />
</form>
</body>
</html>
[root@cent07 html]#

 

 

 

 

■POSTデータ表示プログラム

[root@cent07 html]# vi ResPost.php
<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8' />
<title>Sample</title>
<body>
あなたの一言<br>
<?php print $_POST['comments']; ?><br>
です。<br>
</body>
</head>
</html>
[root@cent07 html]#

 

 

Web アプリの動作確認

post.php ページにアクセスします。

例えば、IPアドレスが「192.168.1.12」の場合は「http://192.168.1.12/post.php」にアクセスをします。

【PHP】【CentOS7】インストール&初期動作確認

 

何かを入力して「送信」ボタンをクリックします。

【PHP】【CentOS7】インストール&初期動作確認

 

先ほど入力したデータが表示されます。

【PHP】【CentOS7】インストール&初期動作確認

 

 

 

 

Posted by 100%レンタルサーバーを使いこなすサイト管理人