วันศุกร์ที่ 27 เมษายน พ.ศ. 2555

FreeBSD: Apache

     --------------------- Apache เริ่มเลย -------------------------

กำหนด ชื่อเครื่อง  หรือ DNS ให้เรียบร้อยก่อนติดตั้ง

# ee /etc/hosts
::1                         localhost localhost.name.com
127.0.0.1             localhost localhost.name.com
192.168.1.10       host.name.com





#ee /etc/resolve.conf
     nameserver  127.0.0.1


1 # cd /usr/ports/www/apache22

2 # make WITH_SSL_MODULES=yes WITH_THREADS=yes  WITH_AUTHN_ALIAS=yes  WITH_LOG_FORENSIC=yes WITH_CGI=yes  WITH_USERTRACK=yes WITH_CERN_META=yes  WITH_EXPIRES=yes WITH_MIME_MAGIC=yes  WITH_REWRITE=yes WITH_VHOST_ALIAS=yes  WITH_HEADERS=yes install clean


====== หรือ force to install
# make WITH_FORCE_PKG_REGISTER=yes WITH_SSL_MODULES=yes WITH_THREADS=yes WITH_AUTHN_ALIAS=yes WITH_LOG_FORENSIC=yes WITH_CGI=yes WITH_USERTRACK=yes WITH_CERN_META=yes WITH_EXPIRES=yes WITH_MIME_MAGIC=yes WITH_REWRITE=yes WITH_VHOST_ALIAS=yes WITH_HEADERS=yes install clean
======
3 # rehash

5 # ee /etc/rc.conf
      apache22_enable="YES"
      apache22_http_accept_enable="YES"

6 # cp /usr/local/etc/apache22/httpd.conf /usr/local/etc/apache22/httpd.conf-original

7 # ee /usr/local/etc/apache22/httpd.conf
  ServerAdmin noomloveu@name.com                 ;(~140)
  ServerName n1.name.com:80                            ;(~149),
  Include etc/apache22/extra/httpd-ssl.conf           ;(~451)

!Remark
  Include etc/apache22/extra/httpd-ssl.conf
      ¶éÒ config äÁè¶Ù¡·ÓãËé  error wanning fail to start ä´é



# ee /usr/local/etc/apache22/extra/httpd-ssl.conf
  ServerName host.example.com:443             ;(~78)
  ServerAdmin you@example.com
  SSLCertificateFile /usr/local/openssl/certs/orchid3.siamnk.net-cert.pem  ;(~99)
  SSLCertificateKeyFile /usr/local/openssl/certs/orchid3.siamnk.net-unencrypted-key.pem  ;(~107)



== Loading the accf_http module
On FreeBSD you must load the accf_module before you can start apache,
otherwise you are sure to get an httpready error.
# kldload accf_http

If it loaded successfully then it will not give any errors or output.
To have it load on boot
#ee /boot/loader.conf
accf_http_load="YES"

== Starting Apache
ก่อน restarting หรือ starting Apache ควรใช้คำสั่ง configtest เพื่อ check errors ใน httpd.conf

# apachectl configtest

Apache is controlled with apachectl

# apachectl start
# apachectl restart
# apachectl graceful
# apachectl stop

# /usr/local/etc/rc.d/apache22 onestart
# /usr/local/etc/rc.d/apache22 restart

== Test

# telnet localhost 80
# openssl s_client -connect localhost:443

FreeBSD: Mysql55-Server

------------------- เริ่มเลย ------

[1] ติดตั้ง

# cd /usr/ports/databases/mysql55-server

-------------------ติดตั้งแบบใช้ ตัวอักษร ภาษาไทย แบบ UTF8 ---------------

# make WITH_CHARSET=utf8 WITH_xCHARSET=all WITH_CALLATION=utf8_general_ci WITH_OPENSSL=yes  BUILD_OPTIMIZED=yes WITH_FEDERATED=yes WITH_NDB=yes WITH_ARCHIVE=yes install clean


-------------------ติดตั้งแบบใช้ ตัวอักษร ภาษาไทย แบบ tis620--------------

