libssh2 Ошибка при перезапуске сервера -- PHP Startup: ssh2: Unable to initialize module

Рекомендую использовать другое решение: http://fkn.ktu10.com/?q=node/8390

Из журнала ошибок openserver.

 PHP Warning:  PHP Startup: ssh2: Unable to initialize module
Module compiled with module API=20121212
PHP    compiled with module API=20131226
These options need to match
 in Unknown on line 0

Ошибка The procedure entry point libssh2_scp_recv2 could not be located in the dynamic link library lebssh2.dll

Рекомендую использовать другое решение: http://fkn.ktu10.com/?q=node/8390

the procedure entry point libssh2_scp_recv2 could not located in the dynamic link library lebssh2.dll

В моей ситуации имеются:

Установка libssh на Windows

Рекомендую использовать другое решение: http://fkn.ktu10.com/?q=node/8390

Скачать расширения для php можно отсюда: http://windows.php.net/downloads/pecl/re...
(если ссылка не работает иил есть более новые версии -- ищите в гугл)

После добавления .dll расширения и правки php.ini, функция

phpinfo()

должна показывать что-то вроде:

Ошибка Call to undefined function ssh2_connect() -- решение

Рекомендую использовать другое решение: http://fkn.ktu10.com/?q=node/8390

Возможные причины:

  1. На веб-сервере не включена поддержка libssh -- установить можно так.

Данную функцию можно использовать для работы через SSH с помощью PHP. Хотя у меня установить её для тестирования на Windows не получилось.

Источники:

php Загрузка файлов через ssh по сети -- как организовать, библиотеки, решения

Какие есть варианты:

  1. Можно использовать нестандартное расширения libssh (что у меня не получилось)
  2. Использовать phpseclib реализацию непосредственно на PHP (значительно увеличит переносимость кода между северами): phpseclib.sourceforge.net/

php Получить элемент ассоциативного массива по порядковому номеру (числовому индексу) -- пример кода

Используйте стандартную функцию array_values() чтобы получить переиндексированный (числами) массив:

/**
 * Вернёт массив с заменой ассоциативных ключей (индексов) стандартными числовыми
 * Позволит обращаться к элементам ассоциативного массива по порядковому номеру
 * 
 * @param type $arr
 * @return type
 */
public static function numberIndex($arr)
{
	return array_values($arr);
}

javascript foreach Обход массива в цикле -- Пример кода

Предположим, что поле:

data.sites

содержит массив объектов, тогда его можно обойти:

data.sites.forEach(function(element, index, array) {
   console.log( index, element); 
});

Как видим, в функции-обработчике есть возможность доcтупа:

  • к каждому очередному индексу,
  • элементу по этому индексу
  • и самому массиву, который обходим.

Множественный выбор слект HTML форма -- почему не отправляется массив, а только одно значение в $_POST php multiple select

Чтобы на стороне сервера принять массив значений -- используйте имя с квадратными скобками, например:

 name="groups[]"

то есть атрибут name элемента ввода HTML формы должен выглядеть как-то так:

nginx Редирект (/rewrite) с корня на указанный адрес - скрипт

Перенаправление без редиректа

Чтобы переопределить маршрут, измените что-то вроде:

location = / {
    rewrite "^$" /public/router.php;
}

На подобное правило:

location / {
            rewrite ^ /public/router.php last;
}

Вместо

 /public/router.php

укажите нужный вам адрес. Это будет обычная замена маршрута.

Редирект

Редирект же можно сделать так, заменим что-то вроде:

nginx forbidden 403 Как исправить ошибку. Возные причины

Что делать:

  1. Убедитесь что у вас выставлены правильные права на исполняемые скрипты и директории.
  2. Если у вас есть переопределение корневого адреса, попробуйте переписать его так и снова загрузить страницу.
  3. Убедитесь, что правильно описаны индексные файлы конфигурации вирт. хоста, например если указано:
    index index.html;

    а на дале такого файла нет, а есть .php, то мы получим 403 ошибку

Pages

Subscribe to fkn+antitotal RSS