スポンサードリンク

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

以上

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

よく会員限定サービスにアクセスするときに
表示される認証画面を自分のサイトにも導入したい。

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日日曜日

PHPのバージョン

PHPのバージョンをチェックする方法

1.以下のコマンドを記述したスクリプトを実行する
<?php phpinfo() ?>


MySQLのバージョン

MySQLのバージョンチェックする方法の備忘録

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でプログラム作っても何か動作がおかしいとき、
ヒントを得るにはHTTPDのログを見ればよい。

#tail /var/log/httpd/error_log

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再起動でうまく接続できるようになった!!

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のバージョンが表示される

以上

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に変える




以上

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とパスワード入力を求められるのでパスワードを入力する


以上