スポンサードリンク

2011年11月13日日曜日

Backup用のHDDを用意する

今まで正常に動いてくれていたのに・・・。
急に起動時にSELinuxがEnforceだのどうので起動しなくなってしまった。
システムの構築は、またやればいいけど、サーバサイドスクリプトやJavaのソース
がなくなってしまっては、再作成に膨大な時間を要してしまう・・・。

やっぱりバックアップって大切だなぁと思い、その備忘録。

(CentOS6のインストールDVDのレスキューから無事OSは起動するようになったので、
 事なきを得たが、普段Mac Windows使いなので、本当に肝を冷やしてしまったので、
 ぜひ今後はバックアップを常にとるように心がけたい。)


■USB接続の外付けHDDをLinuxフォーマットして、マウントする方法
   (既にデータが存在するHDDの場合)

1.USB接続の外付けHDDをLinuxマシンに接続する

2.suになる
$su

3.デバイスファイルを確認する
#dmesg

※末尾に記載されているデバイスが今回対象になるファイル
ここでは、/dev/sdbとする。

4.fdiskする
fdisk /dev/sdb

コマンド(mでヘルプ): m ←ヘルプを表示する


コマンド(mでヘルプ): d ← 領域を削除する(HDDにデータない場合はしなくてよい)


コマンド(mでヘルプ): n ←n 新たに領域を作成する
                            p ←基本領域(1-4)を選択
                            1 ←領域番号1とする (sdb1となる)
                            1 ←最初シリンダ
                            maxの数字 ←最後シリンダ(選択できる数字の最大を入力する)

コマンド(mでヘルプ): p ← テーブルを表示する
コマンド(mでヘルプ): w ←テーブルをディスクに書き込み、終了する

5.ext4でフォーマットする
$mkfs.ext4 /dev/sdb1

6.フォーマット完了後のHDDをマウント
USBデバイスを一旦Linuxマシンから取り外し、再接続すれば自動マウントされる

/media/以下に外付けHDDのディレクトリがある

以上

2011年11月5日土曜日

MacとLinuxでファイルのやりとりをする

Macで作ったファイルをLinuxに、Linuxで作ったファイルをMacに、
簡単にファイルやりとりをしたい、その備忘録。

最初は、Sambaでファイルのやりとりをしようと、設定をしたのだが、
MacからSamba公開ディレクトリにアクセスはできてMacにマウントできても
なぜかフォルダやファイルを作れないし、Linuxのファイルなども見えない。
・・・1日がかりでやったのだが解決できず。

そこで、VSFTPDサービスによるFTPによるファイルやりとりに変更!!
その備忘録。

<Linux側設定>

1. LinuxにvsFTPDサービスがインストールされているか確認する。


$su -
#which vsftpd
/usr/sbin/vsftpd と表示されていたらインストール済みなので、3.へ


2.インストールされていない場合、以下を実行し、インストール。

#yum -y install vsfptd


3. vsftpdの設定ファイルを書き換える

#vi /etc/vsftpd/vsftpd.conf

以下のキーになっているか確認、なっていない場合は、書き換える。
※家庭内のローカルアドレスからのアクセスを考えている。
また、20番ポートでのファイル送受信とし、パッシブモードは考慮していない。

local_enable = YES
  (ローカルユーザがFTPアクセスできるようにする設定)

local_umask = 022
    (アップロードされたファイルのパーミッション設定
  777ー022がパーミッションとなる。つまり755)

 write_enable = YES
    (書き込み可能にする設定)

 ascii_download_enable = YES
 ascii_upload_enable = YES
    (asciiモードでのアップロード・ダウンロード可能にする設定)

connect_from_port_20 = YES
    (アクティブモードで20番ポートを使用する設定)


4. ファイアウォールでFTPポートを許可する

  
Fig1. FTPポート許可



5. vsftpdを再起動する

#service vsftpd restart



6.次回Linux起動時に自動でvsftpdを自動実行する

#chkconfig vsftpd on



7.しっかり自動起動になっているか確認する

