From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1566416816; bh=frZkL2mStMz1kdS8qMGwEDjttGGpgvSK7a53+pIrzXA=; h=In-Reply-To:From:Date:References:To:Subject:Message-ID; b=azfRaxxIB3XewYIQCb5aw7mNM3NkZzQF1QMVpLs+RQl7fVNvQSepkPZAr0U4V4I/7 ddLjrICKN/Kavuz+O4XTKaVeaLd6TjEeEW17xw/vgOGp93HJslHW/6DaV6RHSxRFU3 0JC4LqWIGjMzip2EgLavFaVZNygg5HUaamXrDdTA= Authentication-Results: mxback14o.mail.yandex.net; dkim=pass header.i=@yandex.ru To: sysadmins@lists.altlinux.org References: <2a2fde9a596648a5a86e34d8862eabf2@V02-EXCH-003.resources.smpgroup.ru> From: Alexander Yereschenko Message-ID: <47a2fc2f-bf39-fe80-6c55-886c7b050af1@yandex.ru> Date: Wed, 21 Aug 2019 22:46:55 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <2a2fde9a596648a5a86e34d8862eabf2@V02-EXCH-003.resources.smpgroup.ru> Content-Type: text/plain; charset=koi8-r; format=flowed Content-Transfer-Encoding: 8bit Content-Language: ru Subject: Re: [Sysadmins] =?utf-8?b?0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMIHBocDUg?= =?utf-8?b?0LLQvNC10YHRgtC+IHBocDc=?= X-BeenThere: sysadmins@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux sysadmins' discussion List-Id: ALT Linux sysadmins' discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Aug 2019 19:47:02 -0000 Archived-At: List-Archive: 21.08.2019 12:21, Гусев Владислав Юрьевич пишет: > День добрый! > > После установки php7 как версии по умолчанию (через /etc/alternatives) отвалился старый сайт, который не работает с php старше пятёрки. > Подскажите, пожалуйста, есть ли возможность в апаче2 для отдельного сайта указать использование php5 (он тоже установлен)? > > Спасибо. > Был аналогичный случай, когда на хосте у заказчика только php7, и надо было запустить старый сайт на php5. Проблема была в использовании старых функций mysql_* для работы базой (эти функции из 7-ки выпилены в пользу mysqli_* Для совместимости использовался костыль - переопределение отсутствующих функций mysql через mysqli (можно доработать под свои нужды) ================================================== define('DB_SERVER', 'localhost'); define('DB_SERVER_USERNAME', 'root'); define('DB_SERVER_PASSWORD', 'pass'); define('DB_DATABASE', 'test_db'); if (function_exists("mysql_query")) {     // до версии 5.6 включительно - работаем по-старому - mysql     $link = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD) or die('No connect');     $base = mysql_select_db(DB_DATABASE);     mysql_query("SET NAMES utf8"); } else {     // иначе - используем mysqli     class DB     {         static $link;         static $count = 0;         public static function connect()         { // Синглтончик-с в целях экономии             if (empty(self::$link)) {                 self::$link = @mysqli_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE)                     or die('No connect');                 mysqli_set_charset(self::$link, 'utf8');             }         }     }     // Запускаем не отходя от кассы     DB::connect();     // ------------- переопределяем функции mysql_ -------------------------------------     function mysql_query($sql)     {         $result = mysqli_query(db::$link, $sql)             or die(mysqli_error(db::$link));         return $result;     }     function mysql_real_escape_string($escapestr)     {         return mysqli_real_escape_string(db::$link, $escapestr);     }     function mysql_insert_id()     {         return mysqli_insert_id(db::$link);     }     function mysql_num_rows($result)     {         return mysqli_num_rows($result);     }     function mysql_error()     {         return mysqli_error(db::$link);     }     function mysql_fetch_array($result, $resulttype = MYSQLI_BOTH)     {         return mysqli_fetch_array($result, $resulttype);     }     function mysql_result($result, $number, $field = 0)     {         mysqli_data_seek($result, $number);         $row = mysqli_fetch_array($result);         return $row[$field];     }     function mysql_free_result($result)     {         return mysqli_free_result($result);     }     function mysql_data_seek($result, $offset)     {         return mysqli_data_seek($result, $offset);     } } ================================================== -- С уважением, Александр Ерещенко.