はじめに
前編:https://psblog.casareal.co.jp/archives/362
中編:https://psblog.casareal.co.jp/archives/481
皆さんこんにちは。こちらは前回からの続きです(前回をご覧いただいていない方は、ぜひ上記のリンクからご覧ください)。
さて、今回はいよいよPHPのインストールと動作確認を行いたいと思います。
使用する仮想化ソフト
ソフトウェア | バージョン |
---|---|
Vagrant | 2.2.9 |
VirtualBox | 6.1.8 r137981 |
セットアップする環境
環境 | バージョン |
---|---|
CentOS | 8.1 |
Apache | 2.4 |
Postgresql | 10 |
PHP | 7.4 |
リポジトリの追加
以下のコマンドで、EPELとREMIリポジトリを追加します。
1 |
dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm |
CentOS8のdnfから、モジュールという概念が追加されました。
例えばこのモジュールを使ってphpをインストールすると、関連するパッケージが簡単にインストールできたり、バージョンの切り替えがスムーズに行えたりします。
今回はモジュールを使用したインストールは行いませんが、REMIリポジトリ内のPHP7.4を使用するように設定を行いたいと思います。
1 |
dnf module enable php:remi-7.4 |
PHPのインストール
PHPのインストールを行います。
今回はPHP本体だけでなく、他の周辺のモジュールも少しインストールしたいと思います。
1 |
dnf install -y php php-pgsql php-mbstring php-pecl-zip php-xml php-pecl-yaml php-fpm php-pecl-xdebug php-intl |
モジュール | 内容 |
---|---|
php | phpモジュール本体 |
php-pgsql | phpからpostgresqlに接続するためのモジュール |
php-mbstring | phpでマルチバイト文字列を使用するためのモジュール |
php-pecl-zip | phpでZIPを扱うためのモジュール |
php-xml | phpでXMLを扱うためのモジュール |
php-pecl-yaml | phpでYAMLを扱うためのモジュール |
php-fpm | FastCGI Process Manager |
php-pecl-xdebug | Xdebugのインストール |
php-intl | ロケール用モジュールのインストール |
インストールが終わったら、バージョン確認コマンドを実行してみます。
1 |
php -v |
php-fpmの起動
php-fpmの方を有効化してみたいと思います。こちらはphpをFastCGIで実行するためのモジュールです。
下記のコマンドでphp-fpmの起動と、サービス登録を行います。
1 2 |
systemctl start php-fpm systemctl enable php-fpm |
apache再起動
PHPのインストールができましたので、一度Apacheを再起動します。
1 |
systemctl restart httpd.service |
テスト用のファイル作成
ではApacheからPHPが実行されるのか確認してみたいと思います。
下記のコマンドで、ドキュメントルートにindex.phpを作成したいと思います。
1 2 |
cd /var/www/html vi index.php |
index.phpにコーディングする内容は、phpinfo関数を使用して現在の設定状態を表示する2行だけです。
1 2 |
<?php phpinfo(); |
こちらを作成後、ブラウザから仮想マシンに対してアクセスをしてみると、phpinfoの画面が表示されるのが確認できると思います。
これでphpの実行環境が整いました。
最後にこれまでのインストールコマンド等を、Vagrantfileに追記します。
下記は例ですが、これを使用することで他のPCでVagrantさえインストールされていれば、開発環境を再現することができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
Vagrant.configure("2") do |config| config.vagrant.plugins = ['vagrant-vbguest'] config.vbguest.auto_update = true config.vm.box = "centos/8" config.vm.box_url = "http://cloud.centos.org/centos/8/x86_64/images/CentOS-8-Vagrant-8.1.1911-20200113.3.x86_64.vagrant-virtualbox.box" if defined?(MyWorkaroundInstallerUntilPR373IsMerged) config.vbguest.installer = MyWorkaroundInstallerUntilPR373IsMerged end config.vm.synced_folder "C:\\src\\path\\to\\synced\\dir", "/dest/synced\dir" config.vm.provision "shell", inline: <<-SHELL dnf -y update dnf install -y httpd httpd-tools httpd-devel systemctl start httpd systemctl enable httpd dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm dnf -qy module disable postgresql dnf install postgresql10-server export PGSETUP_INITDB_OPTIONS="--encoding=UTF8 --no-locale" /usr/pgsql-10/bin/postgresql-10-setup initdb systemctl enable postgresql-10 systemctl start postgresql-10 dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm dnf module enable php:remi-7.4 dnf install -y php php-pgsql php-mbstring php-pecl-zip php-xml php-pecl-yaml php-fpm php-pecl-xdebug php-intl php-pecl-redis systemctl start php-fpm systemctl enable php-fpm systemctl restart httpd.service SHELL end |
これでVagrantでのCentOS8環境にLAPPによる開発環境を導入に関して終了となります。