#chkconfig --list vsftpd
vsftpd   0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ


<Mac側設定>

1. FTPクライアントソフト「Cyberduck」を使用してアクセスする

※ネットからダウンロードしてください。
                                                  Fig2. Cyberduckのかわいいアイコン

2. Cyberduckを起動する
Fig3. Cyberduck起動画面

3.新規接続を押して、サーバアドレスとログイン情報を入力する

Fig4. FTPサーバアドレス・ログイン情報を入力




4. 接続FTPプロトコルの選択バーよりSFTPを選択する

          

                                           Fig5. SFTPを選択する


5. 接続ボタンを押す。

 無事ユーザのホームディレクトリにアクセスできました。
 ユーザとしてアクセスしているので読み書き可能な状態です。
 ファイル追加・削除等できるので注意!

                                                Fig6. ファイルアクセスできている状況



以上

MacからLinuxをリモートデスクトップ操作する

会社ではWindowsなので、自宅ではできるだけMacマシンを触っていたい!
ということで、Macマシンからサーバ用マシンのLinuxにリモートデスクトップで
操作できるようにしたので、その備忘録。

VNCによりリモートデスクトップできるようにしたことで、
Linuxマシンは、電源ONのみでデスクトップ・キーボード・マウスも接続しておく必要なし!

■MacからLinuxマシンにリモートデスクトップ接続する設定

VNCという機能を使用して実現する。
LinuxをVNCサーバ, macをVNCクライアントとする。

<Linux側>
1. メニュー - システム - 設定 - リモート・デスクトップを選択

    設定画面が開くので以下のFig1の通り、設定する。

   注意
   "このマシンへの接続を毎回確認する" にチェックを入れると、
   アクセスする度にLinuxマシンでOKを入力しないといけないので、
   必ずチェックを外しておく。

Fig1. リモートデスクトップの設定画面
2. ファイアウォールでVNCポートを開く
   
    メニュー - システム - 管理 - ファイアウォールを選択
    Fig2の画面が表示されるので、 追加ボタンを押す。

                             Fig2. ファイアウォール - その他のポート

    Fig3の画面が表示されるので、5900のTCPを選択してOKを押す。
    同じく、5900のUDPを選択してOKを押す。

                             Fig3. 許可するポートの選択

     Fig4のように登録されたことを確認する。

                            Fig4. VNC許可したポート確認

<Mac側>
MacOSXであれば、標準でVNCが導入されているので、
Finderから、以下の入力をすることで簡単に接続できる。

vnc://(VNCサーバのIPアドレスまたはVCNサーバのマシン名)
この例では、vnc://192.168.0.20 か vnc://webserver.localと入力する。
そして、パスワード入力要求画面が表示されるのでパスワードを入力する。

筆者環境は、MaxOS X Lionなのでフルスクリーンモードにするとあたかも
Linuxマシンを目の前で操作しているような感覚になるくらい快適です!!

※捕捉
画像の品質を下げることでより、より快適な操作ができるようになる。

Linuxマシンで日本語入力と英語入力の切り替えがCtrl+Space割り当てをしている場合、
VNCクライアントでCtrl+Spaceを入力するとMacのSpotLightが起動してしまう。
macの環境設定 - キーボードショートカットからSpotLightの割り当てを他のキーに
割り当てることで解決した。


以上






2011年11月4日金曜日

Apache+PHP+MySQLの文字コードは統一しよう

PHPで使用する文字コードとMySQLで使用する文字コード、Apacheで使用する文字コードは
統一したほうがよい。

使用しているOSの環境と一致させたほうがよいと思う。
また、Shift_JIS(ウィンドウズ標準)はセキュリティ的にも避けた方がよい。
筆者は、CentOSなのでUTF-8がシステムの標準文字コードであるから、
すべてUTF-8に統一している。

2011年10月8日土曜日

MyDNSに登録


WEBサーバを公開するためには、自分が希望するドメイン名と自分の公開しているサーバマシンのIPアドレスを
大抵プロバイダは、いくつかのIPアドレスをふりかえてユーザに割り当てている。
その為、ユーザはインターネットに接続するときIPアドレスが変わることがある。

