ล้าง database และ temp ไฟล์ใน magento
พอดีทางฮาวโฮสเราได้มีโอกาสดูแลเว็บไซต์ proplugin.com ซึ่งเป็นเว็บ e-commerce ที่สร้างมาจาก magento และมีข้อมูลสินค้ามากมายซึ่งถือว่าเว็บนี้เป็นเว็บที่ใหญ่พอตัวเลยทีเดียว
ซึ่งปัญหาที่เกิดขึ้นก็คือ database ของตัวเว็บนั้นใหญ่โตมากขนาดประมาณเกือบ 700 mb ตรวจสอบพบว่า table พวก log_ จะมีขนาดใหญ่เกินผิดปกติ ผมก็เลยลองหาวิธีเคลียร์ database ให้มันเล็กมา และก็ได้ไปเจอ script ตัวหนึ่งน่าสนใจมากครับ
ให้เราทำการสร้างไฟล์ชื่อ cleanup.php ไว้ที่ root directory ของ magento ใส่โด็ดด้านล่างลงไป
$db['host'] = ''; // Database hostname
$db['name'] = ''; // Database name
$db['user'] = ''; // Database username
$db['pass'] = ''; // Database password
$db['pref'] = ''; // Database tables' prefix
if($_GET['clean'] == 'log') clean_log_tables();
if($_GET['clean'] == 'var') clean_var_directory();
function clean_log_tables() {
global $db;
$tables = array(
'log_url',
'log_url_info',
'log_visitor',
'log_visitor_info'
);
mysql_connect($db['host'], $db['user'], $db['pass']) or die(mysql_error());
mysql_select_db($db['name']) or die(mysql_error());
foreach($tables as $v => $k) {
mysql_query('TRUNCATE `'.$db['pref'].$k.'`') or die(mysql_error());
}
}
function unlinkRecursive($dir)
{
if(!$dh = @opendir($dir))
{
return;
}
while (false !== ($obj = readdir($dh)))
{
if($obj == '.' || $obj == '..')
{
continue;
}
if (!@unlink($dir . '/' . $obj))
{
unlinkRecursive($dir.'/'.$obj, true);
}}
closedir($dh);
return;
}
function clean_var_directory() {
$dirs = array(
'var/log/',
'var/report/',
'var/session/',
'var/tmp/',
'downloader/pearlib/cache/',
'downloader/pearlib/download/'
);
foreach($dirs as $v => $k) {
echo "
<strong>DELETING CONTENT OF : </strong>". ($k);
unlinkRecursive($k);
}
}
echo "Finished!";
ค่า database hostname, database name, database username, database pass แก้ไขตามที่เราใช้งานนะครับ จากนั้นถ้าเราจะใช้งานก็พิมพ์ urlดังนี้
http://domain.com/cleanup.php?clean=log << ไว้สำหรับล้าง log ใน database หรือ
http://domain.com/cleanup.php?clean=var << ไว้สำหรับลบไฟล์ var/cache, var/log เป็นต้น
หลังจากผมลองล้าง database ดูพบว่าขนาดลดลงไปเหลือ 300mb เองครับ แจ่มจริงๆใช้ดีเลยบอกต่อ
thank : http://www.magentocommerce.com/boards/viewthread/36148/#t117754
บทความแนะนำ
