Ownedmedia ウェブ制作に役立つコンテンツを発信中!

サーバー構築 2020.08.08

CentOS8 + Apache + Nginx + MariaDBでVPSサーバーに環境構築をする(#3:ウェブサーバー・PHPのインストール)

Tags: ,,,

前回記事「CentOS8 + Apache + Nginx + MariaDBでVPSサーバーに環境構築をする(#2:SSH・公開鍵認証の設定)」では基本的なセキュリティ設定が完了しましたので、いよいよ本格的な環境構築が始まります。まずはウェブサイト公開に欠かせないウェブサーバーとPHPをインストールしていきます。

 

今回はウェブサーバーに「Apache」を選択しています。その他にも「Nginx」などのウェブサーバーが使われます。それでは早速進めていきます。

 

1. HTTPサーバー(ウェブサーバー)のインストール

下記コマンドでHTTPサーバーと必要な関連パッケージを丸ごとインストールしていきます。

# dnf install -y httpd httpd-devel httpd-tools httpd-manual
Installed:
  ..............
Complete!

 

インストールが完了したらバージョンを確認しておきます。

# httpd -v
Server version: Apache/2.4.37 (centos)

 

httpdを起動させます。その後問題がないかステータスを確認しておきます。

# systemctl start httpd
# systemctl status httpd
  httpd.service - The Apache HTTP Server
  ............
  Active: active (running)

 

システムの起動時にhttpdも自動で起動されるように有効化設定を行います。その後ステータスを確認します。httpdの項目で「enabled」となっていればOKです。

# systemctl enable httpd
# systemctl list-unit-files -t service
  ............
  httpd.service enabled

 

(補足)パーマリンク設定時のmod_rewriteの設定

WordPressでパーマリンクをカスタムした場合に、404エラーとなる場合にはApacheの設定でmod_rewriteを有効化させる必要があります。下記のコマンドで「httpd.conf」を設定していきます。(必要に応じてバックアップを取っておきます)

# cd /etc/httd/conf/
# vim httpd.conf

【httpd.conf】

// 変更前
<Directory "/var/www/html">
  ............
  #AllowOverride None
  ............
</Directory>
↓
// 変更後
<Directory "/var/www/html">
  ............
  #AllowOverride None
  AllowOverride FileInfo
  ............
</Directory>

// 最終行に追加
LoadModule rewrite_module modules/mod_rewrite.so

 

下記コマンドでhttpdを再起動させて変更内容を反映していきます。

# systemctl restart httpd

 

これでひとまずはウェブサーバーのインストールと設定ができました。引き続きFirewallの設定を行なっていきます。

 

2. HTTPとHTTPSプロトコルのfirewall設定

下記のコマンドでHTTP(ポート80)とHTTPS(ポート443)のFirewallを解放します。これで外部からの通信が可能になります。「success」と表示されればOKです。

# firewall-cmd --add-service=http --zone=public --permanent
# firewall-cmd --add-service=https --zone=public --permanent
success

 

firewalldを再起動させて設定を反映します。

# systemctl restart firewalld

 

HTTP(ポート80)とHTTPS(ポート443)が解放されているかを下記のコマンドで確認します。リスト内で表示されていればOKです。

# firewall-cmd --list-all
  ..............
  services: cockpit dhcpv6-client http https ssh
  ..............

 

 

3. SFTPのアップロード設定

サーバー内にファイルをアップロードする場合にはSFTPで通信する形になります。通常はSFTPクライアントなどのGUIアプリケーションを使うことが多いので、その設定を済ませておきます。SFTPクライアントには下記のように接続設定をしていき、サーバーのドキュメントルート(/var/www/html)にアクセスしてみます。

プロトコル:SFTP
ポート番号:変更後のSSHポート番号
アドレス:ホストIPアドレス
ユーザー:一般ユーザー名
パスワード:一般ユーザーのパスワード
認証鍵:公開鍵認証用の秘密鍵

 

SFTPクライアントでサーバーに接続できたか確認します。問題なければこのようにドキュメントルートの中に入ることができます。

 

その後、SSHでサーバーにログインし、rootユーザーに切り替え、var/www/に移動、下記のコマンドでドキュメントルートのパーミッションを確認すると、rootユーザーに権限があることが確認できます。

# cd /var/www
# ls -l
  ..............
  drwxr-xr-x 2 root root ****** html

 

このままではrootユーザーしかアクセスできないので下記のようにドキュメントルートになるhtmlディレクトリに対して、所有者とパーミッションを変更しておきます。

# chown apache:[USERNAME] html
# chmod 775 html

 

ドキュメントルートの所有者とパーミッションが変わっているのを確認します。

# ls -l
  ..............
  drwxrwxr-x 2 apache [USERNAME] ****** html

 

サンプルとなるindex.htmlファイルを作成し、SFTPクライアントでドキュメントルートにアップロードし「http://IPアドレス」にアクセスするとアップロードしたファイルが表示されるのを確認します。

 

(補足)さくらVPSではデフォルトでパケットフィルタの設定がされている場合があるため、IPアドレスにアクセスしてもページが表示されない場合には、パケットフィルタ設定をオフになっているかを確認します。

 

4. PHPと関連パッケージのインストール

ウェブサーバーと合わせてサーバーサイドのプログラムであるPHPもインストールしていきます。ここでは現時点で最新のPHP7.4系をインストールしていきます。まずは下記コマンドでEPELリポジトリを追加していきます。

# dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
  ..............
Installed:
  epel-release-8-8.el8.noarch
Complete!

 

その後、続けて下記コマンドでRemiリポジトリを追加します。

# dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
  ..............
Installed:
  remi-release-8.1-2.el8.remi.noarch
Complete!

 

EPELリポジトリ・Remiリポジトリが追加されたかを下記コマンドで確認します。

# cd /etc/yum.repos.d/
# ls
  ..............
  epel-modular.repo
  epel-playground.repo
  epel.repo
  epel-testing-modular.repo
  epel-testing.repo
  remi-modular.repo
  remi.repo
  remi-safe.repo

 

PHP(PHP7.4)をRemiリポジトリ経由でインストールしていきます。

# dnf module install -y php:remi-7.4

 

PHPのインストールが完了したらバージョンを確認しておきます。

# php -v
PHP 7.4.7 (cli)

 

また合わせてインストールされた関連パッケージを確認しておきます。

# dnf list installed | grep php
  php-cli.x86_64
  php-common.x86_64
  php-fpm.x86_64
  php-json.x86_64
  php-mbstring.x86_64
  php-xml.x86_64

 

もし他に必要なパッケージがある場合には追加でインストールしていきます。

# dnf install -y php-mysqlnd php-gd php-pecl-zip php-pecl-imagick

 

インストール終了後に、下記コマンドでhttpdを再起動しておきます。

# systemctl restart httpd

 

 

5. php.iniの設定

PHPのインストールが終わると設定ファイルも編集しておきます。設定ファイルとなる「php.ini」をエディタで編集します。(念の為バックアップを取っておくといいですね)

# cd /etc
# cp php.ini php.ini.copy
# vim php.ini

 

【php.ini】

memory_limit = 128M
post_max_size = 50M
upload_max_filesize = 30M

 

上記は必要に応じて調整しますが、memory_limit > post_max_size > upload_max_filesizeの関係になるようにしておくことが重要です。そして、ドキュメントルートに下記のように「info.php」を作成して、ブラウザ上でPHPの情報が表示されるかを確認します。設定した内容が表示されていればOKです。

 

【info.php】

<?php
  phpinfo();
?>

 


 

ここまでの作業でとりあえず静的なウェブページやPHPを使ったプログラムなどが使えるようになります。次からはデータベースや各種ツールなどもインストールしていき、ウェブウェブアプリケーションとして動くサイトが使えるような環境にしていきます。

この記事を書いた人

オガワ シンヤ

DesignSupply.代表 / ディレクター・ウェブデザイナー・フロントエンドエンジニアをやっています。「ウェブとデザインでヒト・モノ・サービスを繋げ新しい価値を生み出す」をコンセプトに日々奮闘中!制作中はチョコレートが欠かせない三十路Webクリエイター。

  • Twitter

コメントフォーム

記事に関するご質問やご意見などありましたら下記のコメントフォームよりお気軽に投稿ください。なおメールアドレスは公開されませんのでご安心ください。

内容に問題なければ、お名前・ハンドルネームとメールアドレスを入力いただき、下記の「コメントを送信」ボタンを押してください。

CAPTCHA


この記事もよく読まれています

Scroll to Top
ご質問・ご相談はありませんか ?