Новое оборудование

Уважаемые пользователи хостинга!
Рады сообщить Вам, что несмотря на кризис, мы продолжаем развиваться.
В этот раз мы купили новые серверы под VDS хостинг

Напоминаем Вам, что стоимость услуг VDS хостинга остается неизменной. Спасибо за то, что выбираете нас!

С Уважением, коллектив CISHost.ru
Читать дальше

Поздравляем наших партнеров!


10 февраля нашему главному поставщику ПО для автоматизации работы хостинга исполнилось 11 лет.
Несомненно, если бы не существовало ISPsystem, нам было бы очень тяжело, ведь только они стоят в одному ряду с ведущими западными разработчиками ПО для предоставления услуг хостинга.
Мы очень любим ISPsystem и от всей души поздравляем их с 11-и летием!
Спасибо Вам за замечательное и полезное ПО, которое позволяет развивать Российский сегмент хостинга!
#ispsystem
Читать дальше

Внимание! Изменение цен на услуги.

Уважаемые пользователи хостинга!
Информируем вас о повышении цен на выделенные IP-адреса с 9-го февраля 2015 года.
В связи с инфляцией, мы вынуждены повысить цены на выделенные IP-адреса.
Мы прилагаем все возможные усилия, чтобы не повышать цены на услуги и рады сообщить, что цены на виртуальный хостинг и VDS хостинг остаются без изменений.
Читать дальше

С наступающим Новым годом!

Уважаемые пользователи хостинга!

Коллектив хостинга CISHost поздравляет Вас с наступающим Новым 2015 годом и Рождеством!

В наступающем году мы желаем Вам новых достижений, неисчерпаемого источника идей и реализации всех намеченных проектов и планов, Пусть для Вас и ваших близких праздники и новый год будут наполнены большой радостью, счастьем и успехом. Пусть удача сопутствует во всех начинаниях, а все желания обязательно сбудутся!

Всегда рады сотрудничать с Вами!



Подробнее

Технические работы 16.09.2014

Уважаемые пользователи хостинга! Уведомляем Вас, что 16.09.2014 в период с 03:00 до 05:00 будут проходить плановые работы на сетевом оборудовании в Москве. Во время проведения работ будет отсутствовать доступ к сайтам, расположенным в данном сегменте сети. Ожидаемый перерыв составит 20 минут. Работы направлены на повышение отказоустойчивости сервисов во время сетевых атак.
Читать дальше

Замена роутера

Роутер

Уважаемые пользователи хостинга!
Наш роутер Mikrotik Cloud Core не выдержал последнего SYN-флуда или на него негативно повлияло суперлуние. Нам пришлось произвести экстренную замену на новый. Перебои с сайтами на российских серверах наблюдались с 21:35 по 01:40 по московскому времени. На данный момент все сервисы восстановлены и работают в полном объеме.
Приносим свои извинения за доставленные неудобства.
Читать дальше

Базы данных InnoDB vs MyISAM

Наш опыт подсказывает, что лучше использовать таблицы InnoDB. Таблицы MyISAM часто блокируются при нагруженном одновременном чтении и записи. Ну если на сайт Joomla одновременно зашли примерно 1000 пользователей, то ситуация выглядит так:

Вывод mytop:

Id      User    Host    db      Command Time    State   Info    Progress
108751  user_main  localhost       user_j15   Query   146980  closing tables  SELECT * FROM jos_session WHERE session_id = 'dfeodu7tv41tbgg4pts44s2kk6'       0.000
108753  user_main  localhost       user_j15   Query   146980  updating        DELETE FROM jos_session WHERE ( time < '1405526121' )   0.000
108774  user_main  localhost       user_j15   Query   146978  Waiting for table level lock    SELECT * FROM jos_session WHERE session_id = 'g2j9kt3stbtkg75tct5r2dvkb6'       0.000
108829  user_main  localhost       user_j15   Query   146977  Waiting for table level lock    SELECT * FROM jos_session WHERE session_id = 'et6833daba2v5t6hptk4e72jr4'       0.000
108834  user_main  localhost       user_j15   Query   146976  Waiting for table level lock    SELECT * FROM jos_session WHERE session_id = 'r35kp3balnt1kt9qnrdclf1k30'       0.000
108930  user_main  localhost       user_j15   Query   146975  Waiting for table level lock    SELECT * FROM jos_session WHERE session_id = '8fssht7k44uiq5kdellgtfe6o7'       0.000
108936  user_main  localhost       user_j15   Query   146969  Waiting for table level lock    SELECT * FROM jos_session WHERE session_id = 'qfvubpisihl1p10k3gkd6tg1v4'       0.000
109030  user_main  localhost       user_j15   Query   146964  Waiting for table level lock    SELECT * FROM jos_session WHERE session_id = '250oati4c74eac3fth5lcpf696'       0.000
109038  user_main  localhost       user_j15   Query   146964  Waiting for table level lock    SELECT * FROM jos_session WHERE session_id = 'f910sn4upaijefoehb546b66h7'       0.000
109121  user_main  localhost       user_j15   Query   146959  Waiting for table level lock    SELECT * FROM jos_session WHERE session_id = 'mo6c9pg63l7m693bpeomas7j60'       0.000