# make WITH_CHARSET=tis620 WITH_xCHARSET=all WITH_CALLATION=tis620_thai_ci WITH_OPENSSL=yes  BUILD_OPTIMIZED=yes WITH_FEDERATED=yes WITH_NDB=yes WITH_ARCHIVE=yes install clean


************************************************************************

Remember to run mysql_upgrade (with the optional --datadir= flag)
the first time you start the MySQL server after an upgrade from an
earlier version.

************************** ผลการติดตั้ง ***********************************


      This port has installed the following files which may act as network
      servers and may therefore pose a remote security risk to the system.
/usr/local/libexec/mysqld

      This port has installed the following startup scripts which may cause
      these network services to be started at boot time.
/usr/local/etc/rc.d/mysql-server

      If there are vulnerabilities in these programs there may be a security
      risk to the system. FreeBSD makes no guarantee about the security of
      ports included in the Ports Collection. Please type 'make deinstall'
      to deinstall the port if this is a concern.

      For more information, and contact details about the security
      status of this software, see the following webpage:
http://www.mysql.com/

------------------------ ตรวจสอบผลการติดตั้ง ------------------

 -- ตรวจสอบ user ที่มีขึ้นมาใหม่

# cat /etc/passwd
mysql:*:88:88:MySQL Daemon:/var/db/mysql:/usr/sbin/nologin

 -- ตรวจสอบ Package ที่ติดตั้ง

# pkg_info |grep mysql
mysql-client-5.1.48 Multithreaded SQL database (client)
mysql-server-5.1.48 Multithreaded SQL database (server)

--------------------- Config [system] -------------
# ee /etc.rc.conf
  mysql_enable ="YES"

# cp /usr/local/share/mysql/my-large.cnf  /etc/my.cnf

#ll /etc/my.cnf
-rw-r--r--  1 root  wheel  4649 Jul 16 06:41 /etc/my.cnf

เปลี่ยน group

# chown root:sys /etc/my.cnf
# ls -l /etc/my.cnf
-rw--r--r--  1 root  sys  4757 Oct  6 21:29 /etc/my.cnf

หรือ

# chmod 644 /etc/my.cnf
# ls -l /etc/my.cnf
-rw-r--r--  1 root  sys  4757 Oct  6 21:29 /etc/my.cnf


# rehash

---------------------  Start Mysql Deamon  -------
# mysqld_safe &                                      ; To initial MySQL daemon

#/usr/local/etc/rc.d/mysql-server start        ; To start the MySQL daemon

--------------------- Monitor ---------------------

# ps waux | grep mysql       ; check process
    mysql 13771  0.0  0.6  3632  1352  ??  Is    7:32PM   0:00.07 /bin/sh /usr/local/bin/mysqld_safe --defaults-extra-file=/var/db/mysql/my.cnf
    mysql 13851  0.0 18.0 188616 44204  ??  I     7:32PM   0:01.00 [mysqld]

# mysqlshow -p            ; display database
Enter password:            ; ยังไม่มี password ให้ enter ผ่าน
+--------------------+
|     Databases            |
+--------------------+
| information_schema    |
| mysql                         |
| performance_schema |
| test                            |
+--------------------+

--------- Kill process ----------------
# killall mysqld


--------------------- Config [database] -----------

# mysql_install_db --user=mysql                          ; Installing MySQL system tables.
# mysqladmin -u root password 'password'         ; To set a password for root user
# mysqladmin -u root -h  n1.name.com password 'password'

----------------------------- Test-----------------------------------
# mysql -u root -p
mysql> status;
mysql> \s
mysql> create database noomdb;
mysql> grant all privileges on noomdb.* to noom@24.0.1.122;
mysql> grant usage on noomdb.* to noom@24.0.1.122 identified by 'noomdbpassword';

====  Add user ŧ㹠mysql:user table ¾ÃéÍÁ¡Ó˹´ÊÔ·¸Ô
mysql> \? add      ;  help for add

mysql>

mysql> use mysql
mysql> select User,Password,Grant_priv from user;

