Windows10にVagrantとVirtualBoxでCentOSの仮想環境を構築④PHPのインストール
前提:
VirtualBox・Vagrantインストール、CentOSの環境作成、Apacheをインストールして表示確認まで完了。
主な参考URL:https://www.rem-system.com/centos-php72-inst/
①remiレポジトリのインストール
PHP7をインストールするためにremiレポジトリが必要。
①-1. PHPがインストールされていないことの確認
→何も出なければOK
①-2. 最新版remiレポジトリの確認
①-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
④動作確認
sudo systemctl start httpd
sudo systemctl status httpd
→起動できていればOK
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インストール完了!!