วันพฤหัสบดีที่ 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

    วันพฤหัสบดีที่ 15 ธันวาคม พ.ศ. 2554

    Reset password root ใน mysql ของ CentOS

    Reset password root ใน mysql ของ CentOS  

    จดเอาไว้กันลืม สำหรับการ Restart Password ของ mysqld เวลาลงครับ
    1. ให้หยุดการทำงานของ mysql ก่อน
    # service mysqld stop
    2. ให้ Start MySQL เป็น save mode. โดยคำสั่ง
    # mysqld_safe --skip-grant-tables &
    3. ต่อไปก็ให้ Login  MySQL โดย user root
    # mysql -u root
    4. ทำการ Update password root (ที่ขีดเส้นใต้คือให้ใส่รหัสใหม่ลงไป)
    mysql> use mysql;
    mysql> update user set password=PASSWORD("NEW PASSWORD") where user='root';
    mysql> flush privileges;
    mysql> quit;
    5. แล้วก็ restart service ของ mysql ซะ เป็นอันเรียบร้อย
    # service mysqld restart
    6. แล้วลองเข้าใหม่ดูครับ
    # mysql -u root -p
    7.พอเข้าได้แล้ว ก็ไปเข้าของ phpmyadmin เอาด้วย ก็น่าจะเข้าได้เช่นกันครับ