固定する必要がある。
その為には、プロバイダ(ISP)よりグローバルIPを取得する必要があるが、
大抵月額費用がかかる。
要は、自分のサーバマシンのIPを固定してくれればよいのだから、
Dynamic DNSというサービスを使用することにした。
周期的に自分に今割り当てられているグローバルIPをDynamic DNSサービスに
通知することで、自分のドメインとIPアドレスの名前解決をしてくれるのだ。

その備忘録。

MyDNSを選択

住所などを登録

ユーザID、パスワードが発行される

好きなドメインを設定

Dynamicといわれるように、通知する必要がある


1.ルートになる
  $su -

2.ユーザのcrontabファイルを作成する
  #crontab -u (ユーザ名) /etc/crontab

3.ユーザのcrontabファイルを編集する
  #crontab -u (ユーザ名) -e

4.10分置きにDynamicDNSに通知するように書き込む
  */10 * * * * wget --spider --http-user=(mydns割り当てID) --http-password=(mydns割り当てパスワード) http://www.mydns.jp/login.html

5.保存して閉じる
  :wq

6.cronデーモンを再起動する
  #/etc/rc.d/init.d/crond restart

7.cronデーモンの動作確認をする
  #cat /var/log/cron
  または
  #tail -100 /var/log/cron

以上

MySQL基本操作

1.MySQLの使用
mysql -u [ユーザ名] -p ENTER
password : [パスワード]

2.MySQLでの文字コードを確認
mysql> show variables like 'char%'; ENTER

3.データベース一覧表示
mysql > show databases;

4.データベース作成
mysql > create database [データベース名]; ENTER
Query OK, 1 row affected

5.使用データベース選択
mysql > use [データベース名]; ENTER
Database changed

6.データベーステーブル一覧表示
mysql > show tables;

7.データベーステーブル作成
mysql > create table [テーブル名](列1名称 列1型, 列2名称 列2型); ENTER

8.データベーステーブル削除
mysql > drop table [テーブル名]; ENTER

9.データベーステーブルのフィールドを表示
mysql > show fields from [テーブル名]; ENTER

9.データベーステーブルの修正
mysql > alter

MySQLをJAVAから操作する方法について


1.JDBCをMySQLのサイトからダウンロードする
※tarアーカイブをダウンロードする

http://dev.mysql.com/downloads/connector/j/

2.ダウンロード先へ移動
  ※ここではユーザホームディレクトリのダウンロードディレクトリにダウンロードした
$cd /home/ユーザ/ダウンロード

3.ダウンロードしたtarアーカイブを解凍する
$tar zxvf mysql-connector-java-5.1.18.tar.gz

4.mysql-connector-java-X.X.XX.jarファイルがあることを確認
$ls -l
-rw-r--r--.1 ユーザ グループ 789885 M月 3 10:00 mysql-connector-java-5.1.18-bin.jar

5.jarファイルを/usr/share/javaへ移動する
  ※なぜかrootでなければ移動に失敗したためsuにチェンジ
$su -

#mv mysql-connector-java-X.X.XX-bin.jar /usr/share/java/mysql-connector-java-5.1.18-bin.jar

6.移動したjarファイルに所有者+グループに読み書き+実行権限を付与する
#chmod 774 /usr/share/java/mysql-connector-java-5.1.18-bin.jar

7.mysql-connector~のパスを通す
#vi .bashrc
以下を追加

export CLASSPATH=".:/usr/share/java/mysql-connector-java-5.1.18-bin.jar"

8.JAVA開発用IDE eclipseに外部jarとして登録する
※eclipseバージョンは3.5.2
メニューバーのproject-properties-java build path-Librariesタブ-Add External JARsボタン
を押して、/usr/share/java/mysql-connector-java-5.1.18bin.jarを追加する

