LINUX.ORG.RU

Function set_magic_quotes_runtime() is deprecated при переносе проекта на CodeIgniter с Ubuntu 15.10 на 16.04

 , ,


0

1

Зачпокался с древним проектом на CI. Хочу перетащить на новый VPS с `Ubuntu 16.04 LTS`, т.к. 15.10 уже не поддерживается. Сейчас проект бежит на `Ubunutu 15.10` - NginX+PHP-FPM.

На новом VPS c Ubuntu 16.04:

- Поставил PHP-FPM 5.5, чтобы было как на рабочем сервере. Версию PHP проверяю, создав файл phpinfo.php в корне вебпапки проекта:

  • PHP на production site: 5.5.12
  • PHP на новом сервере: 5.5.37

PHP-FPM ставил так:

add-apt-repository ppa:ondrej/php
apt-get update
apt-get install php5.5-fpm php5.5-mysql
vim /etc/php/5.5/fpm/php.ini, set `cgi.fix_pathinfo=0`   # все дефолтово, кроме этого
cat /etc/php/5.5/fpm/php.ini | grep cgi.fix_pathinf
systemctl restart php5.5-fpm

- Конфигурацию NginX взял с рабочего сервера, подправив только строку на:

    `fastcgi_pass unix:/var/run/php/php5.5-fpm.sock;`
вместо:
    `fastcgi_pass unix:/var/run/php/php-fpm.sock;`

Открываю браузером сайт на новом сервере и он не показывается. Включил Debug PHP in CI: добавил в файле `index.php` который в корне поставил перед system path:

error_reporting(E_ALL);

С этой ошибкой в душе не знаю, чего делать:

A PHP Error was encountered

Severity: 8192

Message: Function set_magic_quotes_runtime() is deprecated

Filename: codeigniter/CodeIgniter.php

Line Number: 60

Нашел саму строку в коде:

set_magic_quotes_runtime(0); // Kill magic quotes

UPD1

Да, еще вот эта ошибка самая неясная, так же на странице:

