1/30/2011

Allowed memory size of 8388608 bytes exhausted...

PHP-тээ холбоо хамааралтай package суулгах үед дээрх алдаа гарвал дараах байдлаар засаарай.

1. php.ini файлыг нээж memory_limit зааж өгсөн утгыг
өөрчлөх.
анхны утга нь 8М байдаг бөгөөд 16М,64М болгон өөрчлөөрэй.

Дээрх тохиргоог хийгээд алдаа засагдахгүй бол дараах алхамыг хийгээрэй.

2. /usr/share/pear/ дир-т байрлах pearcmd.php файлыг нээж
дараах мөрийг нэмээрэй.
ini_set('memory_limit', '16M')

1 болон 2 дахь тохиргоог өөрчилвөл дээрх алдаа засагдах болно. Засагдахгүй дохиолдол байвал коммент үлдээгээрэй. Мөн тохиргоогоо өөрчлөөд серверээ restart хийхээ мартуузай.
Continue Reading...

1/21/2011

Crontab ажиллахгүй үед шалгавал зохих зүйлс

1. Crond төлөвийг шалгах
2. Crontab-д нэмсэн файлын permission-г шалгах
3. Cron log файлыг шалгах
Юуны өмнө дээрх 3-н зүйлийг шалгах нь зүйтэй болов уу гэж бодлоо.
Crond төлөвийг шалгах даа доорх командыг бичиж шалгана.

Service crond status
Бас Run level-г нь шалгах нь зүйтэй байх шалгахдаа
Chkconfig --list crond командыг ашиглаарай (Run level 2-5 On байвал асуудалгүй.)

Crontab-д нэмсэн файлын permission-г шалгаж бүх хэрэглэгчид уг файлыг ажиллуулж болохоор тохируулах.

chmod a+x yourfile (everyone execute permission on yourfile )

Cron log файлыг шалгах
Уг файл нь /var/log/ дир-т байрлах бөгөөд дараах командыг бичвэл файлыг агуулгыг харж болно.

vi /var/log/cron

дээрх файлд ямар нэгэн алдааны мэдээлэл бичигдэгүй байсан ч ажиллахгүй дохиолдол бий. Тухайн файлд Crontab-д нэмсэн файлын агуулга буюу бичлэгийн алдаатай дохиолдолд тухайн алдааны мэдээлэлийг бичдэггүй болно. Уг алдааны мэдээлэлийг шалгахдаа Crontab-д команд нэмэхдээ дараах байдлаар нэмээрэй.

Команд >>/var/log/analog.log 2>>/var/log/analog-err.log
Жишээлбэл:
*/1 * * * * php /var/www/htdocs/example.php >>/var/log/analog.log 2>>/var/log/analog-err.log

Дээрх команд нь example.php файлыг 1 минут дутамд сервер дээр автоматаар execute хийгдэхээр нэмэгдсэн байна.

example.php-д бичигдсэн код алдаатай үед /var/log/analog-err.log файлд тухайн алдааны мэдээлэл бичигдэх тул та тэр дагуу өөрийн кодыг шалгаж үзээрэй.

Блогийн маань нийт зочидод тус нэмэр болно гэдэгт итгэлтэй байна.

Continue Reading...

1/18/2011

Year 2038 problem

Энэ асуудалын талаар мэддэггүй хүмүүс байгаа байх гэж бодоод жаахан зүйл бичье гэж бодлоо.
PHP дээр огноо дүрслэхдээ UNIX timestamp ашигладаг функц ашиглавал дүрслэж болох огноо-н MAXIMUM утга нь 32бит-н компьютер дээр 2-н 31 зэрэг байдаг. Үүнийг UNIX timestamp ашиглан огноод шилжүүлвэл

2038-01-19 12:14:07 болно

дээрх хязгаараас давсан буюу их утгыг хөрвүүлэхдээ дараах огноог дүрслэдэг

1901-12-14 05:45:52

Та бүхэн дараах кодыг ажиллуулж туршиж үзээрэй

$maximum_value = pow(2, 31) - 1;
echo date('Y-m-d H:i:s', $maximum_value) . "\n";

$maximum_overflow = $maximum_value + 1;
echo date('Y-m-d H:i:s', $maximum_overflow) . "\n";
?>


Урт хугацаагаар ашиглах систем хөгжүүлэхдээ UNIX timestamp ашиглан огноо дүрсэлдэг функц анхнаасаа ашиглахгүй байсан дээр болов уу гэж бодож байна. Жишээлбэл : PEAR-н Calc класс-г ашиглаж болно.
Continue Reading...
 

Надад итгэл бий Copyright © 2009 WoodMag is Designed by Ipietoon for Free Blogger Template