ファイルは自由出し入れできるようになりましたが、突っ込んだhtmlファイルを表示するには、apache httpd serverを入れなければなりません。また、この日記帳を引っ越すには、MySQLとPHPが必要です。PHPのファイルにアクセスがあった場合、実行結果を返すのもapacheの仕事です。一方、PHPのインストール時には利用するデータベースを指定する必要があります。
ということで、インストールの順番は、apache→MySQL→PHP→PHPmyadmin(MySQLの管理ツール)となります。
apache
apache2の最新版を使うことにします。portsではなくソースからのインストールになるので、/usr/local/srcディレクトリを作って、もらってきたソースをまとめることにしました。
ftp ftp.apache.org
cd /pub/apache/httpd
ls 最新版を確認
get httpd-2.4.6.tar.gz
これ以外に、
apache/apr/apr-1.4.8.tar.gz
apache/apr/apr-util-1.5.2.tar.gz
もgetしてきます。httpdのあったディレクトリのサブディレクトリaprの下にあります。
apacheの前に、libxml2とexpatを入れておく必要があります。こちらはportsから入れてしまいましょう。実は、後でlibxmlをソースから入れる羽目になるのですがそれはそれとして。
cd /usr/ports/textproc/libxml2
make install
/usr/ports/textproc/expat2
make install
で2つともインストール完了。
apacheのインストール。
cd /usr/local/src
tar zxvf httpd-2.4.6.tar.gz
apache本体を展開したら、aprの関連ファイルをsrclibディレクトリで展開。
cp apr-1.4.8.tar.gz httpd-2.4.6/srclib
cp apr-util-1.5.2.tar.gz httpd-2.4.6/srclib
cd httpd-2.4.6/srclib
tar zxvf apr-1.4.8.tar.gz
tar zxvf apr-util-1.5.2.tar.gz
mv apr-1.4.8 apr
mv apr-util-1.5.2 apr-util
cd ..
/configure –prefix=/usr/local/apache2 –enable-so –enable-mods-shared=all –enable-rewrite=shared
make
make install
コンパイルが終わるまで暫く待つ。インストールディレクトリは/usr/local/apache2。
自動起動の準備は、/usr/local/etc/rc.d/apache.shという名前で次の内容のファイルを作り実行許可ビットを立てておく。
#! /bin/sh
#
# rc file for Apache
#
apachectl=/usr/local/apache2/bin/apachectl
case "$1" in
start)
if [ -x $apachectl ]; then
$apachectl start && echo -n ' httpd(apache)'
fi
;;
stop)
if [ -x $apachectl ]; then
$apachectl stop && echo -n ' httpd(apache)'
fi
;;
*)
echo "usage: $0 {start|stop}" 1>&2
exit 1
;;
esac
設定は、/usr/local/apache2/conf/httpd.conf、変更箇所とか活きているモジュールとかはこんな感じ。
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule filter_module modules/mod_filter.so
LoadModule xml2enc_module modules/mod_xml2enc.so
LoadModule proxy_html_module modules/mod_proxy_html.so
LoadModule mime_module modules/mod_mime.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule env_module modules/mod_env.soLoad
LoadModule headers_module modules/mod_headers.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule unixd_module modules/mod_unixd.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule dir_module modules/mod_dir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
User nobody
Group nobody
ServerAdmin r.hirokawa@frontier-line.org
DocumentRoot “/home/WWW”
<Directory “/home/WWW”>
Options FollowSymLinks MultiViews ExecCGI
AllowOverride All
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
<FilesMatch “\.inc$”>
Order allow,deny
Deny from all
</FilesMatch>
<FilesMatch “\.conf$”>
Order allow,deny
Deny from all
</FilesMatch>
<FilesMatch “\.func”>
Order allow,deny
Deny from all
</FilesMatch>
<FilesMatch “\.php$”>
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch “\.phps$”>
SetHandler application/x-httpd-php-source
</FilesMatch>
ErrorLog “logs/error_log”
CustomLog “logs/access_log” combined
ScriptAlias /cgi-bin/ “/home/WWW/cgi-bin/”
Addtype application/x-httpd-php .php ←<IfModule mime_module>のところに追加。
<fModule proxy_html_module>
Include conf/extra/proxy-html.conf
</IfModule>
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
ServerTokens Prod
ServerSignature Off
AcceptFilter http none
AcceptFilter https none
最後の2行は、
[core:warn] [pid 1112:tid 34389128192] (2)No such file or directory: AH00075: Failed to enable the ‘httpready’ Accept Filter
というメッセージが毎回出るのを避けるためのもの。http://www.skymerica.com/blog/yotsumoto/arch/2007/06/11/000799.htmlに情報がある。FreeBSDのカーネルにaccf_http.koをロードすれば良いのだが、VPSだとカーネルを触れないので、設定で強制的にAcceptFilterを無効にする。ちょっともったいない気もするけど暇なサーバーだからまあいいかねえ。
起動
/usr/local/apache2/bin/apachectl start
停止
/usr/local/apache2/bin/apachectl stop
設定変えたとき
/usr/local/apache2/bin/apachectl reload
*.confの文法チェック
/usr/local/apache2/bin/apachectl -t
文法チェックかけて、手動で起動後、ps auxしてhttpdが走っていることを確認。一旦停止させてリブート後、ps auxしてhttpdが居れば成功。
Recently:
- 「UFOロボグレンダイザー たとえ我が命つきるとも」攻略終了
- グレンダイザーU、宇門博士のステータス下げすぎでは?
- Fallout 1st加入した
- Fallout 76
- CSI:マイアミ
- Answers to Antonella Belli’s questions
- コミックマーケット参加終了
- エルデンリング攻略メモ
- 31話 林所員の移動速度が凄いw
- twitter botの復活を試みていろいろと嵌まる