Monday, June 4, 2012

  Хэдэн өдөр сервэр удаж гацаад вэбүүд рүү орж болохгүй толгой гашилгалаа. Сервэрийн тохиргоог нь уг нь нээх өөрчлөөгүй ийн core config үүдийг. Тэгээд судалж үзсэн чинь apache-г multi threaded болгож болдог энэ нь ачааллах хурдыг нь ихэсгэдэг талаар мэдэж авлаа. Тэгээд сервэрээ шалгаж үзтэл mpm_prefork буюу single thread тэй тохиргоотой байна. Multi thread нь mpm_worker гэж гардаг юм байна. Шалгая гэвэл apache2 -V гээд бичээрэй.



  Тэгээд энийг тохируулахад нээх хэцүү биш юм байна. mpm_worker module-г суулгахад болдог юм байна. Суулгахдаа 
  apt-get install apache2-mpm-worker
  ингээд ажлуулахаар хуучин apache2-mpm-prefork  модулийг устгаад шинэ модулийг суулгана.
  Ингээд сервэрийн ачааллах хурд эрс сайжирч нөлөө эрс мэдэгдэж байлаа. 

  Тэгтэл сервэр дээр PHP ажлуулах хэрэг гарлаа. Манайх уг нь tomcat ажилладаг сервэр байсын. Тэгтэл хог чинь libapach2-mod-php5 гэсэн модуль mpm-worker модуль-ийг дэмждэггүй юм байна. Суулгахаар л нь энэ модулийг устгаад apache2-mpm-prefork модулийг суулгаад байна. Өмнө нь зүгээр байж байгаад сервэр удаад байсан шалтгаан нь энэ байж таарлаа. PHP тохируулах гэж мунгинаж байгаад энэ тохиргоог нь аваад хаясан байж.

  Тэгээд PHP-г энэ модультай ажлуулах гэж судлаад PHP5-CGI гэсэн модулиар PHP-г CGI ашиглан mpm-worker той ажлуулж болдог юм байна. Тохируулахад бас маш амархан энгийн:
  Дараах модулиудыг эхлээд суулгах шаардлагатай: FastCGI - ийн
  apt-get isntall libapache2-mod-fcgid php5-cgi php5-cli
  
  Apache  дээрээ FASTCGI модулийг идэвхжүүлнэ.
  a2enmod fcgid

  /etc/apache2/apache2.conf - д дараах мөрүүдийг нэмж өгнө.

   <Directory /var/www>
     AddHandler fcgid-script .php
     FCGIWrapper /usr/lib/cgi-bin/php5 .php
     Options +ExecCGI
   </Directory>

   
  Энэ тохиргоо нь apache2 - г php  өргөтгөлтэй файл ажиллахад cgi скрипт ашиглана гэдгийг зааж өгнө.

  Virtual Host - ийн тохиргоон дээрээ дараах мөрийг нэмнэ.

  <Directory /var/www/sampledomain.com>
     Options +ExecCGI
  </Directory>



  Энэ тохиргоо нь энэ домэйн нь FastCGI модуль ашиглахыг зааж өгнө.
  Ингээд apache-гээ дахин эхлүүлээд тохиргоо идэвхжинэ.

  /etc/init.d/apache2 restart
  service apache2 restart
   
  Тохиргоог хийхдээ та рүүт эрхтэй байх ёстойг анхаарна уу.
  ubuntu дээр sudo Эсвэл sudo -s
  debian дээр su гэсэн коммандаар Рүүт шэллтэй болдог :)

0 comments:

Post a Comment