Была попытка одновременного удаления строк из таблицы с сессиями и чтения записей. Такое происходит нечасто, но бывает.
Можно обратить внимание, что запросы исполняются уже 146980 секунд, что препятствует нормальной работе сайта. Если бы таблица jos_session была не MyISAM, а InnoDB, такого бы не произошло. Сменить тип таблиц Вы можете сделав экспорт дампа базы и произвести замену с помощью Notepad++, либо обратившись в нашу техническую поддержку — мы конвертируем таблицу MyISAM в InnoDB самостоятельно, после чего сайт заработает без проблем.

Об отправке почты

У нас нельзя отправлять почту просто функцией PHP mail, потому что спамеры, регулярно взламывающие незащищенные Joomla и Wordpress сайты используют домены клиентов для своих рассылок и затем уже почта добросовестных клиентов совершенно не доходит получателям.

Рекомендуем следующие скрипты для отправки почты:

Библиотека smtp-func.php

<?php

function smtpmail($mail_to, $subject, $message, $headers='') {

        //Настройки почты
        $config['smtp_username'] = 'test@cishost.ru';  //Смените на имя своего почтового ящика из ISPManager.
        $config['smtp_password'] = 'Пароль от почтового ящика из панели ISPManager';  //Измените пароль.
        $config['smtp_from']     = 'Test Mailbox'; //Ваше имя - или имя Вашего сайта. Будет показывать при прочтении в поле "От кого".
        //Обычно эти настройки менять не стоит
        $config['smtp_host']     = 'localhost';  //Сервер для отправки почты (для наших клиентов менять не требуется).
        $config['smtp_port']     = '25'; // Порт работы. Не меняйте, если не уверены.
        $config['smtp_debug']    = false;  //Если Вы хотите видеть сообщения ошибок, укажите true вместо false.
        $config['smtp_charset']  = 'UTF-8';   //Кодировка сообщений.

        $SEND =   "Date: ".date("D, d M Y H:i:s") . " +0300\r\n";
        $SEND .=   'Subject: =?'.$config['smtp_charset'].'?B?'.base64_encode($subject)."=?=\r\n";
        if ($headers) $SEND .= $headers."\r\n\r\n";
        else
        {
                $SEND .= "Reply-To: ".$config['smtp_username']."\r\n";
                $SEND .= "MIME-Version: 1.0\r\n";
                $SEND .= "Content-Type: text/plain; charset=\"".$config['smtp_charset']."\"\r\n";
                $SEND .= "Content-Transfer-Encoding: 8bit\r\n";
                $SEND .= "From: \"".$config['smtp_from']."\" <".$config['smtp_username'].">\r\n";
                $SEND .= "To: $mail_to <$mail_to>\r\n";
                $SEND .= "X-Priority: 3\r\n\r\n";
        }
        $SEND .=  $message."\r\n";
         if( !$socket = fsockopen($config['smtp_host'], $config['smtp_port'], $errno, $errstr, 30) ) {
            if ($config['smtp_debug']) echo $errno."<br>".$errstr;
            return false;
         }

            if (!server_parse($socket, "220", __LINE__)) return false;

            fputs($socket, "EHLO " . $config['smtp_host'] . "\r\n");
            if (!server_parse($socket, "250", __LINE__)) {
               if ($config['smtp_debug']) echo '<p>Не могу отправить EHLO!</p>';
               fclose($socket);
               return false;
            }
            fputs($socket, "AUTH LOGIN\r\n");
            if (!server_parse($socket, "334", __LINE__)) {
               if ($config['smtp_debug']) echo '<p>Не могу найти ответ на запрос авторизации!</p>';
               fclose($socket);
               return false;
            }
            fputs($socket, base64_encode($config['smtp_username']) . "\r\n");
            if (!server_parse($socket, "334", __LINE__)) {
               if ($config['smtp_debug']) echo '<p>Логин авторизации не был принят сервером!</p>';
               fclose($socket);
               return false;
            }
            fputs($socket, base64_encode($config['smtp_password']) . "\r\n");
            if (!server_parse($socket, "235", __LINE__)) {
               if ($config['smtp_debug']) echo '<p>Пароль не был принят сервером как верный! Ошибка авторизации!</p>';
               fclose($socket);
               return false;
            }
            fputs($socket, "MAIL FROM: <".$config['smtp_username'].">\r\n");
            if (!server_parse($socket, "250", __LINE__)) {
               if ($config['smtp_debug']) echo '<p>Не могу отправить команду MAIL FROM:</p>';
               fclose($socket);
               return false;
            }
            fputs($socket, "RCPT TO: <" . $mail_to . ">\r\n");

            if (!server_parse($socket, "250", __LINE__)) {
               if ($config['smtp_debug']) echo '<p>Не могу отправить команду RCPT TO:</p>';
               fclose($socket);
               return false;
            }
            fputs($socket, "DATA\r\n");

            if (!server_parse($socket, "354", __LINE__)) {
               if ($config['smtp_debug']) echo '<p>Не могу отправить команду DATA!</p>';
               fclose($socket);
               return false;
            }
            fputs($socket, $SEND."\r\n.\r\n");

            if (!server_parse($socket, "250", __LINE__)) {
               if ($config['smtp_debug']) echo '<p>Не могу отправить тело письма. Письмо не было отправлено!</p>';
               fclose($socket);
               return false;
            }
            fputs($socket, "QUIT\r\n");
            fclose($socket);
            return TRUE;
}
function server_parse($socket, $response, $line = __LINE__) {
        global $config;
        $server_response="";
    while (substr($server_response, 3, 1) != ' ') {
        if (!($server_response = fgets($socket, 256))) {
                   if ($config['smtp_debug']) echo "<p>Проблемы с отправкой почты!</p>$response
$line
";
                   return false;
                }
    }
    if (!(substr($server_response, 0, 3) == $response)) {
           if ($config['smtp_debug']) echo "<p>Проблемы с отправкой почты!</p>$response
$line
";
           return false;
        }
    return true;
}