+-----------+-------------------------------------------+------------+
| User          | Password                                                   | Grant_priv |
+-----------+-------------------------------------------+------------+
| root          | *85E26B8AB29FEE8453201A3511DAE24A24059109         | Y          |
| root          |                                                                                                  | Y          |
| root          |                                                                                                  | Y          |
| root          |                                                                                                  | Y          |
|                 |                                                                                                  | N          |
|                 |                                                                                                  | N          |
+-----------+-------------------------------------------+------------+

mysql> update user set password=password('password') where user='root';
mysql> flush privileges;
mysql> grant all on *.* to noomloveu@localhost identified by 'password';
mysql> grant all on *.* to noomloveu identified by 'password';
mysql> grant all on *.* to noomloveu@localhost;
mysql> update user set grant_priv='Y' where user='noomloveu';

 mysql> select User,Password,Grant_priv from user;

+-----------+-------------------------------------------+------------+
| User          | Password                                                   | Grant_priv |
+-----------+-------------------------------------------+------------+
| root          | *85E26B8AB29FEE8453201A3511DAE24A24059109         | Y          |
| root          |                                                                                                  | Y          |
| root          |                                                                                                  | Y          |
| root          |                                                                                                  | Y          |
|                 |                                                                                                  | N          |
|                 |                                                                                                  | N          |
| noomloveu | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19    |Y         |
+-----------+-------------------------------------------+------------+


FreeBSD: Name Server

ขั้นตอนกำหนดค่า Name Server
1. ตรวจสอบ ว่าติดตั้ง Name Server แล้วหรือยัง (ปกติ จะมีติดตั้งมาพร้อมกับ OS)

# named -v
BIND 9.8.1-P1

  ---------- สำหรับ ป้องกันคำสั่ง make ไม่ไให้  build BIND เป็น base version  --------------------
                  กรณีที่ rebuild FreeBSD จาก source

#cp /etc/make.conf /etc/make.conf-original
#echo "NO_BIND = YES" >> /etc/make.conf   

 ------------- Backup config file ------------------

# cd /var/named/etc/namedb
# cp named.conf named.conf-original

-------------- กำหนดชื่อแบบ Local host ------------------
#/ee /etc/hosts
::1                          localhost localhost.aculala.com
127.0.0.1               localhost localhost.aculala.com


------------ Generate Key ให้กับ Name Server ----------
# rndc-confgen -a
# cat rndc.key >> named.conf

--------------- กำนด ชื่ออ้างอิงและที่อยู่ไฟล์อ้างอิง -------

# ee /var/named/etc/namedb/named.conf
// line 21 comment

//      listen-on       { 127.0.0.1; };

//line (~43-47)

forwarders {
        8.8.8.8; 203.144.255.71; 203.144.255.71;
};

// ------- เพิ่ม Zone file ท้ายไฟล์

zone "name.com" {
    type master;
    file "/etc/namedb/master/name.com";
    allow-transfer { localhost; };
    allow-update { key rndc-key; };
};

zone "1.0.24.in-addr.arpa" {
    type master;
    file "/etc/namedb/master/name.com.rev";
    allow-transfer { localhost; };
    allow-update { key rndc-key; };
};



-----------------------------------------------

# cd /var/named/etc/namedb/master
# ee name.com

$TTL    3600

name.com.   IN    SOA   n1.name.com.    root.name.com. (
                                1            ;           Serial
                                10800    ;           Refresh
                                3600      ;           Retry
                                604800  ;           Expire
                                86400 )  ;           Minimum TTL
;DNS Servers
name.com.         IN      NS              n1.name.com.                

;Machine Names
n1.name.com.    IN      A                   24.0.1.25    

;Aliases
www                          IN      CNAME             n1.name.com.  

;MX Record
name.com.         IN      MX      10      n1.name.com.  

------------ Reverse lookup  file --------------------------------------

# ee name.com.rev
$TTL    3600

1.0.24.in-addr.arpa. IN  SOA n1.name.com.  root.name.com.   ( 
                       1       ;       Serial
                       10800   ;       Refresh
                       3600    ;       Retry
                       604800  ;       Expire
                       86400 ) ;       Minimum TTL