load->library('session'); $this->load->helper('html'); $this->load->helper('url'); $this->load->helper('form'); $this->load->helper('functions'); } function index(){ //$data['css'] = "";	//$data['js'] = "home.js";	$data['title'] = "Home";	/*$this->db->select('ad_order'); $this->db->select('url'); $this->db->select('image'); $query = $this->db->get('ads'); $ads1 = $query->result_array();	$data["ads"] = $ads1; $data["ads1"] = $ads1; $images1 = array(); $images2 = array(); $images3 = array(); $images4 = array(); $images5 = array(); $images6 = array(); foreach ($ads1 as $row) { $i = $row["ad_order"]; //echo $i; $values = array(); $values["url"] = $row["url"]; $values["image"] = $row["image"]; switch($i){ case 1: array_push($images1, $values); break; case 2: array_push($images2, $values); break; case 3: array_push($images3, $values); break; case 4: array_push($images4, $values); break; case 5: array_push($images5, $values); break; case 6: array_push($images6, $values); break; } } $data["ads1"] = $images1; $data["ads2"] = $images2; $data["ads3"] = $images3; $data["ads4"] = $images4; $data["ads5"] = $images5; $data["ads6"] = $images6; $this->db->order_by('specialty'); $this->db->limit(9); $data["specialties"] = $this->db->get("specialty"); $sql = "SELECT r.company_name, f.id, f.recruiter_id, f.feature_order FROM featured_recruiter f LEFT JOIN recruiter r ON f.recruiter_id=r.id ORDER BY feature_order"; $data["featured_employers"] = $this->db->query($sql); $sql = "SELECT j.id, j.title FROM job j ORDER BY j.id DESC LIMIT 10"; $data["featured_jobs"] = $this->db->query($sql); //GET RECORDS OF STATES AND SPECIALTIES FOR FILTERS $data['states_search'] = $this->db->get('states'); $this->db->order_by("specialty"); $data['specialties_search'] = $this->db->get('specialty'); //$this->load->view('header_home.php', $data); //$this->load->view('home.php', $data); //$this->load->view('footer_home.php', $data); $data["obj_flash"] = "index"; $data["fbutton"] = 1; */ include('commonload.php'); $this->load->view('bluewhite/header.php', $data); $this->load->view('bluewhite/home.php', $data); $this->load->view('bluewhite/sidebar.php', $data); $this->load->view('bluewhite/footer.php', $data); } }//END OF CLASS ?>

UPD2

И самая ржака - ровно год назад пытался сделать то же самое и тоже встрял, и даже тему такую же завел:

Некий косяк при развертовании сайта с бекапа на виртуальной машине

Проблема так и не решилась.

Просьба не предлагать вариант с переписать код, я не PHP-разработчик.

Просьба не предлагать вариант с переписать код, я не PHP-разработчик.

Ну нанять, кто сможет. Выхода простого серьёзно нет, у тебя дальше же ещё посыпятся другие ошибки. Без малейшего понимания ты что-то толкового не сделаешь.

Ну или не лезть в лукошко, и использовать дальше Ubuntu 14.04

fornlr ★★★★★ ()
Последнее исправление: fornlr (всего исправлений: 1)

Просьба не предлагать вариант с переписать код, я не PHP-разработчик.

А что ты еще хочешь услышать? Функция то депрекейтед. Либо править код, например через ini_set, либо даунгрейдить пхп.

gregz ()
Ответ на: комментарий от fornlr

Я верю, что проблема не в этом. Т.к. этa функция depreceted с PHP версии 5.3 и removed начиная с 7.0 в соответствии с: http://php.net/manual/en/function.set-magic-quotes-runtime.php

и тем не менее проект крутится на PHP 5.5, как описано в теме.

Т.е. deprecated - означает, что функция считается устаревшей, это не значит, что она не должна работать.

Вопрос в том, как и где подкрутить, чтобы ошибка пропала. Вероятно в конфигах php-fpm?

dopedopedope ()
Последнее исправление: dopedopedope (всего исправлений: 1)
Ответ на: комментарий от dopedopedope

тут отключаются магические кавычки (параметр 0, со-но), просто закомментируй и забудь, в новых версиях нет проблемы, депрекейтед тут сама фича а функция лишь управляет ею.

trashymichael ★★★ ()
Ответ на: комментарий от trashymichael

Отключил! Одной ошибкой меньше.

Осталась эта барматуха:


load->library('session'); $this->load->helper('html'); $this->load->helper('url'); $this->load->helper('form'); $this->load->helper('functions'); } function index(){ //$data['css'] = "";	//$data['js'] = "home.js";	$data['title'] = "Home";	/*$this->db->select('ad_order'); $this->db->select('url'); $this->db->select('image'); $query = $this->db->get('ads'); $ads1 = $query->result_array();	$data["ads"] = $ads1; $data["ads1"] = $ads1; $images1 = array(); $images2 = array(); $images3 = array(); $images4 = array(); $images5 = array(); $images6 = array(); foreach ($ads1 as $row) { $i = $row["ad_order"]; //echo $i; $values = array(); $values["url"] = $row["url"]; $values["image"] = $row["image"]; switch($i){ case 1: array_push($images1, $values); break; case 2: array_push($images2, $values); break; case 3: array_push($images3, $values); break; case 4: array_push($images4, $values); break; case 5: array_push($images5, $values); break; case 6: array_push($images6, $values); break; } } $data["ads1"] = $images1; $data["ads2"] = $images2; $data["ads3"] = $images3; $data["ads4"] = $images4; $data["ads5"] = $images5; $data["ads6"] = $images6; $this->db->order_by('specialty'); $this->db->limit(9); $data["specialties"] = $this->db->get("specialty"); $sql = "SELECT r.company_name, f.id, f.recruiter_id, f.feature_order FROM featured_recruiter f LEFT JOIN recruiter r ON f.recruiter_id=r.id ORDER BY feature_order"; $data["featured_employers"] = $this->db->query($sql); $sql = "SELECT j.id, j.title FROM job j ORDER BY j.id DESC LIMIT 10"; $data["featured_jobs"] = $this->db->query($sql); //GET RECORDS OF STATES AND SPECIALTIES FOR FILTERS $data['states_search'] = $this->db->get('states'); $this->db->order_by("specialty"); $data['specialties_search'] = $this->db->get('specialty'); //$this->load->view('header_home.php', $data); //$this->load->view('home.php', $data); //$this->load->view('footer_home.php', $data); $data["obj_flash"] = "index"; $data["fbutton"] = 1; */ include('commonload.php'); $this->load->view('bluewhite/header.php', $data); $this->load->view('bluewhite/home.php', $data); $this->load->view('bluewhite/sidebar.php', $data); $this->load->view('bluewhite/footer.php', $data); } }//END OF CLASS ?>

dopedopedope ()
Последнее исправление: dopedopedope (всего исправлений: 1)
Ответ на: комментарий от goingUp

Блин, даже не знаю как выразить глубину благодарности и удивления. Но это вот оно, то самое. Прямо вот оно и помогло. В этом весь косяк был. Стал сравнивать настройки php.ini вот в этом разница-то и была.

Спасибо огромное, Человек!!! :))

Вы только что подсказали, как решить проблему, которая висела год! :)

dopedopedope ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.