Contents
1.Apache httpd 2.4 をインストールする
Web サイトを表示させるためWeb サーバー(Apache2.4)をインストールします。
インストール条件
♦Apache2.4の最新版2.4.41を使用する
♦Apacheのインストール先 /usr/local/src(Linuxではソースからのインストールの場合慣習としての標準的なインストール先)
♦Webに公開するドキュメントのインストール先 /var/www/html/
♦バーチャルホストを使用する
Apacheをインストールする前に必要なライブラリーをインストールしておきます。
1.1 APR 、APR-util、expat-develのインストール
①APRのインストール(最新版は1.7.0)
# cd /usr/local/src # wget http://ftp.riken.jp/net/apache/apr/apr-1.7.0.tar.gz # tar -xvzf apr-1.7.0.tar.gz # cd apr-1.7.0 # ./configure –prefix=/opt/apr/apr-1.7.0 ← インストールディレクトリー # make # make test # make install |
②APR-utilのインストール(最新版は1.6.1)
# cd /usr/local/src # wget http://ftp.jaist.ac.jp/pub/apache//apr/apr-util-1.6.1.tar.gz # tar -xvzf apr-util-1.6.1.tar.gz # cd apr-util-1.6.1 # ./configure –prefix=/opt/apr-util/apr-util-1.6.1 –with-apr=/opt/apr/apr-1.7.0 # make # make test # make install |
③expat-devel のインストール
apr-util 1.6.0 のコンパイルでは「expat-devel」パッケージをインストールしていない場合、下のようなエラーが発生することがあります。
xml/apr_xml.lo -c xml/apr_xml.c && touch xml/apr_xml.lo
xml/apr_xml.c:35:19: 致命的エラー: expat.h: そのようなファイルやディレクトリはありません
#include <expat.h>
コンパイルを停止しました。 make[1]: *** [xml/apr_xml.lo] エラー 1
make[1]: ディレクトリ `/usr/local/src/apr-util-1.6.0′ から出ます
make: *** [all-recursive] エラー 1
# cd /usr/local/src # wget http://mirror.centos.org/centos/7/os/x86_64/Packages/expat-devel-2.1.0-10.el7_3.x86_64.rpm # rpm -Uvh expat-devel-2.1.0-10.el7_3.x86_64.rpm |
1.2 Apache 2.4 のインストール(最新版は2.4.41)
Apache 2.4 のダウンロードと展開 # cd /usr/local/src # wget http://ftp.kddilabs.jp/infosystems/apache//httpd/httpd-2.4.41.tar.gz # tar -xvzf httpd-2.4.41.tar.gz コンパイルとインストール # cd /usr/local/src/httpd-2.4.41 ./configure \ –with-layout=Apache \ ← Apacheのインストール先 –enable-module=auth_db \ ← 必要なモジュールの有効化 –enable-module=so \ ← 必要なモジュールの有効化 –enable-module=most \ ← 必要なモジュールの有効化 –enable-mods-shared=reallyall \ ← 必要なモジュールの有効化 –enable-rewrite \ ← 必要なモジュールの有効化 –enable-auth_digest ← 必要なモジュールの有効化 # make # make instal |
Apacheのコンパイルとインストールオプションの代表例
Apacheインストールのオプション
オプション | 内 容 |
–with-layout=[F:]ID | file F から取得したインストールパスレイアウトIDを使用する |
–target=TARGET | TARGETで指定した名前を使用して関連づけられたファイルをインストールする |
–prefix=PREFIX | PREFIXで指定されたディレクトリにApache(コマンド)をインストールする |
–exec-prefix=EPREFIX | EPREFIXで指定されたディレクトリにhttpd(デーモン)をインストールする |
–bindir=DIR | binディレクトリをDIRで指定 |
–sbindir=DIR | sbinディレクトリをDIRで指定 |
–libexecdir=DIR | libexecディレクトリをDIRで指定 |
–mandir=DIR | DIRで指定したディレクトリにman(マニュアル)をインストールする |
–sysconfdir=DIR | DIRで指定したディレクトリに設定ファイルをインストールする |
–datadir=DIR | DIRで指定したディレクトリにデータファイルをインストールする |
–iconsdir=DIR | DIRで指定したディレクトリにアイコンファイルをインストールする |
–htdocsdir=DIR | DIRで指定したディレクトリをドキュメントファイル(httpで公開するインデックス)として設定する |
–cgidir=DIR | DIRで指定したディレクトリをCGIディレクトリとして設定する |
–includedir=DIR | DIRで指定したディレクトリにインクルードファイルをインストールする |
–localstatedir=DIR | DIRで指定したディレクトリに修正可能なデータファイルをインストールします |
–runtimedir=DIR | DIRで指定したディレクトリにランタイムデータをインストールする |
–logfiledir=DIR | DIRで指定したディレクトリにログファイルをインストールする |
–proxycachedir=DIR | DIRで指定したディレクトリにプロキシのキャッシュデータをインストールする |
⑤Apache の設定(httpd.confの編集)
apache全体の設定
範囲指定した設定(ディレクトリ、ファイル、パス単位等)
範囲指定はセクションコンテナで行い、セクションコンテナ外の設定がapache全体の設定となる。
下記の<Directory “/usr/local/apache2/htdocs”>~</Directory>の範囲がセクションコンテナとなる。
httpd.confの中で # ディレクトリ単位で指定 — <Directory> # ファイル単位で指定 — <Files> # パス単位で指定 — <Location> # 他の設定ファイルを読み込む — Include <Directory “/usr/local/apache2/htdocs”> # 設定内容 Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> |
# vi /usr/local/apache2/conf/httpd.conf
digest 認証を有効 LoadModule auth_digest_module modules/mod_auth_digest.soCGI モジュールを有効化(コメントアウトを外す) #LoadModule cgid_module modules/mod_cgid.so → LoadModule cgid_module modules/mod_cgid.soドキュメントルートの変更(初期設定は付きの通りだが適宜変更のためコメントアウト、このまま初期設定で続けても良い) # DocumentRoot “/usr/local/apache2/htdocs” ServerAdmin メールアドレス ServerName ホスト名index ファイルの追加 DirectoryIndex index.html index.htm index.phpバーチャルホストの設定 <VirtualHost *:80> ServerAdmin メールアドレス ServerName ドメイン名 DocumentRoot “/var/www/html/ドメイン名” ErrorLog /var/log/httpd/ドメイン名_error.log CustomLog /var/log/httpd/ドメイン名_access.log combined AddDefaultCharset UTF-8 <Directory “/var/www/ドメイン名/”> AllowOverride All Require all granted </Directory> </VirtualHost>CGI スクリプトの有効化(コメントアウトを外す) #AddHandler cgi-script .cgi → AddHandler cgi-script .cgihttpd-default.conf を有効化 #Include conf/extra/httpd-default.conf → Include conf/extra/httpd-default.conf |
⑥Web公開ディレクトリー作成
# mkdir -p /var/www/html/ドメイン名/ |
⑦自動起動設定
# systemctl enable httpd |
これで最低限のApacheは導入されました。
2.PHP7 インストール
2.1. 必要なライブラリーのダウンロードとインストール
ダウンロード # wget http://mirror.centos.org/centos/7/os/x86_64/Packages/xz-devel-5.2.2-1.el7.x86_64.rpm # wget http://mirror.centos.org/centos/7/os/x86_64/Packages/libxml2-devel-2.9.1-6.el7_2.3.x86_64.rpm # wgetfftp://ftp.pbone.net/mirror/ftp.scientificlinux.org/linux/scientific/7.0/x86_64/updates/security/libjpeg-turbo-devel-1.2.90-6.el7.x86_64.rpm # wget http://mirror.centos.org/centos/7/os/x86_64/Packages/libpng-devel-1.5.13-7.el7_2.x86_64.rpm # wget http://mirror.centos.org/centos/7/os/x86_64/Packages/freetype-2.8-14.el7.x86_64.rpm # wget http://mirror.centos.org/centos/7/os/x86_64/Packages/freetype-devel-2.8-14.el7.x86_64.rpm # wget http://mirror.centos.org/centos/7/os/x86_64/Packages/libcurl-devel-7.29.0-54.el7.x86_64.rpm ・・・・・・・・・・・・・・・・・ インストール # rpm -Uvh xz-devel-5.2.2-1.el7.x86_64.rpm libxml2-devel-2.9.1-6.el7_2.3.x86_64.rpm libjpeg-turbo-devel-1.2.90-6.el7.x86_64.rpm libpng-devel-1.5.13-7.el7_2.x86_64.rpm freetype-2.8-14.el7.x86_64.rpm freetype-devel-2.8-14.el7.x86_64.rpm libcurl-devel-7.29.0-54.el7.x86_64.rpm |
2.2 PHP をダウンロードとインストール
# wget https://www.php.net/distributions/php-7.3.6.tar.gz # tar zxvf php-7.3.6.tar.gz # cd php-7.3.6 # ./configure \ –prefix=/usr/local/php7 \ ← php7のインストール先 –with-config-file-path=/usr/local/php7/etc \ ← php設定ファイルの置き場所 –with-apxs2=/usr/local/apache2/bin/apxs \ –enable-mbstring \ –enable-mbregex \ –with-gd \ –enable-gd-jis-conv \ –with-freetype-dir=/usr \ –with-png-dir=/usr \ –with-zlib \ –with-jpeg-dir=/usr \ –with-mysqli=mysqlnd \ –with-mysql-sock=/var/lib/mysql/mysql.sock \ –with-curl # make # make install |
2.3 Apacheと連携するためApache設定ファイル編集
PHPで使う拡張子(.php)とPHPを関連付けます。登録を行うことで、拡張子(.php)のファイルへアクセスがあった時に、PHPを使って実行された結果がクライアントに返されるようになります。「httpd.conf」ファイルの末尾に次のように記述して下さい
AddType application/x-httpd-php .php |
2.4 PHP設定ファイル編集
# vi /usr/local/etc/php.ini ・・・・・・・・・・ 下記を末尾に追加 extension=curl.so extension=openssl.so date.timezone = Asia/Tokyo |