Переход на php 7 ? Есть решение

Меняю на сервере версию php на седьмую, админка и сайт перестают работать. Ошибка базы данных.

Максимально идёт на php 5.6

Может какие-нибудь действия ещё нужно предпринять? Спасибо.


12 ответов

  • 1

    Включите режим отладки в Инсталлере и покажите текст сообщения об ошибке, которое вы видите при включении PHP 7.

    • +1
      Антон Антон 26 мая 2016 15:08 #

      Включаю php 7 и на странице админки вижу:

      <h2 id="Title">The server requested authentication method unknown to the client</h2>
      <h3>Error with code 2054 in '/home/c/craftbanru/webasyst/public_html/wa-system/database/waDbMysqliAdapter.class.php' around line 33:</h3>
         28	    {
         29	        $host = $settings['host'];
         30	        $port = isset($settings['port']) ? $settings['port'] : ini_get("mysqli.default_port");
         31	        $handler = @new mysqli($host, $settings['user'], $settings['password'], $settings['database'], $port);
         32	        if ($handler->connect_error) {
       >>33	            throw new waDbException($handler->connect_error, $handler->connect_errno);
         34	        }
         35	        
         36	        $charset = isset($settings['charset']) ? $settings['charset'] : 'utf8';
         37	        @$handler->set_charset($charset);
         38	        if (isset($settings['sql_mode'])) {
      
      <h2>Call stack</h2>
      #0 /home/c/craftbanru/webasyst/public_html/wa-system/database/waDbAdapter.class.php(30): waDbMysqliAdapter->connect(Array)
      #1 /home/c/craftbanru/webasyst/public_html/wa-system/database/waDbConnector.class.php(49): waDbAdapter->__construct(Array)
      #2 /home/c/craftbanru/webasyst/public_html/wa-system/database/waModel.class.php(75): waDbConnector::getConnection('default', false)
      #3 /home/c/craftbanru/webasyst/public_html/wa-system/config/waAppConfig.class.php(378): waModel->__construct()
      #4 /home/c/craftbanru/webasyst/public_html/wa-system/config/waAppConfig.class.php(285): waAppConfig->install()
      #5 /home/c/craftbanru/webasyst/public_html/wa-system/waSystem.class.php(94): waAppConfig->checkUpdates()
      #6 /home/c/craftbanru/webasyst/public_html/wa-system/waSystem.class.php(506): waSystem::getInstance('webasyst', Object(webasystConfig), true)
      #7 /home/c/craftbanru/webasyst/public_html/index.php(7): waSystem->dispatch()
      #8 {main}
      <h2>Request</h2>
      array (
      )
      <h2>Params</h2>

      array (

    • +1
      Антон Антон 26 мая 2016 15:11 #

      В логах вот, что:

      2016-05-26 12:06:10:
      <div style="width:99%; position:relative; text-align: left;">
      <h2 id='Title'>The server requested authentication method unknown to the client</h2>
      <div id="Context" style="display: block;">
      <h3>Error with code 2054 in '/
      home/c/craftbanru/webasyst/public_html/wa-system/database/waDbMysqliAdapter.class.php' around line 33:</h3>
      <pre>
      28 {
      29 $host = $settings['
      host'];
      30 $port = isset($settings['
      port']) ? $settings['port'] : ini_get("mysqli.default_port");
      31 $handler = @new mysqli($host, $settings['
      user'], $settings['password'], $settings['database'], $port);
      32 if ($handler->connect_error) {
      >>33 throw new waDbException($handler->connect_error, $handler->connect_errno);
      34 }
      35
      36 $charset = isset($settings['
      charset']) ? $settings['charset'] : 'utf8';
      37 @$handler->set_charset($charset);
      38 if (isset($settings['
      sql_mode'])) {
      </pre>
      </div>
      <div id="Trace">
      <h2>Call stack</h2>
      <pre>#0 /home/c/craftbanru/webasyst/public_html/wa-system/database/waDbAdapter.class.php(30): waDbMysqliAdapter->connect(Array)
      #1 /home/c/craftbanru/webasyst/public_html/wa-system/database/waDbConnector.class.php(49): waDbAdapter->__construct(Array)
      #2 /home/c/craftbanru/webasyst/public_html/wa-system/database/waModel.class.php(75): waDbConnector::getConnection('
      default', false)
      #3 /home/c/craftbanru/webasyst/public_html/wa-system/config/waAppConfig.class.php(378): waModel->__construct()
      #4 /home/c/craftbanru/webasyst/public_html/wa-system/config/waAppConfig.class.php(285): waAppConfig->install()
      #5 /home/c/craftbanru/webasyst/public_html/wa-system/waSystem.class.php(94): waAppConfig->checkUpdates()
      #6 /home/c/craftbanru/webasyst/public_html/wa-system/waSystem.class.php(506): waSystem::getInstance('
      webasyst', Object(webasystConfig), true)
      #7 /home/c/craftbanru/webasyst/public_html/index.php(7): waSystem->dispatch()
      #8 {main}
      </pre>
      </div>
      <div id="Request">
      <h2>Request</h2>
      <pre>array (
      )
      </pre>
      </div>
      </div>
      <div style="text-align: left;">
      <h2>Params</h2>
      <pre>array (
      )
      </pre>
      </div>
      2016-05-26 12:06:20:
      <div style="width:99%; position:relative; text-align: left;">
      <h2 id='Title'>The server requested authentication method unknown to the client</h2>
      <div id="Context" style="display: block;">
      <h3>Error with code 2054 in '/home/c/craftbanru/webasyst/public_html/wa-system/database/waDbMysqliAdapter.class.php' around line 33:</h3>
      <pre>
      28 {
      29 $host = $settings['
      host'];
      30 $port = isset($settings['
      port']) ? $settings['port'] : ini_get("mysqli.default_port");
      31 $handler = @new mysqli($host, $settings['
      user'], $settings['password'], $settings['database'], $port);
      32 if ($handler->connect_error) {
      >>33 throw new waDbException($handler->connect_error, $handler->connect_errno);
      34 }
      35
      36 $charset = isset($settings['
      charset']) ? $settings['charset'] : 'utf8';
      37 @$handler->set_charset($charset);
      38 if (isset($settings['
      sql_mode'])) {
      </pre>
      </div>
      <div id="Trace">
      <h2>Call stack</h2>
      <pre>#0 /home/c/craftbanru/webasyst/public_html/wa-system/database/waDbAdapter.class.php(30): waDbMysqliAdapter->connect(Array)
      #1 /home/c/craftbanru/webasyst/public_html/wa-system/database/waDbConnector.class.php(49): waDbAdapter->__construct(Array)
      #2 /home/c/craftbanru/webasyst/public_html/wa-system/database/waModel.class.php(75): waDbConnector::getConnection('
      default', false)
      #3 /home/c/craftbanru/webasyst/public_html/wa-system/config/waAppConfig.class.php(378): waModel->__construct()
      #4 /home/c/craftbanru/webasyst/public_html/wa-system/config/waAppConfig.class.php(285): waAppConfig->install()
      #5 /home/c/craftbanru/webasyst/public_html/wa-system/waSystem.class.php(94): waAppConfig->checkUpdates()
      #6 /home/c/craftbanru/webasyst/public_html/wa-system/waSystem.class.php(506): waSystem::getInstance('
      webasyst', Object(webasystConfig), true)
      #7 /home/c/craftbanru/webasyst/public_html/index.php(7): waSystem->dispatch()
      #8 {main}</pre>
      </div>
      <div id="Request">
      <h2>Request</
      h2>
      <pre>array (
      'action' =&gt; 'count',
      'background_process' =&gt; '1',
      '_' =&gt; '1464264381976',
      )</pre>
      </div>
      </
      div>
      <div style="text-align: left;">
      <h2>Params</h2>
      <pre>array (
      )
      </
      pre>

      </div>

    • +1
      Антон Антон 26 мая 2016 15:33 #

      Ещё раз попробовал, php.log:

      [26-May-2016 15:28:20 Europe/Moscow] PHP Notice: Undefined index: currency in /home/c/craftbanru/webasyst/public_html/wa-apps/shop/lib/classes/shopRounding.class.php on line 104

  • 1
    Антон 26 мая 2016 15:44 #

    На другом сайте, но на этом же хостинге там Wordpress, поменял на php7 и всё работает.

  • 1
    Игорь 27 мая 2016 12:24 #

    а какой шоп скрипт? версия? у меня на php7 даже нотисов нет .пока что

  • 1
    Антон 20 июня 2016 15:04 # Решение

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

  • 1
    Василий И 12 января 2020 21:18 #

    такая же проблема при смене  php с 5.3.29 на то что просят выше 5,6 все перестает работать, то что описано пробовал не помогает, в админки выдает... че делать то??,  при откате назад на php 5.3.29 все работает

    The server requested authentication method unknown to the client code 2054

    ## wa-system/database/waDbMysqliAdapter.class.php(33) #0 wa-system/database/waDbAdapter.class.php(30): waDbMysqliAdapter->connect(Array) #1 wa-system/database/waDbConnector.class.php(49): waDbAdapter->__construct(Array) #2 wa-system/database/waModel.class.php(75): waDbConnector::getConnection('default', false) #3 wa-system/auth/waAuth.class.php(68): waModel->__construct() #4 wa-system/waSystem.class.php(252): waAuth->__construct(Array) #5 wa-system/waSystem.class.php(427): waSystem->getFactory('auth', 'waAuth', Array) #6 wa-system/user/waAuthUser.class.php(45): waSystem->getAuth() #7 wa-system/user/waAuthUser.class.php(27): waAuthUser->init() #8 wa-system/waSystem.class.php(277): waAuthUser->__construct(NULL, Array) #9 wa-system/waSystem.class.php(318): waSystem::getCommonFactory('auth_user', 'waAuthUser', Array, NULL) #10 wa-system/waSystem.class.php(579): waSystem->getUser() #11 wa-system/waSystem.class.php(538): waSystem->dispatchBackend('webasyst/instal...') #12 index.php(7): waSystem->dispatch() #13 {main}
    GET
    array(  'module' => 'update', )
    Params
    array()

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите