ラベル Apache の投稿を表示しています。 すべての投稿を表示
ラベル Apache の投稿を表示しています。 すべての投稿を表示

2013年7月25日木曜日

Apache2.0のサポート終了

「Apache HTTP Server 2.0.65」が7月9日に公開れるも、これが最後

7/9に公開された「Apache HTTP Server 2.0.65」。今回のVersionで開発は打ち切りとなるらしい。

今回のVersionでは、セキュリティなどの修正があるが、2.2や2.4での問題が一部含まれていないという。

2.0は今後セキュリティ面で脆弱となるため、2.2または2.4への移行を早めに行ったほうがいいだろう。



2012年10月13日土曜日

.htpasswdの作成と.htaccessによる認証(アクセス制御)


.htpasswdの作成

.htpasswdファイルの保存場所は、public_htmlより上位フォルダへ作成。
.htpasswdファイル用の適当なフォルダを作成しておくとよい。

新規作成の場合は、"-c" オプションを付ける。
user1 を作成
# htpasswd -c /home/user/pwd/.htpasswd user1


パスワードを入力すると.htpasswdに user1 が作成される。

# New password:
# Re-type new password:
# Adding password for user user1





ユーザを追加する場合は、"-c" オプションは付けない。(-c をつけると以前の情報が消えてしまう)
user2 を追加する
# htpasswd /home/user/pwd/.htpasswd user2


また、パスワードの変更は同様の手順で上書きされる。
user1 のパスワードを変更

# htpasswd /home/user/pwd/.htpasswd user1





.htaccessの作成

.htaccessはアクセス制御を行いたいフォルダに置く。例えば、.htpasswdを利用したパスワードを設定したいだけなら、下のようになる。

AuthUserFile /home/user/pwd/.htpasswd
AuthGroupFile /dev/null
AuthName "Secure site"
AuthType Basic
require valid-user


各項目の概略

AuthUserFileパスワードファイルの場所
AuthGroupFileグループファイルの指定、必要ないので "/dev/null"
AuthName認証時のメッセージ
AuthType認証方法、Basic認証を指定
requirevalid-userは全てのユーザ、"user [username]"で任意のユーザ


また、Basic認証とIPアドレスによる認証を行いたい場合は下のように記述する。


Order Deny,Allow
Deny from all
Allow from 192.168.1
Allow from 127.0.0.1

AuthUserFile /home/user/pwd/.htpasswd
AuthGroupFile /dev/null
AuthName "Secure site"
AuthType Basic
require valid-user

上記は、指定したIPアドレスとBasic認証の両方が一致しなければアクセスできないようになる
どちらか片方の条件を満たしたら許可したい場合は、"Satisfy Any" の記述を加える。


Order Deny,Allow
Deny from all
Allow from 192.168.1
Allow from 127.0.0.1

AuthUserFile /home/user/pwd/.htpasswd
AuthGroupFile /dev/null
AuthName "Secure site"
AuthType Basic
require valid-user

Satisfy Any


また、携帯やスマートフォンなどからの制御も行いたい場合は次のような記述方法もある。

SetEnvIf X-UP-SUBNO ^05001234567890_ag\.ezweb\.ne\.jp$ mobilephone
SetEnvIf X-UP-SUBNO ^05012345678901_ae\.ezweb\.ne\.jp$ mobilephone
Order Deny,Allow
Deny from all
Allow from env=mobilephone
Allow from 192.168.1
Allow from 127.0.0.1

AuthUserFile /home/user/pwd/.htpasswd
AuthGroupFile /dev/null
AuthName "Secure site"
AuthType Basic
require user user1

Satisfy Any

上記は指定されたユーザ(user1)での au のサブクラスID の認証を加え、指定された契約者IDの端末または指定されたIPアドレスで認証、それ以外はBasic認証によるアクセス制御となる。




2012年3月20日火曜日

my.cnf、php.iniの編集

my.cnfの編集


基本UTF-8をベースとします。
# vi /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
old_passwords=1

default-character-set=utf8
skip-character-set-client-handshake

character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqldump]
default-character-set=utf8



設定の反映
# /etc/rc.d/init.d/mysqld restart
mysqld を停止中: [ OK ]
mysqld を起動中: [ OK ]




php.iniの編集


こちらもUTF-8を標準設定します。
# vi /etc/php.ini

//デフォルトの文字コード
;default_charset = "iso-8859-1"
default_charset = "UTF-8"

//タイムゾーン
;date.timezone =
date.timezone = "Asia/Tokyo"

//利用言語の設定
;mbstring.language = Japanese
mbstring.language = Japanese

//マルチバイト文字列関数のデフォルト文字コード
;mbstring.internal_encoding = EUC-JP
mbstring.internal_encoding = UTF-8

//HTTP入出力の文字コード変換。passにして、自動変換offとする。
;mbstring.http_input = auto
mbstring.http_input = pass

;mbstring.http_output = SJIS
mbstring.http_output = pass

;mbstring.encoding_translation = Off
mbstring.encoding_translation = Off