;DNS Servers
1.0.24.in-addr.arpa.   IN      NS              n1.name.com.  

;Machine IPs
11                     IN      PTR             n1.name.com.
11                     IN      PTR             www.name.com.


----------------------------------------------------------------------

# cd /var/named/etc/namedb/master
# cp name.com ../dynamic
# cp name.com.rev ../dynamic
# chown -R bind /var/named/etc/namedb/dynamic

------------ กำหนดชื่อ Domain Name Server สำหรับการค้นหาชื่อ Domain
# ee /etc/resolv.conf
domain noomloveu.com
nameserver 127.0.0.1
nameserver 24.0.1.1
nameserver 8.8.8.8


------------ สั่งให้ Start Name Server เมื่อ Boot เครื่อง -------------
#echo named_enable="YES"  >> /etc/rc.conf
# /etc/rc.d/named onestart
# /etc/rc.d/named status


------------ทดสอบ ---------------------

# dig google.com

; <<>> DiG 9.8.1-P1 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26857
;; flags: qr rd; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;google.com.                    IN      A

;; ANSWER SECTION:
google.com.             106     IN      A       173.194.38.130
google.com.             106     IN      A       173.194.38.131
google.com.             106     IN      A       173.194.38.132
google.com.             106     IN      A       173.194.38.133
google.com.             106     IN      A       173.194.38.134
google.com.             106     IN      A       173.194.38.135
google.com.             106     IN      A       173.194.38.136
google.com.             106     IN      A       173.194.38.137
google.com.             106     IN      A       173.194.38.142
google.com.             106     IN      A       173.194.38.128
google.com.             106     IN      A       173.194.38.129

;; Query time: 43 msec
;; SERVER: 24.0.1.1#53(24.0.1.1)
;; WHEN: Fri Apr 27 00:12:09 2012
;; MSG SIZE  rcvd: 204

# dig name.com axfr

วันจันทร์ที่ 23 เมษายน พ.ศ. 2555

FreeBSD: Kernel compile

Kernel compile

ตรวจ Kernel source ว่ามีหรือไม่:
   1. ดูว่ามีไดเรคทรอรี /usr/src/sys หรือไม่ ถ้าไม่มีให้ติดตั้ง

# cd /usr/src/sys/i386/conf/
# mkdir /root/kernels
# cp GENERIC /root/kernels/NewKernel
# ln -s /root/kernels/NewKernel

    2. แก้ไข option ที่ต้องการให้รองรับ สำหรับ Kernel ใหม่

# ee NewKernel

#cpu            I486_CPU
#cpu            I586_CPU
  cpu             I686_CPU
  ident           Kernel_with_NAT

#<-- ถ้าต้องการเพิ่ม option NAT 

options         IPDIVERT                                        # enable NAT

#<<-- Firewall
options         IPFIREWALL                                     # enable Firewall
options         IPFIREWALL_VERBOSE                      # ipfw logging
options         IPFIREWALL_VERBOSE_LIMIT=120    # limit to 120 identical log entri
options         IPFIREWALL_DEFAULT_TO_ACCEPT  #
options         IPFIREWALL_FORWARD      # port forward

options         MROUTING

options         QUOTA
options         HZ=100                              # origial HZ=1000 : reduce high CPU consume
options         DEVICE_POLLING

#<-- ถ้าต้องการเพิ่ม Traffic Shaping

options         DUMMYNET
options         ALTQ
options         ALTQ_CBQ                # class Bases Queuing(CBQ)
options         ALTQ_RED                # Random Early Detection (RED)
options         ALTQ_RIO                # RED in/out
options         ALTQ_HFSC               # Hierachical Packet Scheduler (HFSC)
options         ALTQ_PRIQ               # Priority Queuing(PRIQ)
options         ALTQ_NOPCC            # Required for SMP build


#<-- ถ้าต้องการเพิ่ม Packet Filter

device          pf
device          pflog
device          pfsync





