■FTPサーバー(vsftpd)をインストール
設定ファイル「vsftpd.conf」を編集。・・・パッシブモードを使えるように、ファイルの最後に次の内容を追加。
pasv_min_port=60000
pasv_max_port=60030
また、接続ユーザ(satoh163)が、ファイル所有者(apache)のグループ(apache)に対して書き込みを許可した状態でファイルを書き込ませます。(マスク:022→002とすることでパーミッション:644→664となる)
FTPサーバーを起動
FTPサーバー自動起動を設定
# systemctl status vsftpd.service
■ドキュメントルートのパーミッションを変更。
以下、どのようにするのが本当に良いのか理解不足の可能性あり。
オーナーとグループはapacheのままとしておきます。変更が必要な場合は以下を実行。
ドキュメントルートのパーミッションとオーナーを確認。
Apache HTTPサーバー経由でWordPressからのFTP転送が書き込めるように、ユーザー(satoh163)をapacheグループと、root権限であるwheelグループに所属させます。
ユーザが所属しているグループを確認。
satoh163 : satoh163 wheel apache
#
グループに所属しているユーザを確認。
wheel:x:10:satoh163
# getent group apache
apache:x:48:satoh163
#
現在のままでは、FTP接続ユーザ(satoh163)が、HPのルートディレクトリに書き込む権利が無いので、チェンジ・モード・コマンドで、ディレクトリに書き込み権を付加(755→775)。
同様にファイルに対しても書き込み権を付加(644→664)。
CGIファイルなど実行権がなくなったファイルは元に戻す必要が発生します。
■SELinuxを停止。・・・vsftpdがファイルアクセスに成約を受けるのでSELinuxを無効にします。
OSを再起動する必要があります。
■perlをインストール
Webサーバの設定ファイル「httpd.conf」を編集。・・・ScriptAlias /cgi-bin/ ・・・を以下のように変更。
(CGIプログラムを/cgi-bin ディレクトリ以下に配置する場合)
(また、/cg-bin 以下に画像ファイルやHTMLが置けるように記述を追加)
ScriptAlias /cgi-bin/ "/var/www/html/cgi-bin/" <Directory "/var/www/html/cgi-bin/"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all AddHandler cgi-script .cgi AddHandler image/gif .gif AddHandler image/jpeg .jpeg .jpg AddHandler image/png .png AddHandler text/html .html .htm AddHandler text/css .css AddHandler application/x-javascript .js </Directory>
■phpをインストール
PHPの日本語文字処理ライブラリも必要なのでインストールします。
「php.ini」ファイルを開き、タイムゾーンを設定
date.timezone = Asia/Tokyo
Webサーバーを再起動する必要があります。
■FTPクライアント「FileZilla」(on Ubuntu)から、ファイル転送し、CGIファイル等のパーミッション変更後、ブラウザで確認。
Angel21トップページのアクセスカウンタ(CGI)、カレンダー簡易予定表(PHP)が動作するところまで引越し完了です。(記事執筆日と投稿日はずれています。・・・あしからず。)
<懸案事項>
- アクセスカウンターCGIファイルの改行コードが、サーバに適合していないらしく、「500 Internal Server Error」エラーが発生しました。「.cgi」ファイルの先頭記述「#!/usr/bin/perl」を「#!/usr/bin/perl –」に変更して回避し、表示可能となりました。本来はサーバー側で対処すべきなのかも。httpdが厳格になったのか、それとも何か設定が足りないのか、余裕ができたら原因調査予定。
- 「お問い合わせ」(mailform)のページを表示した場合も、ブラウザの開発ツール上で「500 Internal Server Error」エラーが発生中。こちらの調査は、メールサーバーの設定が済むまで、先送りにしておきます。