Wednesday, November 23, 2011

วิธีการ ติดตั้ง kloxo version ใหม่ 11/2011

 วิธีการ ติดตั้ง kloxo  version ใหม่  11/2011

# su - root

# setenforce 0

# yum install -y wget

# wget http://download.lxcenter.org/download/kloxo/production/kloxo-installer.sh

# chmod 755 kloxo-installer.sh

# sh ./kloxo-installer.sh master



===============================
เมื่อ ก่อน

# su - root

# setenforce 0

# yum install -y wget

# wget http://download.lxcenter.org/download/kloxo/production/kloxo-install-master.sh

# sh ./kloxo-install-master.sh

Friday, September 30, 2011

kloxo Assigning a Dedicated IP address to your Site

Other Useful Features

Kloxo has many other features that are very useful. Some of the more common and frequently used features are explained below and include assigning a site a dedicated IP address, setting up and SSL certificate, using the "Files" tab and a brief discussion of clients and resellers you can create on your VPS.
NOTE: Your VPS has one IP address assigned to it by default. This is the IP address referenced in your welcome e-mail. If your VPS plan includes more than one IP address you can request additional IP addresses through our ticket system: http://my.a2hosting.com
Please provide the reason for needing the additional IP address in your ticket. We keep documentation on all IP requests to prevent usage that is against our Terms of Service. If you have used all of your available IP you can request additional IP address through the ticket system. Current pricing is $3 per IP per month but is subject to change.

Assigning a Dedicated IP address to your Site

To assign a dedicated IP address to your site, log into Kloxo. From the Home screen click the "Ipaddresses" icon in the "Resources" box.

After clicking on the icon you will be taken to a screen that lists all IP addresses assigned to your VPS. Click on the IP address you wish to assign to a particular domain. You will then be taken to the options screen for that IP address.

Click the "Configure Domain" tab at the top of the page. You will then be presented with something like the following:

Use the drop-down menu to select the domain you wish to assign to the IP address listed in the box above then click "Update".
NOTE: If you have not yet updated DNS for your domain you will receive an error message like the following:
Alert: To map an IP to a domain, the domain must ping to the same IP, otherwise, the domain will stop working. The domain you are trying to map this IP to, doesn't resolve back to the IP, and so it cannot be set as the default domain for the IP.
If you would like to assign your site a dedicated IP BEFORE you update DNS you can do so by adding the following line to /etc/hosts
'192.168.1.1 domain.tld'
You can either edit the file directly or issue a command such as the following:
'echo "192.168.1.1 domain.tld" >> /etc/hosts'
(make sure you use two ">>" or you will overwrite the file.)
In both examples remove the single quotes around the outside and replace the '192.168.1.1' with the IP address you want to assign and "domain.tld" with your domain name.
After you have made this change you can go back and follow the steps for adding the dedicated IP address listed above and you should not receive the error. You cannot assign a dedicated IP address to more than one site. If you do not assign a site a dedicated IP address it will "share" the main IP address on the server by means of virtual hosts in your webserver software (apache/lighttpd). These will be configured automatically by Kloxo.

Installing an SSL Certificate

Through Kloxo you can install an SSL certificate you have already purchased, create a self- signed certificate for personal use or generate a "CSR" (certificate signing request) for ordering a new certificate.
NOTE: In order to install an SSL certificate on a domain it MUST have a dedicated IP address. Only one SSL certificate can be installed per IP address.
Log into Kloxo and go to the Home screen. In the "Resources" box click the SSL Certificates icon.

  1. Uploading a Current SSL Certificate
    1. If you already have an SSL certificate you would like to use click the "Add Upload File" tab. Give the SSL certificate a name; this can be anything you like. Click the "Browse" buttons and upload the Key, Certificate, and CA file (if applicable) then click "Add"
    2. Now click the "SSL Certificates" tab and you should see the SSL certificate you just uploaded in the list.
    3. Assign the domain you wish to configure a dedicated IP address (see instructions above)
    4. Click the "Home" tab then click the "Ipaddresses" icon in the 'Resources' box.
    5. Click the IP address you assigned to the domain you are installing the SSL certificate on then click the "SSL Configuration Home" tab.
    6. Using the drop-down menu select the name of the SSL certificate you uploaded previously then click "Update"
    7. Kloxo should restart Apache (or lighttpd) automatically but if https:// isn't working properly you may need to restart it manually.
  2. Generating a self-signed SSL certificate
    1. Log into Kloxo and go to the Home screen. In the "Resources" box click the SSL Certificates icon.
    2. Click the "Add SSL Certificate" tab
    3. Give the SSL certificate a name and fill in the appropriate information in the boxes. Please keep in mind that an ssl certificate for "www.domain.com" is different from just "domain.com" so be sure to specify version of your domain you want the SSL certificate on. Click the "Add" button once you have filled in the appropriate information.
    4. Assign the domain you wish to configure a dedicated IP address (see instructions above)
    5. Click the "Home" tab then click the "Ipaddresses" icon in the 'Resources' box.
    6. Click the IP address you assigned to the domain you are installing the SSL certificate on then click the "SSL Configuration Home" tab.
    7. Using the drop-down menu select the name of the SSL certificate you uploaded previously then click "Update"
    8. Kloxo should restart Apache (or lighttpd) automatically but if https:// isn't working properly you may need to restart it manually.
  3. Generating a CSR to order a new SSL certificate from a certificate authority
    1. You can purchase SSL certificates through A2 Hosting. To view current offerings please see http://www.a2hosting.com/services/ssl-hosting You can submit a ticket to our billing department to order an SSL certificate.
    2. If you just need a CSR for use with an outside provider, log into Kloxo and go to the Home screen. In the "Resources" box click the SSL Certificates icon.
    3. Click the "Add SSL Certificate" tab
    4. Give the SSL certificate a name and fill in the appropriate information in the boxes. Please keep in mind that an ssl certificate for "www.domain.com" is different from just "domain.com" so be sure to specify version of your domain you want the SSL certificate on. Click the "Add" button once you have filled in the appropriate information.
    5. Click on the "SSL Certificates" tab then click on the name of the SSL certificate you just created.
    6. The CSR will be listed in the middle of the screen. You can copy and paste the CSR (be sure to include the ----- BEGIN ----- and -----END----- lines) into your outside providers request form.

The "Files" Tab

You can use the "Files" tab as an alternative to FTP or SFTP to upload or download files to/from your site. You can also zip files or folders for smaller download, upload files from your home computer, a remote URL, or remote FTP server (the last 2 are great for transferring your data from your old hosting account).
The files tab does not require much explanation. Just click on the "Files" tab and use the File Manager tab to navigate your files then view/download current files or use the Upload tab to add files to your site. All uploaded files will be placed in "/home/admin"

Clients and Resellers

There are two types of clients; Resellers and customers. The main difference is Resellers can have customers under them. The smallest unit of authorization in Kloxo is a customer, who can have multiple domains under them.
In order to setup a Reseller or Client you will need to create a Resource Plan. A resource plan determines how many clients a reseller can have, how many domains can be hosted, traffic allowed, disk space allowed and much more.
If you are hosing multiple sites for different clients and wish to give them access to their content you can add a client login so they can modify their web content but no one else's.
The home directory of a customer is '/home/clientname', and his domain's document root is /home/clientname/domain.com'. He can also login through ftp using his clientname as the id and the password.

Tuesday, September 13, 2011

วิธีการใช้งาน date selector ด้วย PopCalendarXP เพื่อรองรับกับวันที่ MySQL


PopCalendarXP เป็นของฟรีอีกแล้วครับ ผมเอามาใช้กับโค้ด php ซึ่งเปลี่ยนให้เป็นภาษาไทยเรียบร้อยแล้ว เหลือแต่ปีที่ยังเป็นคริสศักราช อยู่ ทำเป็นปีไทยไม่เป็นแต่ก็พอใช้งานได้ครับ ใครสนใจรายละเอียดเพิ่มเติมก็เวปนี้เลย www.calendarxp.net/

