スポンサードリンク
2012年2月22日水曜日
ホームページのアイコン
ホームページにアイコンが表示されいてるサイトがほとんどなので、
自分のホームページにもアイコンを表示してみようと思う。
その備忘録。
HTMLに以下を記載することでよいようだ。
<HEAD>
<LINK rel="ICON" href="AAAA.ico">
</HEAD>
AAAAは実際に表示したアイコンファイル名称。
以上
2012年2月21日火曜日
ホスト名変更方法
ドメインを取得した!
websaba.comというドメイン名。
特に意味はないけど、サーバーを意識して鯖(saba)としてみた。
■まず端末パソコンのホスト名を書き換える
1.パソコンのホスト名をwebsaba.comにする。
(コマンド)
$su -
#hostname websaba.com
これで、/etc/sysconfig/networkファイルのHOSTNAMEがwebsaba.comに書き換わる
2./etc/hostsファイルを書き換える
(コマンド)
#vi /etc/hosts
<変更前>
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
<変更後>
127.0.0.1 websaba.com localhost
::1 websaba6.com6 localhost6
3.networkサービスを再起動する
(コマンド)
#service network restart
4.ターミナルを終了して、再度開く
[user名@websaba ~]となっていることでホスト名変わっていることが分かる
■Webサーバアドレスをwww.websaba.comにする
1.apche(httpd)の設定ファイルを開く
(コマンド)
#vi /etc/httpd/conf/httpd
ServerName www.websaba.com:80
に書き換える
2.apache(httpd)再起動
#service httpd restart
■ドメイン取得先のネームサーバに登録
MyDNSさまのDNSをプライマリ・セカンダリ登録する。
MyDNSさまのドメイン登録に以下として設定する
FQDN : websaba.com
MX : www
MX : websaba.com
以上
websaba.comというドメイン名。
特に意味はないけど、サーバーを意識して鯖(saba)としてみた。
■まず端末パソコンのホスト名を書き換える
1.パソコンのホスト名をwebsaba.comにする。
(コマンド)
$su -
#hostname websaba.com
これで、/etc/sysconfig/networkファイルのHOSTNAMEがwebsaba.comに書き換わる
2./etc/hostsファイルを書き換える
(コマンド)
#vi /etc/hosts
<変更前>
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
<変更後>
127.0.0.1 websaba.com localhost
::1 websaba6.com6 localhost6
3.networkサービスを再起動する
(コマンド)
#service network restart
4.ターミナルを終了して、再度開く
[user名@websaba ~]となっていることでホスト名変わっていることが分かる
■Webサーバアドレスをwww.websaba.comにする
1.apche(httpd)の設定ファイルを開く
(コマンド)
#vi /etc/httpd/conf/httpd
ServerName www.websaba.com:80
に書き換える
2.apache(httpd)再起動
#service httpd restart
■ドメイン取得先のネームサーバに登録
MyDNSさまのDNSをプライマリ・セカンダリ登録する。
MyDNSさまのドメイン登録に以下として設定する
FQDN : websaba.com
MX : www
MX : websaba.com
以上
2012年2月20日月曜日
サイトアクセス制限2
よく会員限定サービスにアクセスするときに
表示される認証画面を自分のサイトにも導入したい。
1. Apacheサーバの設定でBASIC認証システムを使う方法
2. PHPでBASIC認証手順を記述する方法
2つ方法があることが分かったので、
次は、2.PHPのソースから行う方法を試してみよう。
以下に手順を備忘録。
<手順概要>
1. PHPソースを用意する
<詳細手順>
1. 以下ソースを記述したファイルを/var/www/html以下に用意する
---PHPソース ファイル名をbasicauthtest.phpとする ---
<?php
if ( !isset($_SERVER["PHP_AUTH_USER"])
|| !($_SERVER["PHP_AUTH_USER"] == "guest"
&& $_SERVER["PHP_AUTH_PW"] == "passwords") )
{
header("WWW-Authenticate: Basic realm=\"Welcome My Site\"");
header("HTTP/1.0 401 Unauthorized");
echo "ユーザまたはパスワードが不正です。\n";
echo "サイトアクセスしたい場合は、こちらへ連絡ください。\n";
echo "mailto : \n";
echo "sayadorisamurai@gmail.com\n";
exit;
}
header("Location: http://www.sayadorisamurai.websaba.com/");
?>
---ここまで
<動作確認>
1.ブラウザからbasicauthtest.phpにアクセスしてみる
http://localhost/basicauthtest.php
2.ユーザ名・パスワードを入力する画面が表示されたら成功!
以上
表示される認証画面を自分のサイトにも導入したい。
1. Apacheサーバの設定でBASIC認証システムを使う方法
2. PHPでBASIC認証手順を記述する方法
2つ方法があることが分かったので、
次は、2.PHPのソースから行う方法を試してみよう。
以下に手順を備忘録。
<手順概要>
1. PHPソースを用意する
<詳細手順>
1. 以下ソースを記述したファイルを/var/www/html以下に用意する
---PHPソース ファイル名をbasicauthtest.phpとする ---
<?php
if ( !isset($_SERVER["PHP_AUTH_USER"])
|| !($_SERVER["PHP_AUTH_USER"] == "guest"
&& $_SERVER["PHP_AUTH_PW"] == "passwords") )
{
header("WWW-Authenticate: Basic realm=\"Welcome My Site\"");
header("HTTP/1.0 401 Unauthorized");
echo "ユーザまたはパスワードが不正です。\n";
echo "サイトアクセスしたい場合は、こちらへ連絡ください。\n";
echo "mailto : \n";
echo "sayadorisamurai@gmail.com\n";
exit;
}
header("Location: http://www.sayadorisamurai.websaba.com/");
?>
---ここまで
<動作確認>
1.ブラウザからbasicauthtest.phpにアクセスしてみる
http://localhost/basicauthtest.php
2.ユーザ名・パスワードを入力する画面が表示されたら成功!
以上
サイトアクセス制限1
よく会員限定サービスにアクセスするときに
表示される認証画面を自分のサイトにも導入したい。
1. Apacheサーバの設定でBASIC認証システムを使う方法
2. PHPでBASIC認証手順を記述する方法
2つ方法があることが分かったので、
まずは、1.Apacheサーバの設定を使用する方法を試してみよう。
以下に手順を備忘録。
<手順概要>
1. 会員限定したいサービス用にディレクトリを作成する
2. パスワード情報ファイル(.htpasswd)を作成する
3. Apacheの設定ファイルにディレクトリとパスワード情報の設定を追加する。
<詳細手順>
1.スーパーユーザになる
(コマンド)
$su -
2. 会員限定したいサービス用にディレクトリを作成する
(コマンド)
#mkdir -p /var/www/html/memberonly
※Webアクセスされるデフォルトのディレクトリが/var/www/html/である場合
2. パスワード情報ファイル(.htpasswd)を作成する
(コマンド)
#htpasswd -c /etc/httpd/conf/.htpasswd (任意ユーザ名)
※このファイルは基本的にどこに作成してもよい。
ただ、Apache用の設定なので、/etc/httpd/conf以下がよいと思われる。
3. Apacheの設定ファイルにディレクトリとパスワード情報の設定を追加する。
(コマンド)
#vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/memberonly">
AuthType Basic <- Basic認証を使うよ!と指示
AuthName "Site Manager" <- ここは何でもよい
AuthUserFile /etc/httpd/.htpasswd <- htpasswdファイルの絶対パスを指定
Require user (任意ユーザ名) <- htpasswdを作るとき指示したユーザ名
</Directory>
4. Apacheを再起動
(コマンド)
#service httpd restart
<動作確認>
1.ブラウザからmemberonlyにアクセスしてみる
http://localhost/memberonly
2.ユーザ名・パスワードを入力する画面が表示されたら成功!
以上
表示される認証画面を自分のサイトにも導入したい。
1. Apacheサーバの設定でBASIC認証システムを使う方法
2. PHPでBASIC認証手順を記述する方法
2つ方法があることが分かったので、
まずは、1.Apacheサーバの設定を使用する方法を試してみよう。
以下に手順を備忘録。
<手順概要>
1. 会員限定したいサービス用にディレクトリを作成する
2. パスワード情報ファイル(.htpasswd)を作成する
3. Apacheの設定ファイルにディレクトリとパスワード情報の設定を追加する。
<詳細手順>
1.スーパーユーザになる
(コマンド)
$su -
2. 会員限定したいサービス用にディレクトリを作成する
(コマンド)
#mkdir -p /var/www/html/memberonly
※Webアクセスされるデフォルトのディレクトリが/var/www/html/である場合
2. パスワード情報ファイル(.htpasswd)を作成する
(コマンド)
#htpasswd -c /etc/httpd/conf/.htpasswd (任意ユーザ名)
※このファイルは基本的にどこに作成してもよい。
ただ、Apache用の設定なので、/etc/httpd/conf以下がよいと思われる。
3. Apacheの設定ファイルにディレクトリとパスワード情報の設定を追加する。
(コマンド)
#vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/memberonly">
AuthType Basic <- Basic認証を使うよ!と指示
AuthName "Site Manager" <- ここは何でもよい
AuthUserFile /etc/httpd/.htpasswd <- htpasswdファイルの絶対パスを指定
Require user (任意ユーザ名) <- htpasswdを作るとき指示したユーザ名
</Directory>
4. Apacheを再起動
(コマンド)
#service httpd restart
<動作確認>
1.ブラウザからmemberonlyにアクセスしてみる
http://localhost/memberonly
2.ユーザ名・パスワードを入力する画面が表示されたら成功!
以上
2012年2月19日日曜日
MySQLのバージョン
MySQLのバージョンチェックする方法の備忘録
1.ルートになる
(コマンド)
$su -
2.以下コマンドを打つ
(コマンド)
#mysql -D (データベース名) -e "select version();" -u (ユーザ名) -p
3.パスワードを要求されるので、入力する
4.バージョンが表示される。
1.ルートになる
(コマンド)
$su -
2.以下コマンドを打つ
(コマンド)
#mysql -D (データベース名) -e "select version();" -u (ユーザ名) -p
3.パスワードを要求されるので、入力する
4.バージョンが表示される。
文字化け問題 PHP&MySQL
PHPもMySQLもすべてUTF8にしていたつもりだが、
いざPHPでデータベースのレコード拾ったら文字化けしてしまった。
そのときの解決についての備忘録。
<PHPバージョン>
5.3.3
<MySQLバージョン>
5.1.61
■PHP側設定 (/etc/php.ini)
※関係キーのみ抜粋
<変更前>mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = UTF-8
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = "";
default_charset = "UTF-8"
<変更後>
PHP.iniは何も変更していない。
※色々調べたら、設定ではエンコード変換はさせずに、
PHPソース内でエンコード設定を毎回書くべきだ・・・という玄人の人の
意見があった。設定で内部で自動変換してしまうかららしい。
できるかぎりソース内で文字エンコード設定するようにしていこう!
■MySQL側設定 (/etc/my.cnf)
※全設定記載
<変更前>
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
#old_passwords=1
;default-character-set=utf8
character-set-server=utf8
;skip-character-set-client-handshake
[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
<変更後>
赤色部分のコメントアウトを除去した。
skip-character-set-client-handshakeというキーが重要のようだ。
これがなければ文字化けしてしまうらしい。
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
#old_passwords=1
default-character-set=utf8
character-set-server=utf8
skip-character-set-client-handshake
[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
いざPHPでデータベースのレコード拾ったら文字化けしてしまった。
そのときの解決についての備忘録。
<PHPバージョン>
5.3.3
<MySQLバージョン>
5.1.61
■PHP側設定 (/etc/php.ini)
※関係キーのみ抜粋
<変更前>mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = UTF-8
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = "";
default_charset = "UTF-8"
<変更後>
PHP.iniは何も変更していない。
※色々調べたら、設定ではエンコード変換はさせずに、
PHPソース内でエンコード設定を毎回書くべきだ・・・という玄人の人の
意見があった。設定で内部で自動変換してしまうかららしい。
できるかぎりソース内で文字エンコード設定するようにしていこう!
■MySQL側設定 (/etc/my.cnf)
※全設定記載
<変更前>
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
#old_passwords=1
;default-character-set=utf8
character-set-server=utf8
;skip-character-set-client-handshake
[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
<変更後>
赤色部分のコメントアウトを除去した。
skip-character-set-client-handshakeというキーが重要のようだ。
これがなければ文字化けしてしまうらしい。
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
#old_passwords=1
default-character-set=utf8
character-set-server=utf8
skip-character-set-client-handshake
[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
以上
PHPからMySQLへ接続する際の注意点
php-mysqlが必要。
yum -y install php-mysql
mysql-develが必要。
yum -y install mysql-devel
/etc/php.iniのmysqlのホストにlocalhostと明示的にセットしてあげること
/etc/php.iniのmysqlソケットパスに/etc/my.cnfのソケットパスと同じものを明示すること。
PC再起動でうまく接続できるようになった!!
yum -y install php-mysql
mysql-develが必要。
yum -y install mysql-devel
/etc/php.iniのmysqlのホストにlocalhostと明示的にセットしてあげること
/etc/php.iniのmysqlソケットパスに/etc/my.cnfのソケットパスと同じものを明示すること。
PC再起動でうまく接続できるようになった!!
PHPにSmartyインストール
PHP開発に便利なSmartyを導入する。
導入方法を備忘録する。
<参考>
CentOSは、PHPのデフォルトのインストール先は以下になる。
/var/lib/php
これを
/usr/local/lib/phpに変更していることを前提とする
■インストール準備
1.rootになる
(コマンド)
$su -
2.PHPの設定ファイル(/etc/php.ini)をviで開く
(コマンド)#vi /etc/php.ini
3.include_pathを検索する。
(vi操作)コマンド入力モード
/include_path + ENTER
4. UNIX : "/path1:/path2"と記載されている行の下のコメントアウトを外す
(vi操作)編集モード
<変更前>;include_path = ".:/php/includes"
<変更後>include_path = ".:/php/includes"
5. includesフォルダのパスを記述する
<変更前>include_path = ".:/php/includes"
<変更後>include_path = ".:/php/includes"
■Smartyインストール方法
1.Smartyの最新版をダウンロードする (tarボールにしておくこと)
http://www.smarty.net/download
2.phpフォルダにincludesフォルダを作成する
(コマンド)
#mkdir /usr/local/lib/php
#mkdir /usr/local/lib/php/includes
※子ディレクトリも一気に作成してもよい
3. ダウンロードしたSmartyパッケージ(tar.gz)をソースフォルダに移動
(コマンド)
#mv /home/(user)/ダウンロード/Smarty-XX.X.XX.tar.gz /usr/local/src
4.tarボールを解凍
#tar zxvf Smarty-XX.X.XX.tar.gz
5.解凍してできるSmarty-XX.X.XXディレクトリ以下にあるlibsディレクトリを
phpフォルダのincludes以下にSmartyディレクトリとして移動する。
#mv /usr/local/src/Smarty-X.X.XX /usr/local/lib/php/includes/Smarty
■インストール後の動作確認
1./var/www/html以下にsmartyversion.phpを作成
#touch smartversion.php
2.smartyversion.phpに以下コーディングを実施
(vi操作)
<?php
require_once("Smarty/Smarty.class.php");
$smaty = new Smarty;
echo "Smarty Ver.{$smaty->_version}";
?>
3.ブラウザでアクセスしてSmartyバージョンが表示されたらインストール成功!
http://(サーバIP)/smartyversion.php
<表示内容>
Smarty Ver.XX.X.XX
※XX.X.XXは、インストールしたSmartyのバージョンが表示される
以上
導入方法を備忘録する。
<参考>
CentOSは、PHPのデフォルトのインストール先は以下になる。
/var/lib/php
これを
/usr/local/lib/phpに変更していることを前提とする
■インストール準備
1.rootになる
(コマンド)
$su -
2.PHPの設定ファイル(/etc/php.ini)をviで開く
(コマンド)#vi /etc/php.ini
3.include_pathを検索する。
(vi操作)コマンド入力モード
/include_path + ENTER
4. UNIX : "/path1:/path2"と記載されている行の下のコメントアウトを外す
(vi操作)編集モード
<変更前>;include_path = ".:/php/includes"
<変更後>include_path = ".:/php/includes"
5. includesフォルダのパスを記述する
<変更前>include_path = ".:/php/includes"
<変更後>include_path = ".:/php/includes"
■Smartyインストール方法
1.Smartyの最新版をダウンロードする (tarボールにしておくこと)
http://www.smarty.net/download
2.phpフォルダにincludesフォルダを作成する
(コマンド)
#mkdir /usr/local/lib/php
#mkdir /usr/local/lib/php/includes
※子ディレクトリも一気に作成してもよい
3. ダウンロードしたSmartyパッケージ(tar.gz)をソースフォルダに移動
(コマンド)
#mv /home/(user)/ダウンロード/Smarty-XX.X.XX.tar.gz /usr/local/src
4.tarボールを解凍
#tar zxvf Smarty-XX.X.XX.tar.gz
5.解凍してできるSmarty-XX.X.XXディレクトリ以下にあるlibsディレクトリを
phpフォルダのincludes以下にSmartyディレクトリとして移動する。
#mv /usr/local/src/Smarty-X.X.XX /usr/local/lib/php/includes/Smarty
■インストール後の動作確認
1./var/www/html以下にsmartyversion.phpを作成
#touch smartversion.php
2.smartyversion.phpに以下コーディングを実施
(vi操作)
<?php
require_once("Smarty/Smarty.class.php");
$smaty = new Smarty;
echo "Smarty Ver.{$smaty->_version}";
?>
3.ブラウザでアクセスしてSmartyバージョンが表示されたらインストール成功!
http://(サーバIP)/smartyversion.php
<表示内容>
Smarty Ver.XX.X.XX
※XX.X.XXは、インストールしたSmartyのバージョンが表示される
以上
2012年2月15日水曜日
独自ドメインを取得!
とりあえず、走り書き
あとできれいにまとめます!
1.お名前.comでドメインを取得
キャンペーン中(2012/2/13 19:00まで)だったので.comドメインが
なんと480円で取得できました。
ちなみにwebsaba.comです。
いろいろ悩んだ挙句いいドメイン名が浮かばず、とりあえずこれで。
そのときユーザ名とログイン名が発行され、登録メールに送られてくるので、
しっかり保存しておくこと。
今後お名前.comにアクセスする時、必要になるので。
2.取得したドメインを使うためには、お名前.comのネームサーバ登録が必要。
自分が使用しているプロバイダは@T-COMで、固定IPアドレスはお金払っても
取得することは不可能なので、MyDNSというサービスを使用して
自分のホストマシンをドメインと結びつけることにした。
MyDNSは本当にすばらしいサービスだ。
すでにMyDNSは登録ずみだったので、登録方法についてはスキップ
MyDNSにホストマシンのServerNameを登録すること。
SayadoriSamurai.mydns.jp -> SayadoriSamurai.websaba.comに変える
MyDNSのネームサーバは、
プライマリ : ns0.mydns.jp
セカンダリ : ns1.mydns.jp
なので、これをお名前.comのネームサーバ登録の独自ネームサーバ登録欄で
設定する。
3. ホストマシンの/etc/httpd/conf/httpd.confのホストマシンのServerName
をSayadoriSamurai.websaba.comに変える
以上
あとできれいにまとめます!
1.お名前.comでドメインを取得
キャンペーン中(2012/2/13 19:00まで)だったので.comドメインが
なんと480円で取得できました。
ちなみにwebsaba.comです。
いろいろ悩んだ挙句いいドメイン名が浮かばず、とりあえずこれで。
そのときユーザ名とログイン名が発行され、登録メールに送られてくるので、
しっかり保存しておくこと。
今後お名前.comにアクセスする時、必要になるので。
2.取得したドメインを使うためには、お名前.comのネームサーバ登録が必要。
自分が使用しているプロバイダは@T-COMで、固定IPアドレスはお金払っても
取得することは不可能なので、MyDNSというサービスを使用して
自分のホストマシンをドメインと結びつけることにした。
MyDNSは本当にすばらしいサービスだ。
すでにMyDNSは登録ずみだったので、登録方法についてはスキップ
MyDNSにホストマシンのServerNameを登録すること。
SayadoriSamurai.mydns.jp -> SayadoriSamurai.websaba.comに変える
MyDNSのネームサーバは、
プライマリ : ns0.mydns.jp
セカンダリ : ns1.mydns.jp
なので、これをお名前.comのネームサーバ登録の独自ネームサーバ登録欄で
設定する。
3. ホストマシンの/etc/httpd/conf/httpd.confのホストマシンのServerName
をSayadoriSamurai.websaba.comに変える
以上
2012年2月12日日曜日
鯖MySQLバックアップについて
mysqlのデータがいつHDDクラッシュしてもよいようにバックアップしておく。
mysqlのバックアップには、mysqlhot~というPerlスクリプトも用意されているようだが、
innodbでは使えないので、mysqldumpという最も標準的なツールを使用する。
(参考)
innodbかどうかを調べるには、mysqlのログを調べればよい
cat /var/spool/mail/(mysqlユーザ rootの場合はroot)
1.ルートになる
$su -
2.mysqldumpでバックアップする
#mysqldump --opt -u (ユーザ名) -p --all-databases > (バックアップ先)
ex) mysqldump --opt -u root -p --all-databases > /home/hoge/mysqldump.backup
3.Enter Passwordとパスワード入力を求められるのでパスワードを入力する
以上
mysqlのバックアップには、mysqlhot~というPerlスクリプトも用意されているようだが、
innodbでは使えないので、mysqldumpという最も標準的なツールを使用する。
(参考)
innodbかどうかを調べるには、mysqlのログを調べればよい
cat /var/spool/mail/(mysqlユーザ rootの場合はroot)
1.ルートになる
$su -
2.mysqldumpでバックアップする
#mysqldump --opt -u (ユーザ名) -p --all-databases > (バックアップ先)
ex) mysqldump --opt -u root -p --all-databases > /home/hoge/mysqldump.backup
3.Enter Passwordとパスワード入力を求められるのでパスワードを入力する
以上
登録:
投稿 (Atom)