cent OS 8にvsftpdとapatchを入れてwebサーバーにする。

apatch インフラ構築


インストールしているOSイメージによるのですが、cent osなら基本上から叩いていけば実行できます。

インストール方法

yum -y install vsftpd

先にFTPのアクセス用のユーザーを作成する。

useradd ftp-user

作成したユーザーにパスワードの設定

passwd ftp-user

設定ファイルを更新

vi /etc/vsftpd/vsftpd.conf

コンフィルファイルの設定項目

# 匿名(anonymous)でのログインを禁止
anonymous_enable=NO

# コメント(#)を削除して、ASCIIモード転送を許可
ascii_upload_enable=YES
ascii_download_enable=YES

# コメント(#)を削除して、ログインしたディレクトリのみアクセス可能、下記に追記の設定が重要
chroot_local_user=YES
# コメント(#)を削除して、chroot_list_fileに追加されたユーザーはログインディレクトリ以外もアクセス可能
chroot_list_enable=YES

# コメント(#)を削除して、ログインしたディレクトリ以外もアクセスが可能なユーザーのリストファイルを指定しましょう。 ※1
chroot_list_file=/etc/vsftpd/chroot_list

# コメント(#)を削除して、ディレクトリごとのファイル一括転送を可能
ls_recurse_enable=YES

# IPv4でのファイル転送を受付可能に設定
listen=YES

# IPv6でのファイル転送を受付不可、IPv4と両方YESになってるとエラーになります。
listen_ipv6=NO

# 最終行へ追記
# ルートディレクトリを指定しましょう
local_root=public_html
# ローカルタイム(日本時間)を使用
use_localtime=YES

ユーザーリストを追加

vi /etc/vsftpd/chroot_list

起動設定

systemctl start vsftpd

サーバー再起動

systemctl restart vsftpd

システムの起動確認

systemctl -t service list-unit-files | grep -i ftp

enabledになってればOK

他のフォルダにあくせすできない時

おそらくSElinuxがONになっていると思います。

getenforce

Enforcingが表示されていれば有効化されています。
無効化する方法として下記コマンドを入力し

vi /etc/selinux/config

SELINUX=disabledに変更

apatchのインストール

sudo yum -y install httpd

設定ファイルの更新

vi /etc/httpd/conf/httpd.conf

apatchの起動

sudo systemctl start httpd

この後

/var/www/html/

にhtmlファイルを設置すれば表示されるはずです。

phpも動作させたい場合は、まず下記コマンドでphpまわりのパッケージをインストール

dnf install -y php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-mysqlnd php-json

下記コマンドでインストール成功したかもチェックしましょう

php -v

php-fpmの設定

まずは設定ファイルのバックアップ

cp -p /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.org

つぎに編集

vi /etc/php-fpm.d/www.conf

php-fpmの起動

systemctl start php-fpm

起動確認

systemctl status php-fpm

自動起動設定

systemctl enable php-fpm

動作確認として、phpinfo.phpファイルも設置

<?php
  phpinfo();
?>