วิธีใช้น่ะครับ
  • unzip ไฟล์ออกมาแล้วไปวางในเวปpath ของ server เช่น ของผมวางไว้ที่
    C:\AppServ\www\date1\

  • ใน โฟลเดอร์ date1 ผมจะสร้างไว้ สองไฟล์ไว้ test น่ะครับคือ date01.php และ date02.php ซึ่งสองไฟล์นี้ก็ใช้ dreamweaver สร้างมาครับง่ายดีและจะมีโฟลเดอร์ PopCalendarXP ซึ่งเป็นไฟล์ที่ผมโหลดมาและแก้เป็นภาษาไทยเรียบร้อยแล้ว
  • ลองรันตามนี้น่ะครับ http://localhost/date1/date01.php
  • ซึ่งวิธีการ install ผมขอสรุปคร่าวๆดังนี้น่ะครับ
  1. สร้าง form ขึ้นมาและสมมุติตั้งชื่อ form เป็น testform
  2. สร้าง text field ขึ้นมาและสมมุติตั้งชื่อว่า dc
  3. ให้นำโค้ดนี้วางไว้หลังคำสั่ง text field
    <a href="javascript:void(0)" onclick="if(self.gfPop)gfPop.fPopCalendar(document.testform.dc);return false;" ><img class="PopcalTrigger" align="absmiddle" src="PopCalendarXP/calbtn.gif" width="34" height="22" border="0" alt=""></a> 
    
    

  4. สังเกตในโค้ดตรง (document.testform.dc) จะเห็นว่า form_name.textfield_name จะต้องเหมือนกันกับที่เราตั้งไว้น่ะครับซึ่งหากเราต้องการใช้งาน selector หลายตัวใน form เดียวกันเราก็แค่เปลี่ยนเฉพาะชื่อ text field ให้ต่างกันก็พอครับซึ่งในโค้ด date01.php ผมจะใช้เป็น (document.testform.dc)และ (document.testform.dc1)เพื่อใช้ตัว selector สองตัว
  5. ลืมขั้นตอนสุดท้ายก็ต้องเอาโค้ดข้างล่างนี้น่ะครับไปวางไว้ก่อนtag </body> นะครับ
    <!--  PopCalendar(tag name and id must match) Tags should not be enclosed in tags other than the html body tag. -->
    <iframe width=174 height=189 name="gToday:normal:agenda.js" id="gToday:normal:agenda.js" src="PopCalendarXP/ipopeng.htm" scrolling="no" frameborder="0" style="visibility:visible; z-index:999; position:absolute; top:-500px; left:-500px;">
    </iframe>
    

ซึ่งเท่านี้เราก็จะได้การส่งค่าวันที่ไปเก็บลงในฐานข้อมูลแบบdefault ของMySQL เรียบร้อยครับ
โหลดโค้ดทั้งหมดได้ที่นี่ครับ date1.zip

Fusionchart+PHP+MySQL แบบทีละ Step คับ

วิธีการแสดงกราฟ Fusionchart v.3 โดยดึงข้อมูลมาจากฐานข้อมูล MySQL โดยใช้ภาษา PHP ครับ

step1. เริ่มจากสร้างฐานข้อมูลที่ชื่อ fusion-test [Download] และสร้างตารางที่ชื่อ data1 และเพิ่มข้อมูลลงไปตามรูปครับ


step2. โหลดกราฟ [download] และ unzip ไว้ในเวป root โดยของผมจะเก็บไว้ที่นี่ C:\AppServ\www\FusionCharts_Evaluation\ จากนั้นก็ลองเรียกดูเลยครับตาม path นี้
http://localhost/FusionCharts_Evaluation/Code/PHP/DBExample/Default.php
ถ้ารันได้แบบนี้ก็โอเคแล้วครับ


หมาย เหตุ กราฟที่ผมให้โหลดเป็นตัวที่ผมตัดบางส่วนออกเอาเฉพาะไฟล์ที่เกี่ยวข้องเท่า นั้นและแก้ไขเรียบร้อยแล้วน่ะครับโดยใครอยากโหลดเอาไฟล์ทั้งหมดทุกภาษา สามารถโหลดได้ที่เวปนี้ www.fusioncharts.com

โดยกราฟที่ผมต้องการแสดงคือ แสดงจำนวนที่เหลือของสินค้าแต่ละประเภท
ไฟล์ที่ผมแก้ไขมีตามนี้ครับ
1.ไปที่ C:\AppServ\www\FusionCharts_Evaluation\Code\PHP\Includes แก้ไฟล์ DBConn.php ตามนี้
$hostdb = 'localhost';   // MySQl host
    $userdb = 'root';    // MySQL username
    $passdb = 'Your-Password';    // MySQL password ถ้าไม่มีก็ใส่ ''
    $namedb = 'fusion-test'; // MySQL database name


2.ไปที่ C:\AppServ\www\FusionCharts_Evaluation\Code\PHP\DBExample แก้ไฟล์ Default.php ตามนี้
$strQuery = "select distinct(type) as type_name , sum(amount) as count_amt from data1 group by type_name";

            $strXML .= "<set label='" . $ors2['type_name'] . "' value='" . $ors2['count_amt'] . "' />";


และหากต้องการเปลี่ยนกราฟแท่งก็แค่แก้ตรงคำสั่ง เปลี่ยนจาก Pie3D.swf เป็น Column3D.swf ตามนี้
echo renderChart("../../FusionCharts/Column3D.swf", "", $strXML, "FactorySum", 600, 300, false, false);



ที่ต้องแก้หลักๆก็มีแค่นี้ครับ คือ query คำสั่งใหม่ แล้วก็ set ค่า label เพื่อส่งค่า xml ให้ตรงกับ query ไปยังตัวกราฟ
เสร็จแล้วค๊าบ ง่ายป่าว อิอิ

Kloxo error "Some of Horde's configuration files are missing or unreadable conf.php"

Kloxo error "Some of Horde's configuration files are missing or unreadable conf.php"

วันนี้ติดตั้ง kloxo ใหม่ ปรากฏว่า webmail ทั้ง Horde และ RoundCube ใช้ไม่ได้ ขึ้น error ทั้งคู่

Error ของ Horde
"Some of Horde's configuration files are missing or unreadable conf.php"

ลองค้นหาวิธีแก้ไขใน LxCenter พบทางแก้ที่ได้ผลคือใช้คำสั่ง

chmod 644 /home/kloxo/httpd/webmail/horde/config/conf.php

ปัญหาคือไฟล์ conf.php ได้เปลี่ยน Permission เป็น 600 ทำให้ใช้งานไม่ได้

Error ของ RoundCube
Roundcube had "Configuration Error: db.inc.php"

ปัญหาเกิดขึ้นอย่างเดียวกันคือ Permission ของ db.inc.php เป็น 600
ทางแก้ก็ใช้ putty เข้าไปใช้คำสั่ง

chmod 644 /home/kloxo/httpd/webmail/roundcube/config/db.inc.php

วิธีติดตั้ง MTRG บน Kloxo

เป็นหนึ่งในเทคนิคที่ผมนำมาเพิ่มความสามารถให้แก่ VPS(Linux) ที่ใช้ Control Panel Kloxo Lxadmin
ซึ่ง ถ้า VPS ที่เราเช่ามาเป็นแบบไม่มี Control Panel สำหรับดู Status ต่างๆของ VPS  มันก็เป็นเรื่องลำบากพอสมควร ที่เราจะเช็คว่า VPS หรือ Server ของเรา ใช้งาน CPU, RAM, Traffic , Connections ไปมากน้อยแค่ไหน

จริงแล้วๆ มีโปรแกรมอื่นๆที่นิยมใช้กันอีกนอกจาก MRTG อย่าง Munin ก็แสดงผลได้ละเอียดดีเหมือนกัน

ก่อนอื่นก็เข้า Shell ก่อนนะครับ แล้วก๊อบคำสั่งไปใช้งานได้เลยครับ

- ติดตั้ง mrtg ก่อน
yum -y install net-snmp net-snmp-utils mrtg
cd /etc/snmp/
mv snmpd.conf snmpd.conf.bak
nano snmpd.conf


- แก้ไข Config โดยการก๊อบข้างล่างไปวางใน text editor เลยครับ
syslocation  Thailand
syscontact  admin
sysservices 79
rocommunity  snmp 127.0.0.1
agentaddress  127.0.0.1


chkconfig snmpd on
/etc/init.d/snmpd start


- สร้าง Directory ที่ใช้ในการทำงานของ mrtg
mkdir -p /home/kloxo/httpd/default/mrtg
cd /etc/mrtg/


- แก้ไข Config ของ mrtg
mv mrtg.cfg mrtg.cfg.bak
nano mrtg.cfg


- คำโค้ดไฟล์การตั้งค่าไปใส่ใน text editor
LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt,/usr/share/snmp/mibs/TCP-MIB.txt,/usr/share/snmp/mibs/UDP-MIB.txt
WorkDir: /home/kloxo/httpd/default/mrtg
Options[_]: growright
EnableIPv6: no
Target[server.traffic]: 2:snmp@127.0.0.1:::::2
SetEnv[server.traffic]: MRTG_INT_IP="eth0" MRTG_INT_DESCR="eth0"
MaxBytes[server.traffic]: 125000000
Title[server.traffic]: Traffic Load
PageTop[server.traffic]: <h1>Traffic Load</h1>
Options[server.traffic]: growright, bits

