ホーム > Apache

Apacheのアーカイブ

Apache2のエラーログの場所

問題解決の糸口に、超強力になるということが最近やっと分かった(やっとそのレベルまで来た)のでメモ。

MacPorts

/opt/local/apache2/logs/error_log

XAMPP

/Applications/xampp/logs/erro_log

Linux(Ubuntu)

/var/log/apache2/error.log

CSSと違って、とっても親切に指摘してくれるから有り難い。

Ubuntu ServerにおけるApacheの各種設定ファイルについて

/etc/apache2/apache2.conf
apache2の全体設定用ファイル

/etc/apache2/conf.d/
各種Webアプリケーションなどの設定ファイルを配置するディレクトリ

/etc/apache2/envvars
環境設定ファイル

/etc/apache2/httpd.conf
過去の互換性のために存在するファイル(中身は空)

/etc/apache2/mods-available/
モジュールファイルが置かれるディレクトリ

/etc/apache2/mods-enabled/
使用するモジュールへのリンクファイルが置かれるディレクトリ

/etc/apache2/ports.conf
ポート番号

/etc/apache2/sites-available/
サイト定義ファイルが置かれるディレクトリ

/etc/apache2/sites-enabled/
使用するサイト定義ファイルへのリンクファイルが置かれるディレクトリ

/etc/init.d/apache2
rcスクリプト

/usr/sbin/a2dismod
モジュールを無効にする

/usr/sbin/a2dissite
サイトを無効にする

/usr/sbin/a2enmod
モジュールを有効にする

/usr/sbin/a2ensite
サイトを有効にする

/usr/sbin/apache2
実行用バイナリ

/usr/sbin/apache2ctl
コントロール用スクリプト

/var/www/
HTMLファイルや画像ファイルなどを配置するディレクトリ

/var/log/apache2/access.log
クライアントからのアクセスを記録するログファイル

/var/log/apache2/error.log
エラーを記録するログファイル

参照URL:徒然なるままに・・・ | Apache:インストール
他にも詳しくいろいろと。参照させていただきました。ありがとうございました。

MySQLとApacheの起動、再起動、停止

MySQLとApacheの起動、再起動、停止について理解が曖昧&間違っていたので、あらためてメモ。

my.cnf (MySQL の設定ファイル)を編集した場合、この編集内容を有効にするには MySQL Server の再起動が必要。
(この設定ファイルの場所は /etc/mysql/my.cnf )

以下、上から順に起動、再起動、停止のコマンド。

$ sudo /etc/init.d/mysql start
$ sudo /etc/init.d/mysql restart
$ sudo /etc/init.d/mysql stop

これは Ubuntu Server でのもの。(Linux全般そうなのかな?)

MacPortsで構築した環境だと以下のコマンドになる。
(ついでに Apache についても記しておく)

MySQL(version 5 の場合)

$ sudo /opt/local/share/mysql5/mysql/mysql.server start
$ sudo /opt/local/share/mysql5/mysql/mysql.server restart
$ sudo /opt/local/share/mysql5/mysql/mysql.server stop

Apache(version 2 の場合)

$ sudo /opt/local/apache2/bin/apachectl stop
$ sudo /opt/local/apache2/bin/apachectl start

特定のディレクトリにBasic認証をかける

MacPorts で作った /opt 以下の環境で
/htdocs/eclipse3/secure というディレクトリに認証をかけてみたメモ。

◎パスワードファイルの作成
/opt/local/apache2/bin/htpasswd を使用して MD5 によるパスワードファイルを作成する。

$ sudo htpasswd -c /opt/local/apache2/conf/password showjin
(オプションの -c は、新しくパスワードファイルを作成することを意味する)

このコマンドを実行するとパスワードを二度尋ねてくるので、パスワードを入力する。

これで、/opt/local/apache2/conf 内に、ユーザとそのパスワードを管理するためのファイル password が作成され、その中に showjin というユーザと、いま入力したパスワード( MD5 で暗号化されたもの)が記述されている。

*つづけて他のユーザ(およびそのパスワード)を登録する際には、オプションの -c は不要。

$ sudo htpasswd /opt/local/apache2/conf/password user_name

◎グループファイルの作成
いくつかのユーザをグループ単位でまとめて登録するためのもの。(コマンドは不要で、テキストファイルを作成するだけでいい)

・ディレクトリ
/opt/local/apache2/conf

・ファイル名
group

・書式
グループ名: ユーザ名1 ユーザ名2(改行はなしよ)
例:MyGroup: showjin showjin2

◎認証機能を有効にする
apache の設定ファイル httpd.conf を編集して、上記で用意したユーザ、グループによる認証機能を有効にする。

/opt/local/apache2/bin/httpd.conf の最後のほうに以下の記述を追加する。


AuthType Basic
AuthName "Sample Realm"
AuthUserFile "/opt/local/apache2/conf/password"
AuthGroupFile "/opt/local/apache2/conf/group"
Require group MyGroup

*AuthType は認証の種類。
*AuthName は認証名。
*AuthUserFile と AuthGroupFile はパスワードファイルとグループファイルの指定。
*Require は MyGroup グループが必須であることを指定。

編集内容を有効にするために apache を再起動。

$ sudo /opt/local/apache2/bin/apachectl restart

これで、http://localhost/eclipse3/secure ディレクトリに BASIC 認証がかかった。

UbuntuにおけるApache設定

参照URL:http://blog.kcg.ne.jp/blog/sato_si/5488
大変参考になりました。ありがとうございました。

◎ http://localhost/ のディレクトリの設定とか
/etc/apache2/sites-available/default

◎ Apache2 全般の設定ファイル
/etc/apache2/apache2.conf

