04-02 PHP7.4のインストール

ここまで、Linuxの基礎、Apache、MariaDB(MySQL)を学んできました。

今回の講座はPHPをソースコードからコンパイルしてインストールします。

これでCMSの土台となるLAMPが完成します。

LAMP

LAMP(ランプ)は、OSであるLinux、Apache、MariaDB(MySQL)、スクリプト言語であるPHP、Perl、Pythonを総称した頭文字から成る造語です。

  • Linux(サーバーの基本OS)
  • Apache(Webサーバーアプリケーション)
  • MariaDB・MySQL(データベースサーバーアプリケーション)
  • PHP・Perl・Python(Web系プログラミング言語)

LAMPの依存関係

今回のLAMPの「P」はPHPのことを指し、Apacheのモジュールとしてインストールします。

LAMP環境を構築するには順番があります。

特にPHPは、Apacheのモジュール、mysqlのドライバーをコンパイルオプションに明示する必要があるので、概ね以下の順番でインストールするのが一般的です。

  1. Linux
  2. Apache
  3. MariaDB
  4. PHP

PHP7.4系のインストール

ソースコードの設置場所、PHPをインストールするために必要なパッケージのインストールなど、これまでの経験を活かしながら進めてください。

PHPのソースコードは以下の公式サイト、php.netから7.4系をダウンロードをします。

PHPのコンパイルオプション

./configure \
--prefix=/usr/local/php \
--sysconfdir=/etc/php \
--with-config-file-path=/etc/php \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-mysqli=mysqlnd \
--with-pdo_mysql=mysqlnd \
--with-mysql-sock=/var/lib/mysql/mysql.sock \
--with-openssl \
--with-zlib-dir=/usr/lib \
--with-curl \
--with-iconv \
--with-jpeg \
--with-xpm \
--with-freetype \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--enable-fpm \
--enable-gd \
--enable-ftp \
--enable-mbstring \
--enable-json \
--enable-shared \
--enable-cli \
--enable-debug \
--enable-maintainer-zts \
--enable-sysvshm \
--enable-sysvsem

途中ライブラリーが見つからないなどのエラーでコンパイルが停止すると思います。

必要なパッケージをyumでインストールして対処してください。

対処のヒントは「02-05 コンパイルするための準備」に書かれています。

configureが成功してMakefileが作られると、Thank you for using PHP. と表示されます。

Generating files
configure: patching main/php_config.h.in
configure: creating ./config.status
creating main/internal_functions.c
creating main/internal_functions_cli.c
+--------------------------------------------------------------------+
|                        *** WARNING ***                             |
|                                                                    |
| You have built PHP for Apache's current non-threaded MPM.          |
| If you change Apache to use a threaded MPM you must reconfigure    |
| PHP with --enable-maintainer-zts                                   |
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/fpm/php-fpm.conf
config.status: creating sapi/fpm/www.conf
config.status: creating sapi/fpm/init.d.php-fpm
config.status: creating sapi/fpm/php-fpm.service
config.status: creating sapi/fpm/php-fpm.8
config.status: creating sapi/fpm/status.html
config.status: creating sapi/phpdbg/phpdbg.1
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands

+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE. By continuing this installation  |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.

この後に、makeとmake installでPHPをインストールします。

PHPインストール後の設定

今回インストールしたPHP7.4はApacheのモジュールとして組み込みます。

httpd.confの確認

PHPをmake installした後に、Apacheのhttpd.confに以下の行が追加されていることを確認してください。

LoadModule php7_module modules/libphp7.so

追加されていれば、PHPのインストールは成功です。

httpd.confの確認

次に、ApacheがPHPの拡張子「.php」を認識するようhttpd.confに以下を追記。

    <FilesMatch "\.php$">
        AddHandler php7-script .php
        AddType text/html .php
    </FilesMatch>

「AddHandler cgi-script .cgi」の下に追記してhttpd.confを保存します。

ApacheのSyntaxチェックを行い、問題なければApacheを再起動。

PHPの設定ファイルを設置

PHPをコンパイルしたディレクトリの中に「php.ini-production」というファイルがあります。

そのファイルをphp.iniとして、/etc/phpの中にコピーしてください。

cp php.ini-production /etc/php/php.ini

php.iniの編集

php.iniにもいくつか設定をする箇所があり、特に以下の3つは設定を忘れずに行ってください。

  • expose_php = Off
  • disable_functions = phpinfo
  • date.timezone=”Asia/Tokyo”

expose_php

expose_phpの値はデフォルトがOnとなっています。

デフォルトのままだとHTTPヘッダーにPHPのバージョンが表示されてしまうのでOffにします。

expose_php = Off

disable_functions

phpには現在の設定情報を出力する関数があります。

<?php phpinfo(); ?>

↑この内容をドキュメントルートにindex.phpとして保存し、ブラウザで確認すると以下のようなPHPの設定情報が表示されます。

例)https://su-campXXX.superusers.jp/index.php

phpinfoで表示された内容は一般に公開されるべきものではないので、php.iniの中でdisable_functionsを検索しphpinfo関数を無効化します。

disable_functions = phpinfo

date.timezone=”Asia/Tokyo”

PHPを使って現在の時刻を取得する場合、date.timezoneにAsia/Tokyoがセットされていなければグリニッジ標準時 (GMT)の時刻(-9h)が表示されます。

<?php echo date(“Y/m/d H:i:s”); ?>

ドキュメントルートにdate.phpを作成して、↑上記内容を記述しブラウザで確認してください。

例)https://su-campXXX.superusers.jp/date.php

php.iniにはdate.timezoneの記述がないので、最終行に以下の内容を追記してください。

date.timezone=”Asia/Tokyo”

以上で、CentOSを使ってLAMPサーバー構築してきました。

後はご自身でドメインを取得し、WordPressなどのCMSをインストールするなどしてみてください。

関連記事

コメント

この記事へのコメントはありません。

おすすめ記事

  1. 【多段SSH】公開鍵認証で中継サーバー経由のログインが簡単!

  2. インターネットに繋いだサーバーで最初にやらなければならない設定

  3. Swapの中身を特定する方法

  4. Linuxを極めるならコマンドよりも〇〇が先だ!!

  5. お名前ドットコムのDNS設定方法