วันอังคารที่ 19 กุมภาพันธ์ พ.ศ. 2556

การติดตั้งและใช้งาน SSL (HTTPS) บน CentOS

HTTPS เป็นการเรียกใช้งาน Web Application แบบโหมด Security โดยใช้ Secure Socket Layer (SSL) encrypt และ decrypt ข้อมูลที่ส่งเมื่อมี Client เรียกใช้งาน (HTTPS ใช้พอร์ต 443 แทนที่ HTTP พอร์ต 80 ซึ่งถ้าเราใช้ port 443 ในการเรียกใช้งานเว็บโปรเจ็คของเรา เราก็จะใช้พอต 80 ทำอย่างอื่นได้ แต่แนะนำให้ทำ Alias บน https ไปด้วยกันดีกว่า)

      โดยปกติการทำ การสร้าง SSL จะต้องลงทะเบียนเสียเงินให้กับพวก CA ต่างๆ แต่อันนี้เป็นการติดตั้งแบบไม่ไม่เสียเงิน คุณภาพอาจอยู่แค่ปานกลาง

วันอาทิตย์ที่ 27 พฤษภาคม พ.ศ. 2555

Enabling apache UserDir (public_html) on CentOS


  1. Edit the /etc/httpd/conf/httpd.conf file.
  2. Change the ‘UserDir disabled’ line to ‘UserDir enabled <username>’.
    Uncomment the ‘UserDir public_html’ line.
    Also uncomment the whole ‘<Directory /home/*/public_html>’section until the ‘</Directory>’.
  3. Apply the proper permissions:
    # chmod 711 ~<username>
    # chmod 755 -R ~<username>/public_html/
  4. Run the following commands so SELinux wouldn’t bother you:
    # setsebool -P httpd_enable_homedirs true
    # chcon -R -t httpd_sys_content_t ~<username>/public_html   # It looks like it’s not necessary. See dgrift’s comments below.
  5. Extra Tip: It looks like on PHP versions  >= 5.3.0, to allow the short tag ‘<?’ we need to set ‘short_open_tag = On’ in the /etc/php.ini.
Restart the httpd service and after it you should be able to access http://localhost/~<username>/

References:

วันจันทร์ที่ 21 พฤษภาคม พ.ศ. 2555

How to Add [DAG] on Centos 6


Install Howto

  1. Download the latest rpmforge-release rpm from
    http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/
  2. Install rpmforge-release rpm:
    # rpm -Uvh rpmforge-release*rpm
  3. Install smbldap-tools rpm package:
    # yum install smbldap-tools
    
    

วันพฤหัสบดีที่ 26 เมษายน พ.ศ. 2555

การติดตั้ง Apache, PHP, MySQL และ phpMyAdmin บน Ubuntu :)


การติดตั้ง Apache
1. เปิด Terminal จาก Applications/Utilities/Terminal จากนั้นให้พิมพ์คำสั่งนี้
sudo apt-get install apache2
2. หากใน Terminal เห็นข้อความว่า apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName สามารถแก้ไขได้โดยใช้พิมพ์คำสั่งนี้
gksu gedit /etc/apache2/conf.d/fqdn

เมื่อเปิดเสร็จแล้ว ให้พิมพ์ ServerName localhost ลงไปในไฟล์และบันทึก จากนั้นก็ปิดไฟล์
3. เมื่อติดตั้งเสร็จแล้ว ทดสอบโดยใฃ้เบราว์เซอร์ และเปิด http://localhost หากใช้งานได้จะพบข้อความว่า It works!

การติดตั้ง PHP5
1. พิมพ์คำสั่ง
sudo apt-get install php5 libapache2-mod-php5
2. เมื่อลง PHP5 เสร็จแล้วจำเป็นต้องเริ่มการทำงานของ Apache อีกครั้ง ด้วยการใช้คำสั่ง
sudo /etc/init.d/apache2 restart
3. ทดสอบการใช้งาน PHP โดยพิมพ์คำสั่ง
sudo gedit /var/www/info.php

เมื่อไฟล์ถูกเปิดขึ้นมาแล้ว ให้พิมพ์โค้ด PHP ดังนี้
<?php
phpinfo
();?>

จากนั้นให้บันทึกไฟล์และปิดไฟล์นี้
4. ทดสอบโดยใฃ้เบราว์เซอร์ และเปิด http://localhost/info.php หากใช้งานได้จะผลดังนี้
Display PHP Info

การติดตั้ง MySQL
1. พิมพ์คำสั่ง
sudo apt-get install mysql-server
2. เมื่อเห็นภาพดังด้านล่างนี้ ให้กรอกรหัสผ่านสำหรับผู้ใช้ root ฃอง MySQL
Configuring mysql-server-5.0
3. หลังจากติดตั้งเสร็จ จะต้องให้ PHP ทำงานร่วมกับ MySQL ได้โดยเปิดไฟล์ php.ini ด้วยคำสั่งนี้
gksudo gedit /etc/php5/apache2/php.ini

จากนั้นแก้ไขบรรทัดที่มี ;extension=msql.so ให้เป็น extension=mysql.so ต่อไปก็เริ่มการทำงาน Apache อีกครั้งด้วยคำสั่ง
sudo /etc/init.d/apache2 restart



การติดตั้ง phpMyAdmin
1. พิมพ์คำสั่ง
sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin
2. เมื่อเห็นภาพดังด้านล่างนี้ ให้เลือก Apache2
Configuring phpmyadmin
3. เมื่อติดตั้งเสร็จแล้ว ให้ทดสอบโดยใฃ้เบราว์เซอร์ และเปิด http://localhost/phpmyadmin จะได้ผลดังนี้
อย่าลืมเพิ่มคำสั่งนี้ด้วยครับ
sudo ln -s /usr/share/phpmyadmin/ /var/www/phpmyadmin


ปรับแต่ง Apache2 บน Ubuntu ; )




    1. หากต้องการเปลี่ยนหรือเพิ่ม port  ให้แก้ไขแฟ้ม /etc/apache2/ports.conf เป็นประมาณตัวอย่างว่า
      Listen 80
      Listen 8010
    2. การสร้าง virtual host ให้แก้ไขแฟ้ม /etc/apache2/sites-available/default เป็นประมาณว่า
      <VirtualHost *:80>
      DocumentRoot /var/www/
      ServerName origin.hostname.domain
      </VirtualHost>
      *** ข้างบนนี้ต้องมีเพื่อให้คงชื่อ web host ของเดิมไว้

      <VirtualHost *:80>
      DocumentRoot /var/www/newfile
      ServerName new.name.domain
      </VirtualHost>
      *** เพิ่มชื่อ web host ใหม่เข้าไป

      <VirtualHost *:80>
      ServerName www.mydomain.com
      Redirect / http://new.domain.com/
      </VirtualHost>
      *** ทำการ redirect ต่อไปให้เวบอื่น

      ต้องแก้ไขแฟ้ม /etc/apache2/sites-available/default
      ให้ส่วนของ <Directory /var/www/> บริวเณประมาณบรรทัดที่ 14
      ต้องอนุญาติให้ AllowOverride All ดังตัวอย่าง
      <Directory /var/www/>
               Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
       </Directory>

      เสร็จแล้วก็สั่ง apache ทำงานใหม่ ด้วยคำสั่ง sudo /etc/init.d/apache2 force-reload
    3. การสร้าง virtual host ที่เป็น https ทำดังนี้
      สั่งเปิด ssl ด้วยคำสั่ง sudo a2enmod ssl
      ดาวน์โหลดแฟ้มจาก ftp://ftp.psu.ac.th/pub/apache/apache2-ssl.tar.gz
      ด้วยคำสั่ง wget ftp://ftp.psu.ac.th/pub/apache/apache2-ssl.tar.gz
      แล้วแตกแฟ้มออกมาด้วยคำสั่ง  tar -zxvf apache2-ssl.tar.gz -C /tmp
      คัดลอกแฟ้มไปยังตำแหน่งที่ถูกต้องด้วยคำสั่ง
      sudo mv /tmp/ssleay.cnf /usr/share/apache2
      sudo mv /tmp/apache2-ssl-certificate /usr/sbin
      sudo mkdir -p  /etc/apache2/ssl

      สร้าง certification ด้วยคำสั่ง sudo apache2-ssl-certificate
      ระบบจะมีข้อความออกให้โต้ตอบ ก็ให้กดแป้น Enter อย่างเดียวจนเสร็จ

      แก้ไขแฟ้ม /etc/apache2/sites-available/default
      เพิ่มบรรทัดว่า NameVirtualHost *:443 เข้าไป
      ถัดต่อจากบรรทัดเดิมที่ว่า NameVirtualHost *:80
      แล้วสร้างเพิ่ม tag ทำนองเดียวกับ <VirtualHost *:80>
      แต่เปลี่ยนจากเลข 80 เป็นเลข 443 และเพิ่ม SSL ประมาณว่า
      <VirtualHost *:443>
       ......
      SSLEngine on
      SSLCertificateFile /etc/apache2/ssl/apache.pem
      </VirtualHost>
      เสร็จแล้วก็ให้ restart apache ใหม่ด้วยคำสั่ง  sudo /etc/init.d/apache2 force-reload
    4. การทำให้ www server ไม่แสดงผลรายการชื่อแฟ้มใน directory
      ให้แก้ไขแฟ้ม /etc/apache2/sites-available/default
      ประมาณบรรที่ 14 ให้ลบคำว่า Indexes ออกจากส่วนของ
      <Directory "/var/www/l">
      ....
      </Directory>
      จากตัวอย่างข้อความเดิมคือ Options Indexes FollowSymLinks
      แก้ไขใหม่เป็น    Options FollowSymLinks

      แล้วสั่งให้ apache ทำงานใหม่ด้วยคำสั่ง  sudo /etc/init.d/apache2 force-reload
      /etc/apache2/httpd.conf
    5. หากต้องการบริการจำนวน client มากกว่าเดิม  กลายเป็น 500 connection
      ต้องตรวจสอบว่า apache มีการจัดการ process แบบใด ให้ใช้คำสั่ง  apache2 -l
      ถ้ามีข้อความคำตอบ prefork.c แสดงว่าจัดการ process แบบ MPM prefork
      ถ้ามีข้อความคำตอบ worker.c แสดงว่าจัดการ process แบบ MPM worker
      ให้แก้ไขที่แฟ้ม  /etc/apache2/apache2.conf ที่ประมาณข้อความว่า

      หากเป็นแบบ MPM prefork ให้แก้ไขดังนี้ ที่ประมาณข้อความว่า
      <IfModule mpm_prefork_module>
          StartServers          5
          MinSpareServers       5
          MaxSpareServers      10
          MaxClients          150
          MaxRequestsPerChild   0
      </IfModule>/etc/apache2/httpd.conf
      ให้แก้ใขค่า MaxClients และเพิ่มค่า ServerLimit  เป็น 500 ดังตัวอย่าง
      <IfModule mpm_prefork_module>
          StartServers          5
          MinSpareServers       5
          MaxSpareServers      10
          ServerLimit         500
          MaxClients          500
          MaxRequestsPerChild   0
      </IfModule>

      หากเป็นแบบ MPM worker ที่ประมาณข้อความว่า
      <IfModule mpm_worker_module>/etc/apache2/httpd.conf
          StartServers          2
          MinSpareThreads      25
          MaxSpareThreads      75
          ThreadLimit          64
          ThreadsPerChild      25
          MaxClients          150
          MaxRequestsPerChild   0
      </IfModule>
      ให้ แก้ใขค่า MaxClients เป็น 500 และเพิ่มค่า ServerLimit  เป็น 20
      หมายเหตุ. MaxClients = ServerLimit x ThreadsPerChild ดังตัวอย่าง
      <IfModule mpm_worker_module>
          StartServers          2
          MinSpareThreads      25
          MaxSpareThreads      75
          ThreadLimit          64
          ThreadsPerChild      25
          ServerLimit 20/etc/apache2/httpd.conf
          MaxClients          500
      #    MaxClients          150
          MaxRequestsPerChild   0
      </IfModule>

      เสร็จแล้วสั่งให้ระบบทำงานใหม่ด้วยคำสั่ง  sudo /etc/init.d/apache2 force-reload
    6. ตั้งค่าให้เวบแสดงผลภาษาไทยแบบ utf-8 โดยอัตโนมัติ
      ให้แก้ไขแฟ้ม /etc/apache2/conf.d/charset
      ตั้งค่าตัวแปรเป็นว่า AddDefaultCharset UTF-8
      เสร็จแล้วสั่งให้ระบบทำงานใหม่ด้วยคำสั่ง  sudo /etc/init.d/apache2 force-reload
  • อ่านทั้งหมด http://opensource.cc.psu.ac.th/%E0%B8%95%E0%B8%B4%E0%B8%94%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87_apache_%E0%B8%9A%E0%B8%99_ubuntu
  • วันพุธที่ 25 เมษายน พ.ศ. 2555

    Dump .SQL file

     ให้ไปที่ Path ของไฟ masterdump.sql แล้ว Dump ได้เลย
    #  mysql -u root -p < masterdump.sql

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