----------------------------------------------------------------------


เริ่ม Compile
# config NoomKernel
# cd /usr/src/sys/i386/compile/NewKernel
# make; make install               
# make cleandepend && make depend
# reboot

# uname -a
FreeBSD a1.aculala.com 8.2-RELEASE-p2 FreeBSD 8.2-RELEASE-p2 #0: Thu Jul 21 12:54:15 ICT 2011    
pee@a1.aculala.com:/usr/src/sys/i386/compile/NewKernel  i386

FreeBSD: Ports update โดย CSUP

1. สำรองไฟล์ config เดิมเก็บไว้
# cp /usr/share/examples/cvsup/ports-supfile  /usr/share/examples/cvsup/ports-supfile-ori

2. แก้ไข Server ที่จะดาวโหลดไฟล์
# ee /usr/share/examples/cvsup/ports-supfile



เช่น
*default host=cvsup.sg.FreeBSD.org
*default host=cvsup5.jp.FreeBSD.org

ดูเซิร์ฟเวอร์ทั้งหมดได้จาก
http://www.freebsd.org/doc/en/books/handbook/cvsup.html.
ping -c 5 cvsup5.jp.freebsd.org


อัพเดท Ports
To update the ports collection
# csup -g -L 2 /usr/share/examples/cvsup/ports-supfile
# rehash

FreeBSD: Install บน VirtualBox แบบ Text mode

[1] บูทเครื่องจากแผ่นติดตั้งใน VirtualBox
     เลือกติดตั้งแบบ Text Mode
       1. Thailand
       2. USA (ISO)
       3. Standard installation
       4. standard install a standard MBR (No Boot Manager)
       5.  Create patition
               5.1 A = entire disk
                     c = create (all size = 165)
                     q = quit

               5.2 Standard Install a standard MBR (no boot manager)

                          A = Create patition
                          c = create (all size = 165)
                          q = quit

                 สร้าง Partition (โดยประมาณ)
                 /           768M
                 swap     512M
                  /tmp    512M
                  /var     768M
                  /usr     8G

       6. Choose distribution
           Custom
            [x]  base
            [x]  kernels
            [x]  Document --> EN
            [x]  man
            [x]  src  --> all  --> ยกเว้น game
            [x] ports

        7. Choose Installation Media
            CD/DVD

        ตอบคำถามระหว่างติดตั้ง

Last Chance:
Yes    :Ethernet Adapter
No    :IPV6
No    :DHCP
Yes     :Brink interface up
No     :machine to be a network gateway
No     :would like to configure inetd and network services
YES         :enable SSH (secure shell) login
No        :anonymous FTP access to this machine
No    :Fuction as an NFS Server
No    :Fuction as an NFS client
Yes    :Customize console setting
Yes         :Time zone
No         : CMOS
         - Asia
         - 44 Thailand
Yes     :Set Clock to UTC ?

No    : enable Linux binary compatibility
Yes     : browse the applications
YES        : add a user account.
                    member groups = [wheel] ; to allow the user to become root/administrator  
No        : Visit the general configuration menu for a chance to set any last options ?
   
[exit install]

ตรวจสอบหลังติดตั้ง

ตรวจสอบเนื้อที่ ฮาร์ดดิส
     # df -h  
Filesystem     Size        Used   Avail Capacity  Mounted on
/dev/ad0s1a    859M    172M    618M    22%     /
devfs              1.0K     1.0K      0B       100%    /dev
/dev/ad0s1d    496M    12K      456M     0%     /tmp
/dev/ad0s1f     19G      1.4G     16G     8%      /usr
/dev/ad0s1e    989M    534K    910M     0%     /var

บางครั้งติดตั้งใน virtual box แล้ว CPU ของเครื่อง Peak ให้เพิ่มคำสั่ง แล้ว reboot เครื่องใหม่
#ee /boot/loader.conf
kern.hz=100




วันศุกร์ที่ 20 เมษายน พ.ศ. 2555

FreeBSD: Restart Interface Network Card

Restart Interface Network Card
#/etc/rc.d/netif restart