//文字コード自動判別に優先する文字コード
:mbstring.detect_order = auto
mbstring.detect_order = auto

//変換に失敗した場合に表示する文字
;mbstring.substitute_character = none;
mbstring.substitute_character = none;

//オーバーロードされる関数の指定(今回はオーバーロードしない)
;mbstring.func_overload = 0
mbstring.func_overload = 0

//文字コードの自動判別を厳密に行うかの設定
:mbstring.strict_detection = Off
mbstring.strict_detection = Off

//MIMEタイプの指定(空白)
;mbstring.http_output_conv_mimetype=
mbstring.http_output_conv_mimetype=



設定の反映
# /etc/rc.d/init.d/httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]

2012年3月14日水曜日

CentOS Apache2.2の設定(ユーザーディレクトリ)

Apache 2.4.1(安定版)がリリースされたようだ、認証の改良や複数のMPMを動的に読み込みできるなど、追加モジュールも増えたが、 Apache 2.2と比べてCPU使用率やメモリー消費が多いようだ。現段階、我が家では Apache 2.2 を使用する。

ユーザーディレクトリの設定



httpd.confを編集
# vi /etc/httpd/conf/httpd.conf

#AddDefaultCharset UTF-8 <-コメントアウト(文字化け対策)

//これより以下の部分は、Aliasでのエラー回避のため
最終行へ移動( ~ を表示しない場合)

<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 disabled <-コメントアウト

#
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disabled" line above, and uncomment
# the following line instead:
#
UserDir public_html <-コメント解除

//ユーザは~(チルダ)なしでアクセスできるよう設定を追加
AliasMatch ^/([^/]+)/(.*) /home/$1/public_html/$2
</IfModule>

//下記を追加
<Directory /home/*/public_html>
AllowOverride All <- .htaccess許可
Options IncludesNoExec ExecCGI FollowSymLinks <- CGI許可
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>


設定の反映
# /etc/rc.d/init.d/httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]


ユーザディレクトリ作成
# mkdir /home/user/public_html
# chmod 755 /home/ <- パーミッション確認
# chmod 755 /home/user/ <- パーミッション変更
# chmod 755 /home/user/public_html/ <- パーミッション変更



確認
$ vi /home/seiji/public_html/index.html







※SELinuxが有効のときに、"Permission denied..." エラーが出る場合がある。SELinuxが有効か無効かは "getenforce" コマンドで確認する

# getenforce
Enforcing <-SELinux有効
Permissive <-SELinux無効


無効にするには、rootで下記コマンド。
# setenforce 0


また、起動時に無効になるよう設定しておく。
# vi /etc/sysconfig/selinux

#SELINUX=enforcing
SELINUX=disabled

2012年3月1日木曜日

CentOS6.2にLAMPインストール

LAMPインストール



LinuxのRPM互換パッケージ管理システムであるyumを使ってLAMPをインストールする。
LAMPとは、Linux+Apache+MySQL+PHPのことである。

まずはパッケージの確認
# yum list install httpd php mysql-server
httpd.i686 2.2.15-15.el6.centos.1
mysql-server.i686 5.1.61-1.el6_2.1
php.i686 5.3.3-3.el6_2.6


確認ができたらインストール
# yum install httpd php mysql-server


次に追加モジュールのインストール、まずはパッケージの確認
# yum list install mod_auth_mysql php-mysql php-mbstring
php-gd perl-Net-SSLeay expect


追加モジュールのインストール
# yum install mod_auth_mysql php-mysql php-mbstring
php-gd perl-Net-SSLeay expect


Apacheの設定



# vi /etc/hosts



# vi /etc/httpd/conf/httpd.conf
(下記項目の値を変更)



MySQLの設定


# vi /etc/my.cnf
(下記を追加)


MySQLの再起動
# /etc/rc.d/init.d/mysqld start


rootでログインし、文字コードを確認
mysql -u root
mysql> show variables like 'char%';


MySQLパスワード設定


localhost,Sever,127.0.0.1パスワード設定をそれぞれ設定する
set password for root@localhost = password('パスワード');
set password for root@myserver = password('パスワード');
set password for root@127.0.0.1 = password('パスワード');

パスワードの確認
mysql> select host,user,password from mysql.user;


自動起動の設定



Apacheの自動起動設定
# /etc/rc.d/init.d/httpd start
# chkconfig httpd on


設定の確認
# chkconfig --list httpd


MySQLの自動起動設定
# chkconfig mysqld on


設定の確認
# chkconfig --list mysqld


Apache,PHP 動作確認



/etc/httpd/conf/httpd.conf 内の DocumentRoot (通常は"/var/www/html")で指定されているフォルダに、確認用ファイルを追加

# vi /var/www/html/index.html



$ vi /var/www/html/info.php



WindowsPCなどからブラウザで確認
http://192.100.xxx.xxx/
http://192.100.xxx.xxx/info.php





通常はhttpdの再起動で設定が反映されるが、うまく動作しない場合は、一度OSを再起動。