netbeansの場合
プロジェクトのプロパティのライブラリを選択し、コンパイルタブのJAR/フォルダを追加ボタンを押して、/usr/share/java/mysql-connector-java-5.1.18bin.jarを追加する
また、distフォルダのjarファイルは、1階層上のlib内にある、mysql-connector-java-5.1.18bin.jarを参照しているので、このjarファイルを実行する場合は、lib/以下にmysql-connector-java-5.1.18bin.jarを置いたフォルダを配置しないとデータベース操作時エラーになるので注意。

以上










2011年9月20日火曜日

アプリケーション開発環境 PHPの導入

Webアプリケーション開発環境を導入する!
まずは、PHP!
Webアプリケーションといえば、PHPらしいので採用!
その、備忘録!

※CentOS6インストール時に導入しておけば楽!
<導入方法>
1.スーパユーザになる
   $su -

2.インストール確認 (アップデート)
#yum -y install php php-mbstring php-pear php-mysql php-gd mysql-devel

※mysql-develは必須なので注意。
もしそれでもPHPでうまく動作しない場合は、設定ファイルの以下を確認すること。
/etc/php.iniのmysqlのホストにlocalhostと明示的にセットしてあげること
/etc/php.iniのmysqlソケットパスに/etc/my.cnfのソケットパスと同じものを明示すること。


3.apache(httpd)の設定変更
  ※スペースが必要なので注意
ServerName localhost:80
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

4.apache(httpd)の再起動
   #service httpd restart

5.PHPファイルをhtml配置ディレクトリに作成し、動作するか確認
   #vi /var/www/html/phpinfo.php
以下をファイルに記載し、保存して閉じる  
<?php
   phpinfo();
?>

6.WebブラウザからアクセスしてPHP情報が出力されればOK
 以上

データベースサーバ(MySQL)の構築

データベースを導入する、その備忘録。

DBは、PostgreSQL と MySQLがフリーで主流のようだ。
MySQLを採用した。

<導入方法>
※MySQLデーモン(サービス)は、mysqldである。

1.スーパユーザになる
   $su -

2.MySQLインストール (と確認)
   #yum install mysql-server

   インストールされている場合は、Package mysql-.... already installed and latest...
    Nothing to doと表示される



3.MySQLバージョンを確認+最新へアップデート
   #rpm -q mysql-server
   #yum -y update mysql-server

4.MySQLを起動する
   # /etc/init.d/mysqld start

   以下画像のように初期化処理後、起動し、準備完了となる。

5.MySQLを自動起動する設定
   # chkconfig mysqld on

6.MySQLに接続する
#mysql -u root













7. MySQLのユーザリストを表示する
  mysql > select user,host,password from mysql.user;
  ※最後の";"が重要なので注意!
















8. root@localhost, root@webserver, root@'127.0.0.1'のパスワードを設定する
 mysql > set password for root@localhost=password('任意のパスワード');
  Query OK...とリプライがある

 mysql > set password for root@webserver=password('任意のパスワード');
  Query OK...とリプライがある

 mysql > set password for root@'127.0.0.1'=password('任意のパスワード');
  Query OK...とリプライがある 


9. 匿名ユーザを削除する
 mysql > delete from mysql.user where user='';
  Query OK...とリプライがある
 ※where=の後ろは、"(ダブルクォーテーション)ではなく' (シングルクォーテーション)

10.任意ユーザの追加
mysql > grant all on *.* to USERNAME identified by 'Password';
※USERNAMEに任意の名前、Passwordに任意のパスワードをセットする

11.(必要あれば)ネットワーク上のアクセスを許可する場合
mysql > grant all on *.* to USERNAME@"192.168.0.%" identified by 'Password' with grant option;

※USERNAMEに任意の名前、Passwordに任意のパスワードをセットする
  192.168.0.セグメントのPCや端末から接続できる。

12. ユーザが正しく作成されたか確認
   select user,host,password from mysql.user;

13.(ファイアウォール有効にしている場合)サーバのポート許可する
    3306 TCP/UDP オープン


14.一度データベースから出る
  mysql > exit