◎他の設定ファイル
/etc/apache2

◎ Apache の再起動
$ sudo apache2ctl restart

◎ Webサーバの実ファイルの位置
ドキュメントルート http://localhost/ は
/var/www/

◎ CGIディレクトリの http://localhost/cgi-bin/
/usr/lib/cgi-bin/

◎ Apache2 の実行ユーザ名・グループ名は www-data
書き込みがしにくいので,/var/www/ のオーナーをログインユーザIDにすると書き込みが便利

$ sudo chown -R ログインユーザID:www-data /var/www/

ウェブサーバによる実行や書き込みなどの設定はグループのパーミッション(属性)の設定で行う。(グループ名www-dataになるので。)

ログインユーザのグループもwww-data にしておくと,ファイルを作成してもファイルのグループがwww-dataになる。以下を実行すれば,ログインIDのユーザの所属グループをwww-dataに出来る。

$ sudo usermod -g www-data ログインユーザID

アクセスしやすいようにシンボリックリンクをホームディレクトリに作成

$ cd
$ ln -s /var/www

.htaccessを使う

この記事は
.htaccessを使う
に引っ越しました。

レンタルサーバでphp.iniの内容を変更する

実際にphp.iniを変更するわけではなくて、.htaccessを使って、特定のディレクトリ(及びそれ以下のディレクトリ)における各種の設定を変更する。

例:showzine.info/test/ディレクトリにおけるcookieの使用をOffる場合。

1.以下の内容の.htaccessファイルを作成

以下はphpのversionが4の場合(5だったら5にすればいい)


php_value session.use_cookies 0

2.この.htaccessファイルをshowzine.info/test/ディレクトリにアップロード

これで、このディレクトリにおいてのみ、この設定が有効になる。
(ルートディレクトリとこのディレクトリにphpinfoを置いて確認すればわかる)

注意すること

  • 設定するには冒頭にphp_valueもしくはphp_flagというディレクティブが必要となる
  • php_valueはディレクティブに与える値が文字列の場合。論理値(OnとかOffとか)の場合はphp_flagを使用する
  • イコール(=)は不要。つけるとエラーになる(php.ini上ではsession.use_cookies = 0とかするけど、このイコールは.htaccessでの指定では不要)

参考エントリ:「.htaccess」ファイルでの設定

MySQLとApacheの再起動

MacPortsでインストールした MySQL5 と Apache2 はどっちも自動起動に設定してあるので、設定ファイルを編集した際にそれを反映させるにはどちらも Terminal からコマンドで再起動が必要。すぐ忘れるのでこれもメモ。

MySQL5

$ sudo /opt/local/share/mysql5/mysql/mysql.server start
$ sudo /opt/local/share/mysql5/mysql/mysql.server restart
$ sudo /opt/local/share/mysql5/mysql/mysql.server stop

Apache2

$ sudo /opt/local/apache2/bin/apachectl stop
$ sudo /opt/local/apache2/bin/apachectl start

ついでに、Ubuntu Server にインストールした MySQL についてもメモ。

$ sudo /etc/init.d/mysql start
$ sudo /etc/init.d/mysql restart
$ sudo /etc/init.d/mysql stop

上から順に、開始、再起動、停止。

途中から勘違いをしていて、$ mysql -u root -p とかで「再起動」になっていると思いこんでいた。
これは単に mysql monitor を起動しているだけで、MySQL Server の再起動じゃないんだな。きっと。
まだこのへんが初心者で超曖昧な自分の理解。

MacPortsによるApache2+MySQL5+PHP5の環境構築まとめ

MacPortsでApache2をインストール

ターミナルからportコマンドを使ってApache2をインストール

$ sudo port install apache2

install途中でerrorが出て止まる

Error: The following dependencies failed to build: apr-util sqlite3 pcre
Error: Status 1 encountered during processing.

sqlite3をcleanして再度apache2をinstall

$ sudo port clean --all sqlite3(sqlite3をclean)
$ sudo port install apache2(もいっかいApache2のinstallにトライ)

今度は成功。なんでだろう?
(ググったら、けっこうこの関門?を越えている人を発見)

apacheの自動起動を設定

$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist

apacheの設定ファイルが無いのでサンプルをコピー
コピーして、コピー元と同じディレクトリにhttpd.confとして置く

$ sudo cp /opt/local/apache2/conf/httpd.conf.sample /opt/local/apache2/conf/httpd.conf

apacheの設定ファイルを編集
上記の作業でコピーして用意した/opt/local/apache2/conf/httpd.conf
この「httpd.conf」の19行目辺りに以下の記述を追加(conf.d 以下を読みに行くように)

Include conf.d/*.conf

つづいて以下の一行をコメントアウト
(ないモジュールを読み込もうとして起動しないので#でコメントアウトして無効にする)

LoadModule ssl_module modules/mod_ssl.so

PHPの設定ファイルphp.iniを作成
同じく、MacPortsで入れたPHP5を使用したいので

$ sudo mkdir /opt/local/apache2/conf.d/

管理者権限で「conf.d」ディレクトリを作って

$ sudo vim /opt/local/apache2/conf.d/php.ini

同じく管理者権限でvimを起動させて「php.ini」に以下の内容を記述して保存

LoadModule php5_module modules/libphp5.so
AddHandler php5-script .php
AddType text/html .php
DirectoryIndex index.php

apacheの起動

$ sudo /opt/local/apache2/bin/apachectl start

http://localhost/ にアクセスして 「It works!」 が表示されればオーケー。
(/opt/local/apache2/htdocs/にあるindex.htmlを表示している)

ホーム > Apache

検索
フィード

ページの上部に戻る