//Отправить почту сразу нескольким получателям, ящики получателей пишем через запятую.

function smtpmassmail($mail_to, $subject, $message, $headers='')
{
$mailaddresses=explode(",",$mail_to);
foreach ($mailaddresses as $mailaddress) smtpmail($mailaddress,$subject,$message,$headers);
}

?>


и сам файл отправки mailer.php

<?php
//Замените настройки на нужные.
$mail_to = 'mail@cishost.ru'; //Вам потребуется указать здесь Ваш настоящий почтовый ящик, куда должно будет прийти письмо.
$type = 'plain'; //Можно поменять на html; plain означает: будет присылаться чистый текст.
$charset = 'UTF-8';

include('smtp-func.php');
if ($_REQUEST['message'])
{
   $name = $_REQUEST['name'];
   $phone = $_REQUEST['phone'];
   $message = $_REQUEST['message'];
   $replyto = 'no_reply@yandex.ru';
   $headers = "To: \"Administrator\" <$mail_to>\r\n".
              "From: \"$replyto\" <$mail_from>\r\n".
              "Reply-To: $replyto\r\n".
              "Content-Type: text/$type; charset=\"$charset\"\r\n";
   $sended = smtpmail($mail_to, $name, $message, $headers);
   
   echo '<html>
        <head>
        <meta http-equiv="content-type" content="text/html; charset='.$charset.'">
        </head>
              <body>';
   if (!$sended) echo 'Письмо не удалось отправить. Пожалуйста свяжитесь с администратором сайта по адресу: '.$mail_to;
   else echo 'Письмо было успешно отправлено.';
   echo '</body>';
   exit;
}
?>
Читать дальше