15.データベースに接続できるか確認する
  #mysql -u root -p
  Enter Password > (パスワードを入力)
  ※パスワード設定後は、-pを後ろにつけて接続する必要があることに注意。
     ただし、#mysql -u root -p PASSWORD とパスワードを入力しないこと
  historyに痕跡が残り他人にパスワードがばれてしまうよ。

16.接続確認できたので、データベースから出る
  mysql > exit

17.MySQLの設定ファイルを開き、書き換える
   # vi /etc/my.cnf

   以下セクション・キーを追加する
   ;サーバの文字コードをutf8にする設定
   [mysql]
   default-character-set = utf8
 
   [mysqld]
   character-set-server=utf8

   ;クライアントの文字コードをutf8にする設定
   [client]
   default-character-set = utf8

※PHPをEUC-JPで操作することにしていたため、ujis登録していたが、
   JAVAから登録するときに文字化けしてしまうので、utf8に変更した

設定ファイルを閉じる
  :wq

18.mysqlへ接続
また、データベース作成時点の文字コードにデータベースは設定されてしまうので、
あとから文字コード変更する場合は以下命令でエンコード変更できる。
   alter database データベース名 character set 文字コード; [ENTER]

19.データベースの文字コード設定を確認
show variables like 'char%';











20.character_set_databaseがutf8になっていない場合は、以下を実行
set character_set_database = 'utf8';



21.確認










22.MySQLを再起動する
#service mysqld restart


これで無事MySQL準備完了!

以上

Apache導入

HTTPサーバソフトといえば、"Apache"。

自分の鯖殿にもApacheを導入することにしたので、設定諸々の備忘録。

HTTPサーバとは、Webサーバのこと。
ブラウザでアクセスしたときにホームページなどが表示されたりするのは、
Webサーバが動作しているからです。

技術的に言えば、HTTPプロトコルでやりとりするときに、理解してくれる方なのです。

ソフトウェアは、Apacheなのだけれども、
CentOSでは、httpdという名前になっている。

これは、HTTPのデーモンということだからです。
デーモンとは、サービスのことなのです。

1.まずは、Apacheが導入されているか確認
  $which httpd 
   /usr/sbin/httpd

  導入されているようだ。
/usr/sbin/httpdディレクトリにインストールされているようだ。

2.Apacheのバージョンを確認
   $httpd -v
   Server version: Apache/2.2.15 (Unix)
   Server built: Jul 7 2011 11:30:37

   $/usr/sbin/httpd -vとフルパスを指定してもよい

3.Apacheの設定ファイルを編集する前にオリジナルファイルをバックアップ
   #cp /etc/httpd/conf/httpd.conf_org

4.Apacheの設定ファイルを編集するために開く
   #vi /etc/httpd/conf/httpd.conf

5.ServerNameやその他設定を変更し、保存して閉じる

6.Apacheを再起動する
   #service httpd restart

7. OS起動時に自動起動するようにする
  #chkconfig httpd on

8. 自動起動するようになったか確認
 



7.ブラウザからhttp://localhost または http://(ドメイン名)としてアクセスし、
   Apache2の画面がでればOK

以上

ブログ開始

サーバの魅力に取り憑かれ中。

今までパソコン上でのネイティブなアプリを仕事柄開発していたが、
サーバ上またはウェブ上で動作させれば、OS依存性やバージョンアップに
悩まされないな〜と遅ればせながら気づいた次第。
まずは、土台となるサーバを色々と構築していく予定!

WindowsやMacでどんどんサーバの敷居が下がっていくが、
やはりLinuxで仕組みから学んでいくのがいいと思っている次第。


Webサーバ : Apache
FTPサーバ : Vsftpd
DBサーバ : MySQL and PostgreSQL
WebDAVサーバ : Apache
DLNAサーバ : MediaTomb
DAAPサーバ: mt-daap (通称iTunesサーバ)
などを構築することを想定している。


■サーバ環境
OS: CentOS6 (x86 64bit)
CPU: Intel Core i5
RAM : 4GB
HDD : 160GB

以上