大企業営業から未経験ITエンジニアを目指すブログ

アラサー大企業営業から未経験ITエンジニアを目指すブログ。日々学んだことを忘備録的に記します。

Windows10にVagrantとVirtualBoxでCentOSの仮想環境を構築④PHPのインストール

前提:

VirtualBoxVagrantインストール、CentOSの環境作成、Apacheをインストールして表示確認まで完了。

主な参考URL:https://www.rem-system.com/centos-php72-inst/

 

①remiレポジトリのインストール

PHP7をインストールするためにremiレポジトリが必要。

①-1. PHPがインストールされていないことの確認

yum list installed | grep php

→何も出なければOK

①-2. 最新版remiレポジトリの確認

https://rpms.remirepo.net/

①-3. remiレポジトリのインストール

上記で調べたパッケージのURLを利用。

yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

①-4. 追加されたレポジトリを確認

ls /etc/yum.repos.d/

 

PHPのインストール

②-1. 最新バージョンの確認

https://www.php.net/downloads.php

②-2. 良く分からないけど参考URLをフォロー

remi-php74レポジトリはデフォルトでは有効になっていない。それ程、使用頻度も高くないことからphp7.4系に関連したyumコマンドを実行する際だけ有効にするようにする。この場合はyumコマンドにオプションである"--enable-repo=remi,remi-php74"を付与。例えばPHPパッケージを探し、PHP7.4系のパッケージについて詳細を表示する場合は以下のように実行。

yum info --enablerepo=remi,remi-php74 php

②-3. 良く分からないけどフォロー

remiレポジトリを有効にするオプションを付与して再度、PHPのパッケージを探してみると、今度はPHPのバージョン7.4系を含むパッケージが表示される

yum search --enablerepo=remi,remi-php74 php

②-4. 参考URLの通り関連パッケージをインストール

sudo yum -y install --enablerepo=remi,remi-php72 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql

②-5. インストールの確認

yum list installed | grep php

PHP関連のファイルが出ればOK

php -v

→バージョンが表示されればOK。

 

③初期設定1.php.iniの変更

③-1. バックアップしておく

sudo cp -p /etc/php.ini /etc/php.ini.org

③-2. 編集

sudo vi /etc/php.ini

③-3. PHPはデフォルトの設定ではhttpヘッダーにバージョンを表示するが、バージョンは公開しないほうが安全なので、phpのバージョンを非表示にする設定を行う。374行目を変更。

expose_php = On → Off   に変更

 

③-4. タイムゾーンの設定

905行目あたり

;date.timezone = → date.timezone = "Asia/Tokyo"

コメントアウトも外す!

 

③-5. マルチバイト(日本語)対応設定

※日本語を利用する場合

1509行目あたりから。全てコメントアウトを外すことを忘れずに!

(1) mbstringで使用される言語のデフォルト値を日本語に。

;mbstring.language = Japanese → mbstring.language = Japanese

(2)内部文字エンコーディングのデフォルト値をUTF-8に。(OSに合わせた)

;mbstring.internal_encoding = → mbstring.internal_encoding = UTF-8

(3)HTTP通信の時のインプット文字コードUTF-8に指定

;mbstring.http_input = → mbstring.http_input = UTF-8

(4)HTTP 出力文字コードについて、自動変換を行わないように設定

;mbstring.http_output = → mbstring.http_output = pass

(5)HTTP 入力変換を有効にする

;mbstring.encoding_translation = Off → mbstring.encoding_translation = On

※文字化けが発生した場合はOffにする

(6)文字コード自動検出の優先順位を自動に設定(=UTF-8が優先される)

;mbstring.detect_order = auto → mbstring.detect_order = auto

(7)コードとして変換できない文字がある場合に、代替の文字を出力しないようにする

;mbstring.substitute_character = none → mbstring.substitute_character = none

 

④動作確認

④-1. Apache httpdの起動

sudo systemctl start httpd

sudo systemctl status httpd

→起動できていればOK

④-2. $ httpd -M | grep php

php7_module (shared) が出ればOK

(なんか余計な一文出たけど多分OK)

④-3. ブラウザでのPHP動作確認

(1)Apacheの参照先ディレクトリへ移動
(2)phpファイルを作成

$ sudo vi index.php
中身の例;
<?php
$current_time = (int)date("G");
?>
<!DOCTYPE html>
  <html lang="ja">
    <head>
      <meta charset="UTF-8">
      <title>title</title>
    </head>
    <body>
      <p><?php echo $current_time; ?></p>
    </body>
  </html>
(3)ブラウザから見てみる

http://192.168.33.10/index.php →期待通りの表示が出ればok

(4)作成したindex.phpファイルを削除(セキュリティホールになるらしい)

sudo rm index.php

 

PHPインストール完了!!