CentOS7にPHPをインストールしてみる
PHPのインストール
yumで普通にインストールした場合、
$ sudo yum -y install php
「5.4」がインストールされる。
$ php --version PHP 5.4.16 (cli) (built: Apr 1 2020 04:07:17) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies $ which php /usr/bin/php
Remiを利用する場合
最新のバージョンをインストールする場合は、Remiのリポジトリを利用する。
remiをインストールするにはepelが必要みたいなので、 epelを入れて、remiをインストールする。
$ sudo yum -y install epel-release $ sudo yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
デフォルトでは、epelとremi-safeが有効になっており、
$ grep 'enabled=1' /etc/yum.repos.d/*.repo /etc/yum.repos.d/epel.repo:enabled=1 /etc/yum.repos.d/remi-safe.repo:enabled=1
個人的には、毎回enablerepoで明示的に指定したいので、 とりあえず無効化しておく。
$ sudo sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/epel.repo $ sudo sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/remi-safe.repo
これで、PHPの最新バージョンをインストールすることができる。
$ sudo yum -y install --enablerepo=epel,remi,remi-php74 php $ php --version PHP 7.4.12 (cli) (built: Oct 27 2020 15:01:52) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies
Composerのインストール
公式(https://getcomposer.org/download/)の手順に従ってインストール。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === 'c31c1e292ad7be5f49291169c0ac8f683499edddcfd4e42232982d0fd193004208a58ff6f353fde0012d35fdd72bc394') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');"
現在のディレクトリにcomposer.pharが作られるので、移動させる。
$ sudo mv composer.phar /usr/local/bin/composer
インストール完了。
$ composer --version Composer version 2.0.6 2020-11-07 11:21:17
Composerでライブラリをインストール
zipを入れておかないと、composerでインストールする際に、下記のようなエラーがでるので、
Failed to download symfony/translation-contracts from dist: The zip extension and unzip command are both missing, skipping.
zipを入れておく。
$ sudo yum -y install zip unzip
ライブラリは下記のような感じでインストールできる。
$ composer require nesbot/carbon
インストールすると、下記のファイルとディレクトリが作成される。
- composer.json
- composer.lock
- vendor/
composer.jsonには、インストールしたライブラリの情報が書かれ、
$ cat composer.json { "require": { "nesbot/carbon": "^2.41" } }
ライブラリ自体は、vendorの下にインストールされ、
$ ls vendor/nesbot/carbon/ bin composer.json contributing.md extension.neon LICENSE phpmd.xml readme.md src
下記のような感じで利用できる。
$ vi hoge.php <?php require 'vendor/autoload.php'; use Carbon\Carbon; $c = new Carbon(); echo $c . PHP_EOL;
$ php hoge.php 2020-11-09 04:39:29
新たに、requireでライブラリを追加すると、 composer.jsonに追加され、インストールされる。
$ composer require fzaninotto/faker $ cat composer.json { "require": { "nesbot/carbon": "^2.41", "fzaninotto/faker": "^1.9" } } $ ls vendor/fzaninotto/faker/ CHANGELOG.md composer.json LICENSE readme.md src
composer.jsonを自分で書いて、下記のようにinstallでインストールすることも可。
(むしろ、こっちが一般的なやり方?)
$ composer install