#
# Memory Monitoring (Free with Buffer,/Cache/Total)
#
Target[server.memory]: memTotalSwap.0&memAvailReal.0:snmp@127.0.0.1 + PseudoZero&memBuffer.0:snmp@127.0.0.1 - memAvailSwap.0&PseudoZero:snmp@127.0.0.1
Title[server.memory]: Free Memory
PageTop[server.memory]: <H1>Free Memory</H1>
MaxBytes[server.memory]: 1044480000
ShortLegend[server.memory]: KBytes
YLegend[server.memory]: KBytes
LegendI[server.memory]: Swap inused
LegendO[server.memory]: Free Memory
Legend1[server.memory]: Swap inused
Legend2[server.memory]: Free memory inc Buffer
Options[server.memory]: growright,gauge,nopercent
#kMG[server.memory]: k,M,G

#
# CPU Monitoring
# (Scaled so that the sum of all three values doesn't exceed 100)
#
 
Target[server.cpu]: ssCpuRawUser.0&ssCpuUser.0:snmp@127.0.0.1 + ssCpuRawSystem.0&ssCpuSystem.0:snmp@127.0.0.1
Title[server.cpu]: Server CPU Load
PageTop[server.cpu]: <H1>CPU Utilization</H1>
MaxBytes[server.cpu]: 100
ShortLegend[server.cpu]: %
YLegend[server.cpu]: % CPU#Legend1[server.cpu]: Current CPU Idle
Legend1[server.cpu]: Accurate CPU Load
Legend2[server.cpu]: Current CPU Load
#LegendI[server.cpu]: Percentage CPU Idle
LegendI[server.cpu]: Accurate CPU Load
LegendO[server.cpu]: Current CPU Load
Options[server.cpu]: growright,nopercent,gaugeUnscaled[server.cpu]: ymwd
 #
# Load Average 1 & 15 min
# (Scaled so that the sum of all three values doesn't exceed 100)
#
Target[server.load]: laLoadInt.3&laLoadInt.1:snmp@127.0.0.1
Title[server.load]: Load Average at 15 and 1 Min
PageTop[server.load]: <H1>Load Average</H1>
MaxBytes[server.load]: 10000
ShortLegend[server.load]: #
YLegend[server.load]: #Load
Legend1[server.load]: Current CPU load (15 Mins)
Legend2[server.load]: Current CPU load (1 Mins)
LegendI[server.load]: Load 15 Mins
LegendO[server.load]: Load 1 Mins
Options[server.load]: growright,nopercent,gauge

#
# New TCP Connection Monitoring (per minute)
#
 
Target[server.newconns]: tcpPassiveOpens.0&tcpActiveOpens.0:snmp@127.0.0.1
Title[server.newconns]: Newly Created TCP Connections
PageTop[server.newconns]: <H1>New TCP Connections</H1>
MaxBytes[server.newconns]: 65536
ShortLegend[server.newconns]: c/sYLegend[server.newconns]: Conns / Min
LegendI[server.newconns]: In
LegendO[server.newconns]: Out
Legend1[server.newconns]: New inbound connectionsLegend2[server.newconns]: New outbound connectionsOptions[server.newconns]: growright,nopercent,perminute#Unscaled[server.newconns]: ymwd
#kMG[server.newconns]: k,M,G,T,P,X  
 #
# Established TCP Connections
#
 Target[server.estabcons]: tcpCurrEstab.0&tcpCurrEstab.0:snmp@127.0.0.1
Title[server.estabcons]: Currently Established TCP Connections
PageTop[server.estabcons]: <H1>Established TCP Connections</H1>
MaxBytes[server.estabcons]: 65536
ShortLegend[server.estabcons]: #
YLegend[server.estabcons]: Connections
LegendI[server.estabcons]: In/Out
LegendO[server.estabcons]: Legend1[server.estabcons]: Established connectionsLegend2[server.estabcons]: Options[server.estabcons]: growright,nopercent,gauge


- สุดท้าย
indexmaker --columns=2 --output=/home/kloxo/httpd/default/mrtg/index.html /etc/mrtg/mrtg.cfg


การเรียกใช้งาน เรียกผ่าน ip server/vps ของคุณ http://xxx.xxx.xxx.xxx/mrtg

Posted Image


หวังว่าคงเป็นประโยชน์ครับ

ปัญหากราฟ apache ไม่แสดงรูป

ตอนนี้ติดปัญหากราฟ apache ไม่แสดงรูปเลยอ่ะค่ะ

ค่า /etc/httpd/conf/httpd.conf ก็ไปทำมาแล้ว

อ้างถึง
LoadModule status_module modules/mod_status.so


อ้างถึง
# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
# Change the ".example.com" to match your domain to enable.
#
<Location /server-status>
    SetHandler server-status
#    Order deny,allow
#    Deny from all
    Allow from all
</Location>


อ้างถึง
# ExtendedStatus controls whether Apache will generate "full" status
# information (ExtendedStatus On) or just basic information (ExtendedStatus
# Off) when the "server-status" handler is called. The default is Off.
#
ExtendedStatus On

Magic Quotes GPC ใน kloxo คือ

คุณเคยสงสัยหรือไม่ว่า  Magic Quotes GPC  คืออะไร? แก้ไขตรงไหน? จำเป็นหรือไม่?
Magic Quotes GPC มีไว้เผื่อช่วยให้เราสามารถนำข้อมูล หลังจากที่เรา submit form ไป query ใส่ database ได้โดยไม่ error

