以下のrpmがあればOK,なければインストール
apache2-manual-2.2.3-0vl3 apache2-2.2.3-0vl3 mod_ssl-apache2-2.2.3-0vl3
/etc/apache2にconf等のファイルがある。
/var/wwwにアクセスさせるホームページがある。
デフォルトでは~userではアクセスできないので以下のようhttp.confを変更
<IfModule mod_userdir.c> # # UserDir is disabled by default since it can confirm the presence # of a username on the system (depending on home directory # permissions). # ## UserDir disable <==コメントアウト # # To enable requests to /~user/ to serve the user's public_html # directory, remove the "UserDir disable" line above, and uncomment # the following line instead: # #UserDir public_html UserDir public_html <==コメントアウトを削除 </IfModule> # # Control access to UserDir directories. The following is an example # for a site where these directories are restricted to read-only. # (以下コメントアウトを削除) <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory>
##DirectoryIndex index.html index.html.var DirectoryIndex index.html index.htm index.php index.cgi index.pl index.shtml
##LanguagePriority en ja ca cs da de el eo es et fr he hr it ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW LanguagePriority ja en ca cs da de el eo es et fr he hr it ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
起動
/etc/rc.d/init.d/apache2 start
1.xがhttpdで起動してる場合は起動を停止する。
/etc/apache2/conf.d/ssl.confに公開キーや秘密キーの設定がある。
以下のファイル(MySQL,PostgreSQL)は Vine Plusにある
# apt-get install mysql # apt-get install mysql-client
必要に応じ mysql-XXXをインストール
確認
$ rpm -qa | grep MySQL MySQL-server-5.0.27-0vl3 MySQL-client-5.0.27-0vl3 MySQL-shared-5.0.27-0vl3
設定ファイルを/etcに作成
# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
defaultの文字コードをutfに設定
/etc/my.cnfに追加
[mysqld] デフォルトのサーバ文字コードを指定 default-character-set=utf8 ← 追加(ujis, sjis, utf8等が指定可能) サーバーの文字コード設定をクライアントでもそのまま使う skip-character-set-client-handshake ← 追加
# apt-get install postgresql # apt-get install postgresql-server
いくつかのコマンドは/usr/binにある (createdb等)
環境ファイルは/var/lib/pgsql/dataにある
必要に応じ postgresql-XXXをインストール
# apt-get install php5-apache2 # apt-get install php5-pgsql # apt-get install php5-mysql
php.ini等は/etc/php5のしたにある
設定内容はソースからインストールと同じように行う
注)indexの拡張子の表示順序はhttpd.confでよりphpについてはconf.d/php5.confの以下の部分が優先されるためコメントアウトする
# DirectoryIndex index.php index.phtm
php.iniの最後にVineで追加された項目がある。
[Vine] output_buffering = Off expose_php = Off ;;memory_limit = 32M memory_limit = 512M variables_order = "GPCS" ;;default_charset = EUC-JP extension_dir = /usr/lib/php5
この部分のdefault_charset = EUC-JPが有効だと、送られたHTTPのヘッダーに
Content-Type: text/html; default_charset=EUC-JP
が無条件で付き、作成したphpファイルのヘッダーに
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
と記入してもutf-8としてブラウザが判断しないので、文字化けになるので コメントアウトしておく。文字コードはphpファイルで指定するようにしておく
その他メモリの指定もここにされているので注意する
さらにmoodleでutf8でもトラブルがあったので以下をコメントアウト
;;mbstring.language = Japanese ;;mbstring.internal_encoding = EUC-JP ;;mbstring.http_input = auto ;;mbstring.http_output = pass ;;mbstring.encoding_translation = On
All
MultiViewsを除くすべてのオプションを有効にします。MultiViewsを有効にしたい場合には、明示的にMultiViewsを追加する必要がある
FollowSymLinks
ファイルシステム内の別の場所にシンボリックリンクを作成して表示用のファイルを保持したい場合があります。このためには少なくともFollowSymLinksオプションを有効にする
SymLinksifOwnerMatch
所有者が一致した場合にのみシンボリックリンク経由でのアクセスを許可
Multiviews
HTTP/1.1 の規格に記述されているコンテントネゴシエーションの1形態であるマルチビューを有効にするためのオプション
例えば/usr/local/apache2/htdocs/testにリクエストがありtestというファイルが存在しない場合に、Apacheはディレクトリ内のtest.*をすべて検索し最適なファイルをユーザに返す
AllowOverride
該当ディレクトリに存在する.htaccessファイルによって上書きされる(許可)ディレクティブの種類を指定します。All・Noneもしくは個別のディレクティブの組み合わせで指定することが可能
「AllowOverride None」は.htaccessファイル内に記述されているディレクティブは使用されない。
「AllowOverride AuthConfig」は.htaccess内のAuthType・AuthUserFile・AuthName・Requireディレクティブの設定値の上書きが許可
Order
ホストに対するデフォルトのアクセス可能状態と、Allow/Deny ディレクティブの評価順を指定する
allow,deny (デフォルト)
allow -> deny順に評価されるのですべて拒否
deny,allow
deny -> allow順に評価されるのですべて許可
Allow from all | host または Deny from all | host
「Allow from all」はすべて許可「Allow from apache.org」はDNS名の一部
「Allow from 192.168.11.0/24」 ネットワークアドレスを許可
<Limit method ...> </Limit>と<LimitExcept method ...> </LimitExcept>は反対の意味を持つ
phpを有効のして起動すると
# /etc/rc.d/init.d/apache2 start httpdを起動中: [Mon Sep 08 09:33:50 2008] [crit] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP. Pre-configuration failed
というエラーで起動できない
Vine3.xにおけるapache2のデフォルトはworkerモデルになっており,phpのモジュール版はpreforkモデルでないと正しく動作しない.apache2をpreforkモデル に変更するには以下のようにする.
# /sbin/update-alternatives --config apache2 There are 4 alternatives which provide `apache2'. Selection Alternative ----------------------------------------------- *+ 1 /usr/sbin/apache2.worker 2 /usr/sbin/apache2.prefork 3 /usr/sbin/apache2.threadpool 4 /usr/sbin/apache2.perchild Press enter to keep the default[*], or type selection number: 2 <=2を選択 Using `/usr/sbin/apache2.prefork' to provide `apache2'.
文字化け
Apache2の仕様の問題で、デフォルトの文字設定(ISO-8859-1)では、日本語が文字化けします。(htmlのcharsetは無視される) これを正常に日本語表示可能にするにはhttpd.confに以下のように追記
AddDefaultCharset ISO-8859-1 (以下を追加) AddDefaultCharset shift_jis AddDefaultCharset EUC-JP AddDefaultCharset none