host:~ # zypper install apache2 mysqlで、起動する際のコマンドは以下の通りです。 Apache2 の場合
host:~ # rcapache2 startMySQL の場合
host:~ # rcmysql startで、サーバー再起動後も自動的に MySQL を起動するように設定します。
host:~ # chkconfig mysql on host:~ # chkconfig --list mysql mysql 0:off 1:off 2:off 3:on 4:off 5:on 6:offMySQL の方は何も設定しませんでした。/etc/my.cnf に default-character-set=utf8 を設定しようかとも思ったのですが、まずは設定なしの場合の動作を確認しようと明示的な指定は今のところしていません。
ネット上を探しても openSUSE の場合の設定というのはほとんどなく、デフォルトで何の文字コードが使用されるのか不明です(たぶん latin-1 だろうけど)。
で、それよりも問題だったのが Apache2 です。CentOS を含む多くの保守的なディストリビューションの場合、httpd.conf を編集するのが常識になっていると思います。
でも openSUSE は違ったんです。httpd.conf を開いても内容のほとんどが他のファイルを Include しているだけ。Debian 系に慣れている人であればどうってことないのでしょうが、今まで見たことのない内容にびっくりしました。
Apache2.2 系からは設定ファイルがモジュール化され、別々に扱うようになったようです。しかもそれらを有効/無効にするコマンドとして、a2enmod と a2dismod が用意されているとのこと。CentOS 5 も Apache2.2 系だけど、そんな使い方したことない...つーかそもそもできるのだろうか?
久々にネットを検索しまくりました。で、まずは DocumentRoot のディレクトリ設定から変更。
host:/etc/apache2 # vi default-server.conf
<Directory "/srv/www/htdocs"> Options Includes ExecCGI FollowSymLinks AllowOverride All </Directory>ユーザーディレクトリを有効にしたいので、以下も変更。
host:/etc/apache2 # vi mod_userdir.conf
<IfModule mod_userdir.c> #UserDir disabled UserDir public_html <Directory /home/*/public_html> AllowOverride All Options IncludesNoExec ExecCGI FollowSymLinks </Directory> </IfModule>しかし、以下の設定をするために、いったいどのファイルを編集すればいいのか分からなくなってしまいました。
- AddDefaultCharset の無効化
- AddHandler cgi-script .cgi .pl の追加
- ServerAdmin の設定
- ServerName の設定
結局分からずじまいで、とりあえず起動してみたところ、特にエラーもなくあっさり起動。
サイトルートを表示させると「It Works!」の文字が。フツーにうまくいってる。どういうことだろう??
不思議に思いつつも、とりあえずそこはスルーして文字コードをブラウザで見てみると「Shift_JIS」になっていた。ウェブサーバー側でデフォルトの文字コードに「Shift_JIS」を使うことは有り得ないから、たぶん AddDefaultCharset は未設定になっていると思われる。
次に、CGI が実行可能か確認。結果、CGI ファイルがダウンロードされてしまった。やっぱり AddHandler の設定は必要なのね。
でもどこに記述すればいいんだろう... いろいろ探してみたが結局分からなかった。
ここで、openSUSE の公式サイトの Apache のドキュメントに書いてあった、独自設定ファイルの追加方法を思い出した。追記するところが分からなければ、自分で作ってしまえ!ということで、作業開始。
ドキュメントには、sysconfig を設定しているかどうかで方法が分かれている。自慢じゃないが、sysconfig の設定状況なんて自分は知らない。ということで両方試してみることにした。
まずは共通の事前準備。独自の設定ファイルを用意します。ちなみにファイル名な何でも構いません。自分は例に習い、/etc/apache2/httpd.conf.local で作成しました。 ファイル内には、以下の設定を記述。
AddHandler cgi-script .cgi .plでここから方法が分かれます。
- sysconfig を設定していない場合
/etc/apache2/httpd.conf に以下の 1 行を追加するInclude /etc/apache2/httpd.conf.local
- sysconfig を設定している場合
/etc/sysconfig/apache2 を以下のように編集APACHE_CONF_INCLUDE_FILES="httpd.conf.local"
ただ、httpd.conf の最後に、こんな文章がありました。
# Note: instead of adding your own configuration here, consider # adding it in your own file (/etc/apache2/httpd.conf.local) # putting its name into APACHE_CONF_INCLUDE_FILES in # /etc/sysconfig/apache2 -- this will make system updates # easier :)内容としては、設定をここに追加するより別ファイルに設定した方が管理しやすいと思うよーって意味合いになると思います。
ということで、せっかくなので、APACHE_CONF_INCLUDE_FILES を使うことにしました。
あと一応、Apache2 の再起動と chkconfig での起動設定はこんな感じになります。
host:~ # rcapache2 restart Starting httpd2 (prefork) done
host:~ # chkconfig apache2 on host:~ # chkconfig --list apache2 apache2 0:off 1:off 2:off 3:on 4:off 5:on 6:off参考にしたリンク
- Apache Quickstart HOWTO - openSUSE
- apache編 - openSUSEでHomeServer
- ApacheでUserdirを使用できるようにする。 - そ、そんなことないんだから!
- Installation Guide for Installing Koha 3 on openSUSE 11 [Koha Developer Wiki]
- HowTo: Configure a Linux Apache Web Server on Suse/openSUSE for SSI, Includes, CGI, Common Gateway Interface, AddHandler, ExecCGI, AllowOverride, htaccess, DocumentRoot
- openSUSE的ApacheModule読込方法 | Solitaire
- openSuSE/11/squirrelmail-1.4.15 - www.bblab.com PukiWiki
コメント