ซึ่งการรับข้อมูลจาก form ต่างๆ  มีโอกาสที่ user จะกรอก Single quote (') หรือ Double quote (") เข้ามาในช่อง input box ของเราได้
ดังนั้นถ้าเรานำข้อมูลไปใช้โดยตรงทำให้มีโอกาส  query error ได้
ถ้าหาก   Magic Quotes GPC = On
จะมีการเติม \ เข้าไปที่หน้า Single quote หรือ Double quote ให้อัตโนมัต  ทำให้สามารถนำค่าไป query ได้ทันที
ดังนั้นการ query เราจึงต้องเช็คดังนี้
01if (get_magic_quotes_gpc()) {
02    $name = stripslashes($_POST['name']);
03}
04else {
05    $name= $_POST['name'];
06}
07 
08$name= mysql_real_escape_string($name);
09 
10$sql = "INSERT INTO table_name (name) VALUES ('$name')";
แต่ถ้าหากนำไปแสดงผลในส่วนที่ชนกับ Single quote หรือ Double quote ของ syntax บน html ล่ะ?
1// สมมุติให้  user กรอกค่าเข้ามาเป็น  "your name"
2// ดังนั้นถ้าหากเราจะแสดงค่า your name ที่ value จะเป็นดังนี้
3<input name="name">

แน่นอนว่าการแสดงผลเช่นนี้ผิด syntax ของ html ดังนั้นเราจึงอาจใช้  function  htmlspecialchars  ของ php มาช่วยก่อนที่จะแสดงผลบนค่าของ value จะทำให้สามารถแสดงผลออกมาได้ถูกต้อง

การแก้ไข Magic Quotes GPC

สามารถแก้ไข Magic Quotes GPC ได้ที่ file php.ini
1# php.ini seting to trun On/Off
2magic_quotes_gpc = On

หรือสามารถแก้ที่ file .htaccess ได้ดังนี้
1# .htaccess seting to trun On/Off
2php_flag magic_quotes_gpc off

ดังนั้นการ set magic_quotes_gpc จะจำเป็นหรือไม่ขึ้นอยู่กับ code ของเราเองว่าได้ครอบ mysql_real_escape_string ไว้หรือไม่เพื่อลองรับข้อมูลจาก user ที่กรอก Single quote หรือ Double quote เข้ามา

[แก้]web mail ของ kloxo ไม่เชื่อมต่อ DB

[แก้]web mail ของ kloxo ไม่เชื่อมต่อ DB

สั่งใน shell
# sh /script/fixmail
# sh /script/fixwebmail
# service kloxo restart

จะติดตั้ง kloxo แนะนำให้สั่งตามนี้ก่อนครับ

จะติดตั้ง kloxo แนะนำให้สั่งตามนี้ก่อนครับ



ผมลองมาแล้วเวลาติดตั้ง kloxo จะเร็วกว่าตอนยังไม่สั่งครับ

   
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
# yum update -y
# yum groupinstall 'Development Tools' -y
# yum groupinstall 'Development Libraries' -y
# rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
# cd /tmp
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# yum install ntp httpd mysql-server php php-mysql php-mbstring php-mcrypt phpmyadmin rpm-build gcc mysql-devel openssl-devel cyrus-sasl-devel pkgconfig zlib-devel pcre-devel openldap-devel postgresql-devel expect libtool-ltdl-devel openldap-servers libtool gdbm-devel pam-devel gamin-devel -y
# yum install amavisd-new spamassassin clamav clamd unzip bzip2 unrar perl-DBD-mysql -y
# cd /etc/yum.repos.d/
# wget http://centos.karan.org/kbsingh-CentOS-Extras.repo
# yum --enablerepo=kbs-CentOS-Testing install install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-mbstring php-mcrypt php-mhash php-mssql php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel mod_fcgid php-cli httpd-devel -y
# setenforce 0
# cd /root
# yum install -y wget
# wget http://download.lxcenter.org/download/kloxo/production/kloxo-install-master.sh
# sh ./kloxo-install-master.sh --db-rootpassword=
# reboot

ใช้ kloxo ลง WordPress ติดตั้ง plugin, theme แล้วไม่ auto ไปหน้า Active

จากหัวข้อก็พอจะนึกภาพออกแล้วใช่มั้ยครับผมก็ไม่รู้มาตั้งแต่แรกครับว่ามัน เป็นเพราะอะไรครับแต่เมื่อกี่ได้ทำเจอกับปัญหาของ pure-ftpd ที่ติดมากับ kloxo มันใช้ไม่ได้ซะงั้นไม่เคยใช้ด้วยสิ่ เคยใช้แต่ Vsftpd ไม่มีอะไรมากเลยครับผมเลยจัดการลบ pure-ftpd และติดตั้ง Vsftpd แทนครับ เป็นที่น่าพอใจมาก ftp ใช้งานได้ปกติดีครับ แถมเวลาเราติดตั้ง plugin หรือ theme ของ wordpres ก็ยังติดตั้งเสร็จสมบูรณกว่าเดิมครับคือเมื่อมันอัพโหลดเสร็จมันก็จะ auto ไปหน้า Active โปรแกรมเลยแต่เมื่อก่อนค้าง อยู่ที่หน้า unpack … มาดูวิีธีการติดตั้ง Vsftpd แทน pure-ftpd กันครับ

1
2
3
4
5
6
7
8
9
# yum remove pure-ftpd -y
# yum install vsftpd -y
# cd /etc/vsftpd/
# mv vsftpd.conf vsftpd.conf_bak
# wget http://mirror.pishit.com/etc/vsftpd.conf
# touch chroot_list
# chmod 777 chroot_list
# setenforce 0
# chkconfig vsftpd on
จากนั้นสั่ง reboot ครับ
ปล. เมื่อทำการติดตั้ง Vsftpd ระบบของ kloxo อาจไม่สามารถสร้าง FTP user เพิ่มได้นะครับ ตรงนี้ก่อนจะติดตั้ง Vsftpd ให้คิดอย่างรอบคอบก่อนครับว่าควรทำตามผมหรือไม่ครับ

วิธีทำ Firewall ป้องกัน Server ที่ใช้ CP ของ Kloxo

Kloxo
Kloxo
วิธีนี้เอามาจากเว็บ lxcenter.org นะครับ แต่เห็นเป็นภาษาอังกษฤครับเลยอยากให้มีไทยบ้างครับหลักการของเค้าก็คือใช้ ปิด IPTABLES ไว้ก่อนครับแล้วทำ firewall rules ขึ้นมาใหม่ครับแล้วทำให้ firewall run ตอน boot ทุกครั้งครับโดยสร้าง script ไว้ที่ /etc/init.d/ ครับ เหมือน service ตัวหนึ่งเลยละครับทำง่ายมากๆ ครับที่อธิบายผมก็พอเข้าใจแบบนี้ครับ เทพที่ผ่านมาเจออย่าว่ากันนะครับ หุๆ มาดูวิธีกันเลยครับ

อย่างแรกสั่ง
ปิด service IPTABLES:
# /etc/init.d/iptables stop
กำหนดให้ service ไม่ต้อง run ตอน boot (เดี่ยวจะมีการสั่งเองในตัว script):
# chkconfig iptables off
จากนั้นท่านจะใช้คำสั่ง touch หรือ vi, vim อะไรก็ได้ครับสร้างไฟล์ชื่อ firewall ที่ตำแหน่ง /etc/init.d/ ครับมาดูที่ผมทำครับ
# vim /etc/init.d/firewall
โปรแกรม Vim มันจะสร้างไฟล์ให้เราเลยครับเพียงแค่กดปุ่ม i เพื่อเขียนข้อความลงไปครับแต่ไม่ต้องเขียนนะครับให้ท่าน Copy Script ด้านล่างนี้ลงไปวางเลยครับเพราะทางทีมงานของ Lxcenter เค้าจัดให้แล้วครับตามนี้เลย
Copy เิอาไปวางในไฟล์ /etc/init.d/firewall จากนั้นก็กด Esc 1 ครั้งที่แป้นพิมกด : และพิม wq และ Enter เพื่อบันทึกครับ
จาดนั้นก็มาสั่งอีกนิดครับทำให้ firewall script มันทำงานได้ก่อนครับโดยสั่ง
# chmod 700 /etc/init.d/firewall
และเพิ่ม Service firewall ของเราเมื่อกี่ครับ … ยังไงว่ะ งง … ดูด้านล่างครับ
# chkconfig –level 2345 firewall on
และสั่ง Start
# /etc/init.d/firewall start
ถ้าเห็นสถานะบอกว่า OK เยอะก็ใช้ได้แล้วครับง่ายๆ ครับแต่จะธิบายเรื่อง script นิดหนึ่งครับคือ เค้ากำหนดให้ปิด port ทุก port ก่อนแล้วมาเปิด port ที่จำเป็นสำหรับ CP Kloxo ครับแค่นั้นครับ
Write By Mr.Pishit


Thursday, September 8, 2011

Kloxo Installation Guide : คู่มือการติดตั้ง Kloxo นะตัวเธอ


หลังจากที่หลวมตัวไปเช่า VPS ของ PhotonVPS มาแล้ว ในแพ็คเกจ warp 2 สั่ง DirectAdmin ไปด้วย แต่ไม่ใช้ กร๊ากๆๆ เสียเงินทิ้ง เพราะอยากลองของฟรีดูบ้าง จริงๆ ไม่น่าสั่งตั้งแต่ตอนแรกแล้วล่ะ แล้วก็ไปหลงทาง เสียเวลากับ Webmin ไปนิดหน่อย พบกว่าไม่ใช่แนวทางที่ตัวเองชอบ กร๊ากๆๆ เลยเปลี่ยนแนวมาลองเล่น Kloxo ดูบ้าง พอดีมีเทรนเนอร์ด้วย จะได้ไม่ต้องถามใครอื่นไกล เอิ๊กๆ
เริ่มกันเลยดีกว่า
มาเช็คสเป็ค VPS หรือ Dedicated ของคุณก่อน ว่าใช้งานได้หรือไม่
1.  ต้องเป็น CentOS หรือ Red Hat EL (versions 5.1+) เท่านั้นนะ สำคัญ 32 Bit ด้วย
2.  ต้องมีแรมอย่างน้อย 256 MB (หลังจากติดตั้ง Kloxo แล้ว จะใช้แรมนิดหน่อย ประมาณ 33 MB เท่านั้น!!)
3.  ต้องมีพื้นที่ว่างอย่างน้อย 2 GB สำหรับ Service ต่างๆ ด้วย
ก่อนที่จะ Install ก็ต้องมา disable SELinux กันก่อนเลย โดยใช้ command ดังนี้
su - root
setenforce 0
หลังจากนั้นก็มาถึงขั้นตอนสำหรับ Install กันแล้วครับ
Command ตัวนี้ สำหรับคนที่ยังไม่ได้ติดตั้ง MySQL server
su - root
yum install -y wget
wget http://download.lxcenter.org/download/kloxo/production/kloxo-install-master.sh
sh ./kloxo-install-master.sh
Command ตัวนี้สำหรับคนที่มี MySQL server แล้วอย่างผมที่ตอนใช้ Webmin เมื่อครั้งก่อน อิอิ
su - root
yum install -y wget
wget http://download.lxcenter.org/download/kloxo/production/kloxo-install-master.sh
sh ./kloxo-install-master.sh --db-rootpassword=พาสเวิร์ดสำหรับ root ของแต่ละคนนั้นแหละครับ
ก็ใช้เวลาติดตั้งนิดหน่อยครับ แล้วก็จะขึ้นข้อความ Congratuations นั้นก็หมายความว่าเสร็จเรียบร้อยแล้วครับ
เวลาจะล็อกอิน ก็ไปที่ http://YOUR_SERVER_IP:7778 หรือ https://YOUR_SERVER_IP:7777
User + Password ก็ admin ทั้งคู่แหละครับ
เสร็จแล้วครับ สำหรับขั้นตอนการติดตั้ง Kloxo ง่ายมั๊ยครับ อิอิ

Monday, June 27, 2011

วิธี จูน tune Kloxo เบื้องต้น

เริ่มเลยก็
php ก็ลงพวก xcache  kloxo มีให้ enable xcache แล้ว
ตัวลงก็อยู่ที่ /script/xcache-install
http://lxcenter.org/wp-content/uploads/2010/03/kloxo_200x45_gr.png
ต่อมาก็ web server
apache httpd ก็ต้อง tune เพิ่ม
/etc/httpd/conf.d/swtune.conf
ServerLimit        100
MaxClients         100
MaxRequestsPerChild  1000
min max ไม่ต้องมากเพราะเปลืองแรมไป
เพิ่มตรงส่วน serverlimit maxclient ขึ้นมา

สุดท้ายก็ mysqld เพิ่มตรงส่วน buffer พวก cache  ให้มากขึ้น
หา mysqltuner.pl  tuning-primer.sh มาช่วย tune
แล้ว monitor ดูไปเรื่อยๆ
ใช้ top, mytop ,server-status เข้าช่วย


Friday, May 6, 2011

Kloxo - IP Address Changed Amidst Session. Possible Session Hijacking.

Kloxo - IP Address Changed Amidst Session. Possible Session Hijacking.


Login ไม่ได้ ในกรณีที่ ท่าน ติดตั้ง proxy :


ท่านต้องไป คลิก ปิด ตาม รูป นะครับ ถึง จะ login
ได้

Saturday, February 12, 2011

mysqld ไม่สามารถใช้งานได้ แต่ status ก็ไม่ตาย ใครเคยเจอบ้าง

แบบอยู่ๆ ทุกเว็บก็ connect mysqld ไม่ได้
แต่พอ ssh เข้าไปเช็ค
[root@server root]# service mysqld status
mysqld (pid 22214) is running...

ผมแก้แค่
[root@server root]# kill -9 22214


มันก็ใช้งานได้เลยนะครับ โดยเปลี่ยน pid
[root@server root]# service mysqld status
mysqld (pid 22548) is running...

แต่ปัญหาคือต้องมาค่อย kill มันนะครับเลยไม่รู้สาเหตุว่าทำไมอยู่ๆมันถึงทำงานไม่ได้นะครับ
มีใครเคยเจอบ้างไหมครับ
ใช้ linux + plesk นะครับ
ขอบคุณครับ

เช็ค log มันขึ้นแบบนี้นะครับจาก /var/log/mysqld.log
[root@server log]# cat mysqld.log.1
A mysqld process already exists at  Sat May 3 20:02:28 ICT 2008
080503 20:02:55  mysqld ended

080503 20:05:27  mysqld started
080503 20:05:28  InnoDB: Out of memory in additional memory pool.
InnoDB: InnoDB will start allocating memory from the OS.
InnoDB: You may get better performance if you configure a bigger
InnoDB: value in the MySQL my.cnf file for
InnoDB: innodb_additional_mem_pool_size.
080503 20:05:28  InnoDB: Started
080503 20:05:28  Found invalid password for user: 'dbservicesrn'@'localhost'; Ignoring user
080503 20:05:28  Found invalid password for user: 'school'@'localhost'; Ignoring user
080503 20:05:28  Found invalid password for user: 'p5wd2'@'localhost'; Ignoring user
080503 20:05:28  Found invalid password for user: 'wixx8'@'localhost'; Ignoring user
/usr/libexec/mysqld: ready for connections

 ===========================

ถ้าไม่มีการใช้ innodb ก็ใส่ --skip-innodb ใน my.cnf 



ถ้าไม่มีการใช้ innodb ก็ใส่ --skip-innodb ใน my.cnf


น่าจะใส่ตรงไหนหรือครับ
[mysqld]
innodb_data_file_path=ibdata1:10M:autoextend
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

[mysql.server]
user=mysql
basedir=/var/lib

[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

ผมเจอแปลกเรื่องนึงนะครับ
คือ ผมลอง
[root@server root]# ps auxww |grep mysql
root    24035  0.0  0.1  4248  544 ?        S    May03  0:00 /bin/sh /usr/bin/safe_mysqld --defaults-file=/etc/my.cnf
mysql    32330  0.1  4.2 104588 21988 ?      S    09:58  0:00 /usr/libexec/mysqld --defaults-file=/etc/my.cnf --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-locking
root      315  0.0  0.1  3684  660 pts/0    S    10:01  0:00 grep mysql

แต่ พอลอง cat /var/run/mysqld/mysqld.pid กลับไม่มีอะไรเลย เพราะลองเครื่องอื่นแล้วมันจะต้องมี อันเดียวกับ pid เช่น pid 32330
[root@server root]# cat /var/run/mysqld/mysqld.pid

อย่างนี้ผม [root@serverroot]# vi /var/run/mysqld/mysqld.pid
ใส่ id ไปจะเป็นไปไหมครับ

และน่าจะเกียวกับปัญหานี้ไหมครับ

ผมสังเหตุเครื่องนี้ แปลกกว่าเครื่องอื่นตรง pid file ที่เก็บ mysql นะครับ ไม่รู้เกียวหรือเปล่า

เครื่องอื่น
mysql    21365  5.9  0.9 68452 4284 ?        S    Apr18 1364:29 /usr/libexec/mysqld --defaults-file=/etc/my.cnf --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/mysqld.pid --skip-locking

ตรง --pid-file=/var/lib/mysql/mysqld.pid จะอยู่ที่ /var/lib/mysql/....xxx


เครื่องที่มีปัญหา
mysql    32330  0.1  4.3 104680 22328 ?      S    09:58  0:00 /usr/libexec/mysqld --defaults-file=/etc/my.cnf --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-locking


มันเป็น --pid-file=/var/run/mysqld/mysqld.pid  คือไปอยู่ที่ /var/run/mysqld/..xxxx

ไม่ รู้ว่าอันไหนน่าจะถูกต้องหรือครับ แล้วมันคืออะไรมีผลอย่างไร น่าจะเกี่ยวกับปัญหาหรือเปล่าเพราะ ผมไปเช็คดูที่ file =/var/run/mysqld/mysqld.pid ปรากฏว่าไม่มีนะครับ เลยได้สร้างขี้นมาแล้วก็ใส่ pid เกียวกับ mysql status เข้าไป
ตอนนี้ ลองอยู่ว่าจะมีปัญหาอีกหรือเปล่า

ปัญหาน่าจะมาจาก pid ไฟล์ที่ว่ามาครับ
ประมาณว่า service on อยู่แต่ไ่ม่มี pid อยุ่ในไฟล์
ตัว monitor service ก็เลยคิดว่า down และทำการ start ให้

ลองสั่ง /etc/init.d/mysql(d) stop ติดกัน 2 ครั้ง (เริ่มสั่งตอนต้นนาทีเพื่อหลีกเลี่ยง cron)
แล้วตามด้วย killall mysqld
ps ดูว่ามี process mysql เหลืออยู่หรือเปล่า ถ้ามีก็ kill ออกให้หมด
ระหว่างนี้ไม่ควรจะมี process mysql run ขึ้นมาเอง

เสร็จแล้วสั่ง start mysql จากใน plesk หรือถ้าใน plesk ไม่มี ก็ /etc/init.d/mysql(d) restart
เช็คว่ามี pid ในไฟล์หรือเปล่า
 


เป็นอีกแล้วนะครับ เลย status ดูได้ตามนี้
[root@server root]# mysql
ERROR 1040: Too many connections

[root@server mysql]# mysqladmin processlist
mysqladmin: connect to server at 'localhost' failed
error: 'Too many connections'

[root@server mysqld]# /etc/init.d/mysqld stop
Stopping MySQL:                                            [FAILED]
[root@server mysqld]# /etc/init.d/mysqld stop
Stopping MySQL:                                            [FAILED]


[root@server mysqld]# killall mysqld

[root@server mysqld]# ps auxww |grep mysql
root      7668  0.0  0.1  3688  660 pts/2    S    18:13  0:00 grep mysql

[root@server mysqld]# /etc/init.d/mysqld restart
Stopping MySQL:                                            [FAILED]
Starting MySQL:     


[root@server mysqld]# cat /var/run/mysqld/mysqld.pid

สุดท้ายเหมือนมันสร้าง file ขึ้นมาแต่ไม่ใส่ pid เข้าไปคือ เป็นfile ว่างๆ

================================

ทำ mysqld processlist

Uptime: 1151  Threads: 1  Questions: 12155  Slow queries: 0  Opens: 704  Flush tables: 1  Open tables: 64 Queries per second avg: 10.560

และมันมี process เหมือนมัน Lock นะครับ ไม่ยอมหายไปเองจาก processlist เราจะkill มันauto ได้ไหมครับหรือมัน น่ามีปัญหาอะไรทำไมมันไม่ยอมหาย
| 1127 | dbdb| localhost | dbdb| Query          | 3417 | update          | insert into nuke_msanalysis_search ( words, hits, today, hitstoday, xdays, hitsxdays ) values ( '&agrave;&sup1; |
| 1148 | dbdb| localhost | dbdb| Query          | 3392 | Locked          | update nuke_msanalysis_search set hits=hits+1, today='2008-05-04', hitstoday=hitstoday+1, hitsxdays= |
| 1163 | dbdb| localhost | dbdb| Query          | 3380 | Locked          | update nuke_msanalysis_search set hits=hits+1, today='2008-05-04', hitstoday=hitstoday+1, hitsxdays= |
| 1178 | dbdb| localhost | dbdb| Query          | 3365 | Locked          | update nuke_msanalysis_search set hits=hits+1, today='2008-05-04', hitstoday=hitstoday+1, hitsxdays= |
| 1508 | dbdb| localhost | dbdb| Query          | 2849 | Locked          | insert into nuke_msanalysis_search ( words, hits, today, hitstoday, xdays, hitsxdays ) values ( '&agrave;&cedil; |
| 1522 | dbdb| localhost | dbdb| Query          | 2819 | Locked          | insert into nuke_msanalysis_search ( words, hits, today, hitstoday, xdays, hitsxdays ) values ( '&agrave;&sup1; |
| 2307 | dbdb| localhost | dbdb| Query          | 1715 | Locked          | update nuke_msanalysis_search set hits=hits+1, today='2008-05-04', hitstoday=hitstoday+1, hitsxdays= |
| 2419 | dbdb| localhost | dbdb| Query          | 1535 | Locked          | update nuke_msanalysis_search set hits=hits+1, today='2008-05-04', hitstoday=hitstoday+1, hitsxdays= |
| 2448 | Loli_phpBB    | localhost | phpBB          | Query          | 1472 | update          | INSERT INTO phpbb_posts_text (post_id, post_subject, bbcode_uid, post_text) VALUES (14924, 'CODE GEA |
| 2538 | Loli_phpBB    | localhost | phpBB          | Query          | 1326 | Locked          | INSERT INTO phpbb_posts_text (post_id, post_subject, bbcode_uid, post_text) VALUES (14925, 'CODE GEA |

(อันนี้แค่ส่วนนึงนะครับ)

พอทราบปัญหาละครับ ตอนแรกนึกว่าเป็นที่ script ลุกค้าแต่เข้าไปเช็คแล้ว
เป็นหลายเว็บเลย โดยเฉพาะเว็บที่เป็น script สำเร็จรูป พวก phpbb smf
มันจะเหลือ process ค้างไว้
เช่น
UPDATE smf_members
                SET
                        lastLogin = 1209916692,
                        memberIP = '58.8.23.64',
                        memberIP2 = '5 |

INSERT INTO smf_messages
                        (ID_BOARD, ID_TOPIC, ID_MEMBER, subject, body, posterName, posterEmai |


เลยคิดว่าเครือ่งน่าจะมีปัญหาที่ไม่ชอบ เคลียร์ process เก่าๆ ทิ้ง ทำให้มันเต็มและก็ค้างให้ที่สุดนะครับ
แบบนี้เราจะแก้อย่างไรดีมีทาง เช็คให้มัน kill auto ไหมครับ 

จาก error มันแจ้งว่า memory pool นั้นมีขนาดใหญ่เกินไป

แต่ว่า my.cnf ของคุณก็ไม่ได้กล่าวถึงเอาไว้เลย

ดังนั้น มันคือการดึงค่า default ออกมาใช้นั่นเอง

ที่มันเกิขึ้นก็เพราะว่า ram ของคุณหมด และมีไม่เพียงพอที่จะจับจองมารองรับการทำงาน

วิธี แก้ก็คือ ให้ตั้งค่าในส่วนของ innodb ใหม่ โดยที่ตั้งเพื่อให้ใช้งาน หรือจอง memory ให้น้อยลง เพราะว่าไม่ตั้งมันจะใช้ค่า default

ซึ่ง ตอนนี้เป็นค่าเท่าไร สามารถตรวจสอบได้จาก show status ครับ หรือจะล็อกอินฐานะ root ใน phpmyadmin เพื่อทำการดูค่าปัจจุบันแล้วไปปรับให้น้อยลงก็ได้ครับ


หรือไม่อยากเครียด ไม่อยากคิดมาก ก็

--skip-innodb

ใน my.cnf มันซะเลย ง่ายดี แต่ผลที่ตามมาคือ  user จะไม่สามารถใช้งานแบบ innodb ได้

สำหรับ เรื่องที่สคริป sql ค้างอยู่นั้น ปรกติผมจะไม่เจอครับ แต่ผมเคยเจอทีนึง ซึ่งคราวนั้นเกิดจากการ restart apache ครับ ทำให้ process SQL ทำงานยังไม่สำเร็จ

โดยปรกติจะเกิดจากการ lock table ครับ แล้วไป restart apache ณ จุดนั้นพอดี ทำให้ SQL ไม่สมบูรณ์และไม่สามารถ ปลดล็อค table ได้ พอมีการทำ DML ใน table นั้นก็ทำให้เกิดการ lock ได้ เพราะว่า table ยังไม่ได้ถูกปลด lock นั่นเอง

สำหรับส่วนนี้ผมยังไม่แน่ใจว่า แก้ด้วยวิธีใดครับ เพราะว่าผมลองไม่ได้ เพราะถ้า lock ทีแล้ว load จะพุ่งขึ้นมาเลยครับ เพราะว่ามันจะเกิดการรอการเข้ามาเปลี่ยนค่า แต่มันทำไม่ได้ครับ

ตอนนี้ลองปรับค่า mysql persistance ให้เป็น 0 ดูนะครับ แล้วตั้งค่า time out ของ mysql เอาไว้ให้ต่ำลง จะทำให้ clear connection ได้เร็วขึ้นครับ

รบกวนเช็ค my.cnf หน่อยได้ไหมครับว่ามันผิดตรงไหน เพราะรู้สึกว่ามันสั้นๆผิดปกตินะครับ
[root@server etc]# cat /etc/my.cnf
[mysqld]
innodb_data_file_path=ibdata1:10M:autoextend
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
   
[mysql.server]
user=mysql
basedir=/var/lib

[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


หรือ เราสามารถ copy my.cnf เครื่องอื่นทีทำงานปกติมาทับได้เลยไหมครับ
ผมลองเทียบกับเครื่องอื่นจะมี คำสั่งมากกว่าเยอะเลย
เช่น
# The MySQL server
[mysqld]
port            = 3306
socket          = /var/lib/mysql/mysql.sock
skip-locking
set-variable    = key_buffer=16M
set-variable    = max_allowed_packet=1M
set-variable    = table_cache=64
set-variable    = sort_buffer=512K
set-variable    = net_buffer_length=8K
set-variable    = myisam_sort_buffer_size=8M

เลยสงสัยว่าอยู่ๆทำไมมันหายไป 

Friday, February 11, 2011

mysqld dead but subsys locked โขว์แบบนี้ ติดตั้งแต่ kloxo อย่างเดียว เกิดจากอะไร

ysqld dead but subsys locked โขว์แบบนี้ ติดตั้งแต่ kloxo อย่างเดียว เกิดจากอะไร ยังไม่ได้ใส่เว็บเลย

ต้องทำอะไรที่ไม่ให้เป็นบ่อยๆครับ
Quote
100811 13:29:40  mysqld started
100811 13:29:40  InnoDB: Started; log sequence number 0 71442
100811 13:29:40 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.0.91'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  Source distribution
100812 11:59:03 [Note] /usr/libexec/mysqld: Normal shutdown

100812 11:59:03  InnoDB: Starting shutdown...
100812 11:59:04  InnoDB: Shutdown completed; log sequence number 0 71452
100812 11:59:04 [Note] /usr/libexec/mysqld: Shutdown complete

100812 11:59:04  mysqld ended

100812 12:01:12  mysqld started
100812 12:01:13  InnoDB: Started; log sequence number 0 71452
100812 12:01:14 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.0.91'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  Source distribution
100812 12:31:53 [Note] /usr/libexec/mysqld: Normal shutdown

100812 12:31:55  InnoDB: Starting shutdown...
100812 12:31:56  InnoDB: Shutdown completed; log sequence number 0 71452
100812 12:31:56 [Note] /usr/libexec/mysqld: Shutdown complete

100812 12:31:56  mysqld ended

100812 12:36:11  mysqld started
100812 12:36:11  InnoDB: Started; log sequence number 0 71452
100812 12:36:11 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.0.91'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  Source distribution
100812 12:54:14 [Note] /usr/libexec/mysqld: Normal shutdown

100812 12:54:14  InnoDB: Starting shutdown...
100812 12:54:16  InnoDB: Shutdown completed; log sequence number 0 71452
100812 12:54:16 [Note] /usr/libexec/mysqld: Shutdown complete

100812 12:54:16  mysqld ended

100812 12:56:28  mysqld started
100812 12:56:28  InnoDB: Started; log sequence number 0 71452
100812 12:56:29 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.0.91'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  Source distribution
100812 13:17:07 [Note] /usr/libexec/mysqld: Normal shutdown

100812 13:17:09  InnoDB: Starting shutdown...
100812 13:17:11  InnoDB: Shutdown completed; log sequence number 0 71452
100812 13:17:11 [Note] /usr/libexec/mysqld: Shutdown complete

100812 13:17:11  mysqld ended
 
========================================
รู้แต่ว่าถ้าเป็นบ่อยๆ เข้าระวังไม่หาย มีวิธีแก้มาให้ครับ

#chown -R mysql.mysql /var/run/mysqld
Remove lock File '/var/lock/subsys/mysqld'
#killall -9 mysqld
#service mysql restart

File/Dir Permissions MySQL daemon ทำงานด้วยสิทธิของยูสเซอร์ mysql และกรุ๊ป mysql ครับ ดังนั้น ถ้าไฟล์ฐานข้อมูลคุณกำหนดสิทธิเป็น root:root ล่ะก็ MySQL daemon ก็จะซึ่งทำงานเป็น mysql:mysql ก็จะไม่สามารถเข้าถึงไฟล์ได้ครับ

ลองเช็คตามนี้ดูครับ
[root@databaseserver~]$ /etc/rc.d/init.d/mysqld status
mysqld dead but subsys locked

chkconfig:
[root@databaseserver~]$ /sbin/chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

File/Dir Permissions:
- /var/lib/mysql owned by mysql:mysql
- /var/run/mysqld/mysqld.pid owned by mysql:mysql

PID:
[root@databaseserver~]$ ls -lh /var/run/mysqld/mysqld.pid
-rw-rw---- 1 mysql mysql 5 Mar 24 05:48 /var/run/mysqld/mysqld.pid

Running Processes:
[root@databaseserver~]$ ps -ef | grep mysql
root 3126 1 0 Mar24 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/etc/my.cnf --pid-file=/var/run/mysqld/mysqld.pid --log-error=/var/log/mysqld.log
mysql 3162 3126 0 Mar24 ? 00:34:07 /usr/libexec/mysqld --defaults-file=/etc/my.cnf --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-locking --socket=/var/lib/mysql/mysql.sock 
 ============================================
 
 ไม่เกี่ยวกับ selinux=disabled ใช่มั้ยครับ ผมปิดไว้อยู่ 
แบ่ง partition ไว้ยังไงครับ ลอง df -h มาดูหน่อยครับ 

ผมใช้ centos 5.4 5.5 ก็เป็น

[root@27AO30 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      448G  1.9G  423G  1% /
/dev/sda1              99M  12M  82M  13% /boot
tmpfs                2.0G    0  2.0G  0% /dev/shm
 
จากปัญหานี้ mysqld dead but subsys locked

folder ใน /var/lib/mysql
owner เป็น mysql  cmod เป็น 755 แล้วครับ

แต่บางครั้งก็ยังเป็นอีกครับ ทำไงดี 

ดูจาก mysqld.log ที่ข้อความแรกแล้วไม่ได้บอก error อะไร
ดูจากพื้นที่ก็เหลือเพียบ
ลองดู Ram ครับว่าเหลือเท่าไหร่ (ดูจาก shm แล้่วน่าจะมี 4G ไม่น่าหมดง่ายๆ)
เป็นบ่อยขนาดทุก 30 นาที ลอง top ทิ้งไว้แล้วดู ram กับ process ที่ทำงานหนักๆ ครับ

แล้วเครื่องนี้ลง apache ด้วยหรือเปล่าครับ หรือว่าลง mysql ล้วนๆ


Thursday, February 10, 2011

Alert: Could Not Connect to Database: The error has been logged. Please contact the administrator....

I ssh to server with root roles and change mysql root password.

When I login to localhost:7777 with user admin and create new database, I get error below:

Quote:
Alert: Could Not Connect to Database: The error has been logged. Please contact the administrator....


Old database still work. How to fix it?


========================================

Home (admin)/Servers/Server Home (localhost)/Database/Admins

and change the password to the one u provided over ssh

i'm not much a linux guy but have learned that ssh with root can make me a lot of problems (probably cause i'm not a linux guy


---------------------------------------------------------------------------
try


Home (admin)/Servers/Server Home (localhost)/Database/Admins

and change the password to the one u provided over ssh

i'm not much a linux guy but have learned that ssh with root can make me a lot of problems (probably cause i'm not a linux guy  )


Thanks but I get error below:
=> Alert: could_not_connect_to_db_admin 


------------------------------------------------------------------------
Home (admin)/Servers/Server Home (localhost)/Mysql Password Reset

maybe that will help.


Did you by chance modify permissions or the password to the kloxo user?

then try
Home (admin)/Servers/Server Home (localhost)/Mysql Password Reset

maybe that will help.


It's work. Thanks for help.


   

Saturday, February 5, 2011

Kloxo อัพไฟล์แล้ว Alert: file_exists_not_owned แก้ยังไง

 อัพไฟล์ zip ผ่านทาง File Manager ของ Kloxo แต่

Alert: file_exists_not_owned [/home/admin/mydomain.net/test//xxxxxxxt.zip]

แก้ยังไงครับ


 ================================================
Alert: file_exists_not_owned [__path_customer_root/admin//love4m.com/forum/smilies.php]


Looks like ownership problems @unix.

Get into the SSH --> to that directory

cd love4m.com/forum

then

chown user:apache * -R

user:apache = unix_username : unix_groupname

-R means that it will reset ownership permissions. The user = the name of that unix account.

If you have a different configuration of permissions and ownerships, then you need to identify the ownership of other files in that directory and change user = that_name and groupname.

Once in my case, the username did not exists for a directory and files because I had deleted the unix user. So only the UID:GID appeared.

So you may get an error if the file does not have proper ownership that the logged in account or that unix user does not exists. Check it out...

Monday, January 24, 2011

Migrating wpmu blog to new host

I have job to transfer wordpress multi user to new host. The wpmu system currently host 400+ with subdomain type.
The old host and new host use same operating system FreeBSD dedicated server but with different version.
The procedure for move wpmu to new host not different than moving ordinary wordpress blog.

Preparing and packing

1. Dumping mysql database
#  mysqldump -udtonet2 -pdotnet22008 dotnet2 > dotnet.sql
2. Packing all files to one tarball
# tar cvzf wordpress-mu.tar.gz  wordpress-mu
3. Transfer the file to new host
# scp wordpress-mu.tar.gz erau@172.88.1.8:/home/erau
Password:
wordpress-mu.tar.gz                    100%   402MB  13.9MB/s   00:03
#
4. Change dns setting
add wildcard to tinydns data file.
.batikweb.com:127.0.0.1:a:259200
.1.88.172.in-addr.arpa:127.0.0.1:a:259200
+batikweb.com:172.88.1.8:8640
+www.batikweb.com:172.88.1.8:8640
+*.batikweb.com:172.88.1.8:86400
@batikweb.com:172.88.1.11:mail.batikweb.com:10:86400
make file
# make
restart dns
# svc -t /var/service/tinydns/
# svc -t /var/service/dnscache/
check dns resolv
# dig batikweb.com
; <<>> DiG 9.3.4-P1 <<>> batikweb.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15165
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;batikweb.com.                        IN      A
;; ANSWER SECTION:
batikweb.com.         8640    IN      A       172.88.1.8
;; Query time: 0 msec
;; SERVER: 172.88.1.10#53(172.88.1.10)
;; WHEN: Tue May 11 09:59:31 2010
;; MSG SIZE  rcvd: 48
#

Unpack and restoring

This steps taken in new host.
Login to server 1.8
4. Move the file
# mv /home/erau/wordpress-mu.tar.gz  /home/dotcom
# cd /home/dotcom
# tar xvzf wordpress-mu.tar.gz
Change vhost
# ee /usr/local/etc/apache22/extra/httpd-vhosts.conf
add these lines :
<VirtualHost 172.88.1.8 >
ServerAdmin alam@hostingformula.net
DocumentRoot /home/dotcom/wordpress-mu
<Directory /home/dotcom/wordpress-mu >
AllowOverride FileInfo Options
</Directory>
ServerName batikweb.com
ServerAlias *.batikweb.com
</VirtualHost>
5. Create database
# mysql -ualam -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 590411
Server version: 5.0.77-log FreeBSD port: mysql-server-5.0.77_1
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input
statement.
mysql> create database wpmu;
Query OK, 1 row affected (0.01 sec)
mysql>
Grant all privileges
mysql> grant all privileges on wpmu.* to dtonet2@localhost identified by ‘dotnet22008′ with grant option;
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql>
Import database
mysql> exit
Bye
#
6. Import database
# mysql -udtonet2 -pdotnet22008 wpmu < dotnet.sql
Change wp-edit.php to new host information.
#ee  wp-config.php
Which iPad To Buy
Waterproof Case for Ipad
Keyboard for Ipad
7. Restart Apache
# /usr/local/etc/rc.d/apache22 restart
Performing sanity check on apache22 configuration:
Syntax OK
Stopping apache22.
Waiting for PIDS: 793.
Performing sanity check on apache22 configuration:
Syntax OK
Starting apache22.
#
Check everything from browser and no problem so far.
Finish, mission accomplished.
wpmu cannot connect to database, wpmu coupon, wpmu transfer error, mu online experience formula, move wordpress mu to new, wpmu coupon code, tinydns answer section dnscache, change wp mu to another server, porting wordpress da hosting a hosting, transferring a wordpress mu site to a server, wordpress mu connect host, wordpress mu sql query, wordpress multi site change hosts, wpmu multi db grant, wpmu mysql assign user to blog, moving site from wp mu to wp on a new server, moving multiuser wordpress site cannot connect to database, dotnet mysql current connection id, how to migrate wordpress mu to another server, How to move wpmu to new host, how to transfer databases for wpmu to new host, how to transfer wordpress mu, idrive wordpress MU, migrating domain wordpress wpmu, migrating wordpress mu sql, move blogs between wordpress mu databases, move host wp mu, Move WPMU blog to new WPMU blog, moving a wordpress mu blog to new server, moving from wordpress mu, www batikweb com(Visited 165 times, 3 visits today)

Kloxo 500 – Internal Server Error

Kloxo control panel aka lxadmin in the past help me a lot in managing vps operational. I don’t have to touch configuration file for adding new domain, setting virtual host, grant database username and privileges etc. The other best part of this cpanel alternative are :
  1. It’s free ( I can asking for help or install it by myself)
  2. Low resources (specially memory where most  low end vps plan has limited)
Problem came when I must add new domain for my friend blog. I see this message after I enter username and password :

500 – Internal Server Error

I think it just small problem with service and  library conflict.
Restart Kloxo 1 st attempt :
Which iPad To Buy
Waterproof Case for Ipad
Keyboard for Ipad
# service kloxo restart
Stopping kloxo: Waiting for the process to die…..
Stopped kloxo
Starting kloxo: 11
mysqld (pid 30515) is running…
Started kloxo
Try again to login and I still get 500 – Internal Server Error message.
Restart Kloxo 2nd attempt :
# /script/restart
Stopping kloxo: ../bin/common/function.sh: line 28: 16364 Terminated              $__path_php_path $__path_server_path $string > /dev/null 2>&1
Waiting for the process to die…..
Stopped kloxo
Starting kloxo: 11
mysqld (pid 30515) is running…
Started kloxo
I still get 500 – Internal Server Error message after entering username and password.
Searching around (I forgot source url) I try to downgrade ssl.
# yum downgrade openssl
Loaded plugins: fastestmirror
Setting up Downgrade Process
Loading mirror speeds from cached hostfile
* addons: mirror.5ninesolutions.com
* base: centos-distro.cavecreek.net
* extras: mirrors.versaweb.com
* updates: centos-distro.cavecreek.net
addons                                                                                                                                        |  951 B     00:00
base                                                                                                                                              | 2.1 kB     00:00
extras                                                                                                                                          | 2.1 kB     00:00
lxlabslxupdate                                                                                                                            951 B     00:00
lxlabsupdate                                                                                                                            |  951 B     00:00
updates                                                                                                                                      | 1.9 kB     00:00
Resolving Dependencies
–> Running transaction check
—> Package openssl.i686 0:0.9.8e-12.el5_4.1 set to be updated
—> Package openssl.i686 0:0.9.8e-12.el5_4.6 set to be erased
–> Processing Dependency: openssl >= 0.9.8e-12.el5_4.4 for package: mod_ssl
–> Running transaction check
—> Package mod_ssl.i386 1:2.2.3-31.el5.centos.4 set to be erased
–> Finished Dependency Resolution
Dependencies Resolved
=============================================================================
Package                             Arch                             Version                                              Repository                             Size
=============================================================================
Installing:
openssl                             i686                             0.9.8e-12.el5_4.1                                    updates                               1.4 M
Removing:
openssl                             i686                             0.9.8e-12.el5_4.6                                    installed                             3.3 M
Removing for dependencies:
mod_ssl                             i386                          1:2.2.3-31.el5.centos.4                           installed                             173 k
Transaction Summary
=============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       2 Package(s)
Total download size: 1.4 M
Is this ok [y/N]: y
Downloading Packages:
openssl-0.9.8e-12.el5_4.1.i686.rpm                                                                                                              | 1.4 MB     00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing     : openssl                                                                                                                                         1/3
Erasing        : mod_ssl                                                                                                                                         2/3
warning: /etc/httpd/conf.d/ssl.conf saved as /etc/httpd/conf.d/ssl.conf.rpmsave
Cleanup        : openssl                                                                                                                                         3/3
Removed:
openssl.i686 0:0.9.8e-12.el5_4.6
Dependency Removed:
mod_ssl.i386 1:2.2.3-31.el5.centos.4
Installed:
openssl.i686 0:0.9.8e-12.el5_4.1
Complete!
#
Restart Kloxo 3rd attempt :
Using command in 1st or 2nd attempt bring me this display
kloxo is up Kloxo and 500   Internal Server Error
Case closed
kloxo 500 - Internal Server Error, kloxo Internal Server Error, kloxo Could not connect to Mysql server, kloxo, 500 - Internal Server Error kloxo, kloxo 500 internal server error, uninstall kloxo, remove kloxo, Internal Server Error KLOXO, kloxo 500 error, kloxo error 500, install kloxo in centos error mysql, restart kloxo, kloxo addons, 500 internal server error kloxo, 500 Internal Server Error how to, error kloxo after shutdown, Stopping kloxo: /bin/common/function sh: line 28, wordpress internal server error Kloxo, kloxo /bin/common/function sh, openssl-0 9 8e-12 el5_4 1 i686 rpm, Starting kloxo: 11 Could not connect to Mysql server, reinstall mysql kloxo, starting kloxo, Kloxo mysql error, Stopping kloxo: /bin/common/function sh, centos 500 kloxo - Internal Server Error, vps 500 - Internal Server Error, kloxo restart, kloxo not restart, kloxo not working 500 internal server error, kloxo function sh, stopping kloxo, kloxo email problem, internal server error 500, kloxo internal server erro, error log file kloxo, kloxo webmail internal server error, download openssl-0 9 8e-12 el5_4 1 i686 rpm, Stopping kloxo: /bin/common/function sh: line 28:, server i kloxo, $__path_php_path $__path_server_path $string > /dev/null 2>&1, starting KLOXO in shell, cai kloxo 500 - Internal Server Error, Stopping kloxo: /bin/common/function sh: lineTerminated, kloxo reboot Internal Server Error, kloxo reboot Could not connect to Mysql server, kloxo pserver-localhost default, upgrade mysql in kloxo, kloxo remove script(Visited 1,509 times, 20 visits today)

 
Design by Laikeng | Bloggerized by Storesu - sutoday | Court