2012年9月27日木曜日

WEBアプリケーションサーバの構築(2) DBサーバ

1.php-mysqlモジュールをインストール
yum install php-mysql
service httpd stop
service httpd start
service mysqld stop
mysql_secure_installation
/etc/my.cnf
 [mysql] 
 default_character_set=utf8 

 [mysqld] 
 character_set-server=utf8 
 innodb_log_file_size=64M 
 innodb_buffer_pool_size=128M
service mysqld start


2.MySQLにデータベース,テーブル作成
DB Name : arts
Table Name : sa2012

$ mysql -u root -p
create database arts;

$ mysql -u root -p sa
create table sa2012 ( id integer NOT NULL AUTO_INCREMENT PRIMARY KEY, num char(4), host_name char(20), ip_address char(15) );

show tables;
select * from sa2012;

※テーブルの各値はMySQL Workbench等から流し込みます.

3.DBに接続し,中身を表示するPHPファイルを作成
list.php
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>list</title>
</head>
<body>
<?php
 $db_user  = "[user name]";
 $db_password = "[password]";
 $db_name = "[database name]";
 $db_host  = "localhost";

 $db = mysql_connect($db_host,$db_user,$db_password);
 mysql_select_db($db_name,$db); 
 $str_sql = "select * from sa2012";
 $rs = mysql_query($str_sql,$db);
 $num = mysql_num_fields($rs);

 print("<table><tr><th colspan=3>list</th></tr>");
 echo("
 ");
 print("<tr>");
 for ($i=0;$i<$num;$i++){
  print("<td><b>".mysql_field_name($rs,$i)."</b></td>");
 }
 print("</tr>");
 while($row=mysql_fetch_array($rs)){
  echo("
 ");
  print("<tr>");
  for($j=0;$j<$num;$j++){
   print("<td>".$row[$j]."</td>");
  }
  print("</tr>");
 }

 print("</table>");

 mysql_free_result($rs);
 mysql_close($db);
?>
</body>
</html>

4.パーミッションを755に変更
chmod 755 list.php


5.DBに接続し,id=1のものだけを表示するPHPファイルを作成
list2.php
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>list</title>
</head>
<body>
<?php
 $db_user  = "[user name]";
 $db_password = "[password]";
 $db_name = "[database name]";
 $db_host  = "localhost";

 $db = mysql_connect($db_host,$db_user,$db_password);
 mysql_select_db($db_name,$db); 
 $str_sql = "select * from sa2012 where id = 1";
 $rs = mysql_query($str_sql,$db);
 $num = mysql_num_fields($rs);

 print("<table><tr><th colspan=3>list</th></tr>");
 echo("
 ");
 print("<tr>");
 for ($i=0;$i<$num;$i++){
  print("<td><b>".mysql_field_name($rs,$i)."</b></td>");
 }
 print("</tr>");
 while($row=mysql_fetch_array($rs)){
  echo("
 ");
  print("<tr>");
  for($j=0;$j<$num;$j++){
   print("<td>".$row[$j]."</td>");
  }
  print("</tr>");
 }

 print("</table>");

 mysql_free_result($rs);
 mysql_close($db);
?>
</body>
</html>

2012年9月13日木曜日

WEBアプリケーションサーバの構築(1) WEBサーバ

1.まずはブラウザから自身のサーバにアクセスして状況確認
http://10.2.5.***


2.PHPインストール
yum install php
/etc/php.ini
memory_limit = 16M ; Maximum amount of memory a script may consume
3.Webサーバ(httpd)インストール
yum install httpd
chkconfig httpd on
service httpd start

4.Firewall設定
iptablesのルール初期化
/sbin/iptables -F

現在のルール確認
iptables -L

Firewallにルール追加
/etc/sysconfig/iptables
 # Firewall configuration written by system-config-firewall
 # Manual customization of this file is not recommended.
 *filter
 :INPUT ACCEPT [0:0]
 :FORWARD ACCEPT [0:0]
 :OUTPUT ACCEPT [0:0]
 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 -A INPUT -p icmp -j ACCEPT
 -A INPUT -i lo -j ACCEPT
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
 -A INPUT -j REJECT --reject-with icmp-host-prohibited
 -A FORWARD -j REJECT --reject-with icmp-host-prohibited
 COMMIT

service iptables restart

5.動作確認
ブラウザから以下のアドレスにアクセスし,テスト画面が表示されることを確認
http://10.2.5.***

2012年9月6日木曜日

各ユーザーのhome以下にpublic_htmlを作成するツール

userDirMake.sh
#!/bin/bash

for user in `ls /home`
do
    id $user > /dev/null 2>&1
    if [ $? -eq 0 ] && [ ! -d /home/$user/public_html ]; then
        mkdir -p /home/$user/public_html
        chown $user. /home/$user/public_html
        chmod 711 /home/$user
        echo $user
    fi
done

仮想環境(ESXi4)の準備

学生用仮想環境
10.2.5.2共有サーバ(1学期使用)
10.2.5.101折笠orikasa00:50:56:00:01:01
10.2.5.102金本kanemoto00:50:56:00:01:02
10.2.5.103鈴木suzuki00:50:56:00:01:03
10.2.5.104西崎nishizaki00:50:56:00:01:04
10.2.5.105西村nishimura00:50:56:00:01:05
10.2.5.106マナハンmanahan00:50:56:00:01:06
10.2.5.107荒井arai00:50:56:00:01:07
10.2.5.108小沼onuma00:50:56:00:01:08
10.2.5.109小谷田koyata00:50:56:00:01:09
10.2.5.110城田shirota00:50:56:00:01:10
10.2.5.111中山nakayama00:50:56:00:01:11
10.2.5.112萩原hagiwara00:50:56:00:01:12
10.2.5.113花山hanayama00:50:56:00:01:13
10.2.5.114樋口higuchi00:50:56:00:01:14
10.2.5.115船谷funaya00:50:56:00:01:15
10.2.5.116星野hoshino00:50:56:00:01:16
10.2.5.117間宮mamiya00:50:56:00:01:17
10.2.5.118佐藤mgrsato00:50:56:00:01:18


1.仮想イメージコピー後に,IPアドレス修正
(IPアドレスをコピー元の値から、各学生用のIPアドレスに変更する)

/etc/udev/rules.d/70-persistent-net.rules
 (最後尾のPCI deviceのみ残す)


/etc/sysconfig/network-scripts/ifcfg-eth0
 DEVICE=eth0
 BOOTPROTO=none
 ONBOOT=yes
 IPADDR=10.2.5.***
 NETMASK=255.0.0.0
 GATEWAY=10.1.0.1


2.VMware Toolsのインストール
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
cd /mnt/cdrom
cp VMwareTools-XXX.tar.gz /tmp
cd /tmp
tar zxvf VMwareTools-XXX.tar.gz
cd vmware-tools-distrib
./vmware-install.pl


3.DNS設定
/etc/resolv.conf
 nameserver 8.8.8.8
service network restart
yum update
yum install perl
yum install yum-fastestmirror
yum install yum-utils