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.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.1 To: sysadmins@lists.altlinux.org References: <2a2fde9a596648a5a86e34d8862eabf2@V02-EXCH-003.resources.smpgroup.ru> <47a2fc2f-bf39-fe80-6c55-886c7b050af1@yandex.ru> From: Anton Gorlov Message-ID: <0e311aa4-0d76-4dfd-6d04-501025f736d1@altlinux.ru> Date: Wed, 21 Aug 2019 22:49:35 +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: <47a2fc2f-bf39-fe80-6c55-886c7b050af1@yandex.ru> Content-Type: text/plain; charset=koi8-r; format=flowed Content-Language: ru Content-Transfer-Encoding: 8bit X-Authenticated-As: stalker@locum.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:50:22 -0000 Archived-At: List-Archive: https://github.com/dshafik/php7-mysql-shim 21.08.2019 22:46, Alexander Yereschenko пишет: > 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); >     } > } > > ================================================== >