วันอังคารที่ 5 ตุลาคม พ.ศ. 2553

Video: Component video

Definition of: component video


A video color format that maintains the three traditional TV video signals (YUV) in three separate channels. Component video provides a sharper image than composite video and S-video. See YUV, composite video and S-video.


Analog Component Video

With regard to TVs, DVD players, cable boxes, receivers and related consumer A/V equipment, component video generally refers to "analog" component video. The connection comprises three separate cables identified as Y, Pb and Pr (see YPbPr). Component video cables often come as five-wire sets: the three video and two more for left and right analog audio.

Digital Component Video

Component video may also refer to "digital" component video (YCbCr), which is the norm for videotape formats such as MiniDV, DV and Digital Betacam. The connection uses one cable, typically FireWire or SDI, and is natively supported by many nonlinear video editing programs (NLEs). Digital component video is also carried over HDMI cables, but to avoid confusion, the term "digital" is used to refer to HDMI signals, not "digital component." See YCbCr and chroma subsampling.

RGB: Digital or Analog

Sometimes, component video refers to RGB signals rather than YUV. It may refer to "digital" RGB, which is the native graphics format in the computer, and it is supported by all nonlinear video editing programs (NLEs).

Component video may also refer to "analog" RGB, especially with regard to a three-cable RGB attachment to a studio monitor or high-end video camera. See YUV.

Video:Color Space: YCbCr

Definition of: YCbCr


One of two primary color spaces used to represent digital component video (the other is RGB). The difference between YCbCr and RGB is that YCbCr represents color as brightness and two color difference signals, while RGB represents color as red, green and blue. In YCbCr, the Y is the brightness (luma), Cb is blue minus luma (B-Y) and Cr is red minus luma (R-Y). See component video.



YCbCr Is Digital

MPEG compression, which is used in DVDs, digital TV and Video CDs, is coded in YCbCr, and digital camcorders (MiniDV, DV, Digital Betacam, etc.) output YCbCr over a digital link such as FireWire or SDI. The ITU-R BT.601 international standard for digital video defines both YCbCr and RGB color spaces. See chroma subsampling.



YPbPr Is Analog

YPbPr is the analog counterpart of YCbCr. It uses three cables for connection, whereas YCbCr uses only a single cable (see YPbPr). See YUV, YUV/RGB conversion formulas and ITU-R BT.601.

Video:Color space: YPbPr Advantages

YPbPr Advantages

YPbPr is a color space encoding scheme that was developed to save on cable bandwidth requirements while separating the signal enough to provide a quality image. S-Video and composite video mix the signals together by means of electronic multiplexing, however, more often than not the signal is degraded at the display end as the display is not 100% able to separate the signals. It is possible for their multiplexed counterparts to interfere with each other (see Dot crawl). Signals that use YPbPr, like component video, offer enough separation of the signals that no multiplexing is needed, so the quality of the extracted image is generally near identical to the signal before encoding. Though not necessarily an advantage to YPbPr, component video which uses YPbPr was the only one out of the other two common analog cable standards (composite and s-video) to be able to transfer non-interlaced video and at the same time able to transfer resolutions higher than 480i/p.



Definition of: YPbPr


The designation for analog component video signals. The "Y," "Pb" and "Pr" are sets of three inputs or outputs on better video equipment and TVs. The three cables used in a YPbPr connection represent higher quality than the single-wire composite cable commonly used to hook up video equipment, because the brightness and color components of the signal are maintained separately. The YPbPr signals are derived from the red, green and blue (RGB) colors captured by a scanner or digital camera, and RGB is converted into brightness and two color difference signals (B-Y and R-Y) for TV/video. See component video.

YPbPr and YCbCr

YPbPr component video is the analog counterpart of digital component video, which is YCbCr. Whereas YPbPr uses three cables between video equipment, YCbCr uses a single cable. See Y (B-Y) (R-Y), YCbCr, YUV, YUV/RGB conversion formulas and color space.

http://www.pcmag.com/encyclopedia_term/0,2542,t=YPbPr&i=55163,00.asp