Настроить php через ssh

ssh2_connect

ssh2_connect — Подключение к SSH-серверу

Описание

Устанавливает соединение с сервером по SSH.

Список параметров

Параметр methods может быть ассоциативным массивом, содержащим до четырёх записей, перечисленных ниже.

Замечание: Метод шифрования » none » и MAC

Возвращаемые значения

Возвращает ресурс в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример ssh2_connect()

Откроем соединение, принудительно используя такие настройки: 3des-cbc при отправке пакетов, шифр aes любой силы при получении пакетов, без сжатия в обоих направлениях и обмен ключами Group1.

$callbacks = array( ‘disconnect’ => ‘my_ssh_disconnect’ );

Смотрите также

User Contributed Notes 7 notes

Be careful when providing a specific hostkey order.

This took me some time that you could save 😉

The following is an example of what works. Also by removing the ‘hex’ section all together, results in libssl (https://libssh2.org/) falling back to discovering which is the strongest cipher to authenticate with.

if (! function_exists ( «ssh2_connect» )) die( «function ssh2_connect doesn’t exist» );

$callbacks = array( ‘disconnect’ => ‘my_ssh_disconnect’ );

Hi,
If you are having problems with running a ssh2 session and it waits forever during the execution of stream_get_contents, it might be because the remote system has run the command and is now sitting at a # prompt waiting for the next command. I had this issue on a HP MSA box, here is the code to get around the issue.

// Wait give the terminal a chance to accept and start processing the command, this is a slow storage device after all
sleep ( 2 );

?>

You can’t use ssh2_exec with this method (well at lease I couldn’t) because on executing the first command the stream gets blocked and then you can’t run the exit command, whereas a terminal seems to use one session.

Источник

Простые примеры использования ssh

Настроить php через ssh. Смотреть фото Настроить php через ssh. Смотреть картинку Настроить php через ssh. Картинка про Настроить php через ssh. Фото Настроить php через ssh

В статье собраны примеры использования ssh в работе web-разработчика. Каждая консольная команда, которая описана в статье, мне хотя бы один раз, но использовалась в реальных условиях. Возможно, я не правильный программист, но работать с консолью мне не нравится – это неудобно и сложно: нужно запоминать кучу разных команд, которые зачастую состоят всего из нескольких букв и ни каких ассоциаций не вызывают, поэтому и не запоминаются. Если у вас такие же чувства по отношению к консольным командам или вы только начинаете разбираться с ssh, то статья может быть полезна, в ней я собрал основные «фишки» для настройки и управления сервером, с которыми когда-либо сталкивался по работе.

Обновление операционной системы через ssh

Для обновления ОС, достаточно в консоле выполнить две команды:

Первая команда обновит данные о пакетах, а вторая выполнит обновление.

Работа с Apache через ssh

Команда для установки Apache:

Команда для запуска:

Команда для остановки:

Команда для перезапуска:

Включение модуля mod_rewrite:

Работа с PHP через ssh

Чтобы установить php на сервер можно выполнить команду:

Выполнить php скрипт:

Работа с MySql через ssh

Установка MySql на сервер:

Создать пароль для пользователя root:

Через консоль можно выполнять sql-запросы, только сначала нужно авторизоваться в Mysql:

Создание базы данных:

Создание пользователя для базы данных с локальными правами:

Создание пользователя с возможностью удаленного подключения:

Работа с планировщиком зада Cron через ssh

Установка Cron на сервер:

Для создания задачи, нужно отредактировать список задач:

Пример задачи на выполнение php-скрипта каждые 30 минут:

Для просмотра списка задач:

Работа с процессами через ssh

Для получения основных сведений о процессах, запущенных текущем пользователем:

Для получения основных сведений о процессах для всех пользователей:

Базовая информация о процессах для текущего пользователя:

Поиск процесса по куску имени:

Управление SFTP-пользователями через ssh

Создание нового пользователя SFTP:

Удаление пользователя SFTP:

Создание нового пользователя SFTP с правами root`а:

Создание «домашней» папки для пользователя:

Работа с архивами через ssh

Распаковать архив в текущую папку:

Распаковать архив в конкретную папку:

Настройка прав на файлы и папки через ssh

Задать права на файл:

Подробней про права на файлы и папки можно почитать тут: википедия.

Установка и настройка Memcached через ssh

После установки нужно настроить конфиг:

После настройки конфига, нужно перезапустить Memcached:

Далее необходимо установить и настроить модули для php:

Работа с редактором vim

Для перехода в режим редактирования нужно нажать insert или i.
Выхода из режима редактирования — нажать ESC.
Сохранения изменений: выйти из режима редактирования и ввести команду :wq
Выхода без сохранения — ввести команду :q!

Место на жестком диске сервера

Узнать место на жестком диске: полный объем/занято/свободно:
В гигабайтах:

Назначение владельца на файлы и папки

Перед выполнением команды, необходимо войти в родительскую папку:

Чтобы задать владельца www-data для папки public_html и всех вложенных в нее подпапок:

Чтобы задать владельца www-data для всех файлов внутри папки public_html:

Создание пользователя базы данных и саму БД PostgreSQL

Вход в psql под пользователем postgres(это аналог root для PostgreSQL):

И теперь можно выполнить sql запросы для создания пользователя и самой базы данных:

Источник

Настройка отладки php-кода при помощи Xdebug

Настроить php через ssh. Смотреть фото Настроить php через ssh. Смотреть картинку Настроить php через ssh. Картинка про Настроить php через ssh. Фото Настроить php через ssh

Классические методы отладки на PHP — использование функций error_log, print_r и var_dump. Их проблема в том, что они не помогают отслеживать сам процесс работы кода. Однако с этой задачей справляется Xdebug — один из самых популярных инструментов среди PHP-разработчиков, которые хотят работать, а не страдать.

В этой статье будет рассмотрена отладка PHP с помощью связки Xdebug и VSCode. Если вы пользуетесь PHPStorm, то проблем тоже не будет — настройка выполняется даже проще и быстрее.

Возможности Xdebug

Xdebug — это расширение для PHP, которое позволяет использовать удаленный отладчик в IDE через брейк-пойнты. С его помощью вы можете отслеживать значения переменных. Как итог — ошибки в коде обнаруживаются быстрее, чем при использовании error_log, print_r и var_dump.

Еще одна полезная функция — трассировка стека. Она выводит подробный путь, который привел приложение к ошибке. Он содержит параметры, переданные в функцию. Xdebug также можно использовать как профайлер для поиска узких мест кода. Если добавить внешние инструменты, то получится визуализировать графики производительности. Например, можно использовать WebGrind — набор PHP-скриптов для удобного вывода статистики прямо в браузере.

Кроме того, с помощью Xdebug вы можете проследить, какая часть кода выполняется в процессе запроса. Это дает информацию о том, как хорошо код покрыт тестами.

Подключение Xdebug

Для работы Xdebug PHP должен быть в режиме CGI. Посмотрим на примере хостинга Timeweb, как его включить.

Подключаемся к серверу через SSH. Можно использовать консоль в панели управления Timeweb.

Переходим в папку cd-bin сайта:

Создаем символическую ссылку командой:

Остаемся в директории cgi-bin и копируем файл php.ini:

Теперь мы можем управлять параметрами PHP директивами в файле php.ini. Он находится в папке cgi-bin. Открываем его и вставляем в конце следующие строки:

Если указанный порт занят, укажите другой. Можно использовать стандартный для Xdebug — 9000. В качестве idekey я указал VSCODE. Если будете настраивать конфигурацию для PHPStorm, впишите его.

Настроить php через ssh. Смотреть фото Настроить php через ssh. Смотреть картинку Настроить php через ssh. Картинка про Настроить php через ssh. Фото Настроить php через ssh

Чтобы проверить, работает ли Xdebug, создадим в корне сайта файл Myfile.php со следующим содержимым:

Открываем файл в браузере и проверяем, что все параметры указаны верно.

Организация удаленного подключения

Чтобы выполнять PHP Debug на локальной машине, нужно настроить связь IDE и сервера через SSH-туннель.

На Linux все выполняется парой команд.

Приватный ключ сохраняется на локальной машине, а публичный добавляется на сервер. Подробнее об этом, а также о настройке SSH на Windows, вы можете узнать из этой статьи.

На Linux туннель создается командой:

На Windows туннель настраивается через утилиту PuTTY.

Сессия сохранится под тем именем, которое мы указали в разделе Session. В дальнейшем нужно будет просто запускать ее заново.

Настройка VSCode

Чтобы работать с Xdebug в VSCode, установим два расширения: Sync-Rsync и PHP Debug. Первое нужно для работы с удаленным сервером, второе — для отладки скриптов.

После установки расширений создаем на локальной машине пустую папку и открываем ее через VSCode: «Файл» — «Открыть папку».

Путь /home/user/.ssh/id_rsa — это место, где лежит файл с закрытой частью SSH-ключа.

После сохранения файла settings.json нажимаем в VSCode F1, выполняем команду Sync Remote to Local. В локальную папку, указанную в настройках, скопируются все файлы с сервера.

Настроить php через ssh. Смотреть фото Настроить php через ssh. Смотреть картинку Настроить php через ssh. Картинка про Настроить php через ssh. Фото Настроить php через ssh

На этом настройка IDE завершена. Можно приступать к тестированию кода.

Debug кода

Мы настроили среду, теперь разберемся, как пользоваться Xdebug.

Переходим в режим «Отладка» и проверяем, что выделен пункт Listen for XDebug. Нажимаем на зеленый треугольник или на клавишу F5.

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

Настроить php через ssh. Смотреть фото Настроить php через ssh. Смотреть картинку Настроить php через ssh. Картинка про Настроить php через ssh. Фото Настроить php через ssh

Профилирование с визуализацией результатов

Чтобы использовать Xdebug profiler на полную мощность, установим WebGrind. Это набор скриптов, который выводит статистику в браузере. С его помощью можно посмотреть список вызванных функций, количество вызовов, общее затраченное время на вызов и выполнение.

Затем нужно открыть файл config.php, который находится в распакованной папке webgrind-master. В нем отредактируем две строки:

После такой настройки можно выполнять на Xdebug профилирование. Открываем наш тестовый скрипт в браузере. Затем переходим по ссылке www.domain/webgrind-master. В выпадающем списке выбираем только что запущенный скрипт и нажимаем на кнопку Update.

Функции можно скрывать или раскрывать, чтобы посмотреть развернутую статистику. Инструмент также умеет отображать графы вызова функций — для этого используется режим Show Call Graph.

Вывод: когда использовать Xdebug?

Xdebug существенно упрощает отладку PHP-кода. Конечно, если ваш текущий инструментарий удовлетворяет все потребности в поиске багов, то устанавливать дополнительное расширение смысла нет. Но, как показывает практика, без Xdebug сложно провести правильное модульное тестирование или отладку через удаленные брейк-пойнты с возможностью пошаговой проверки кода.

Источник

Функции SSH2

Содержание

User Contributed Notes 8 notes

you will have an issue transferring any file using ssh2_scp_send unless you send a dummy file after your real file, or preferably issue an

ssh2_exec ($connection, ‘exit’);

I was transferring hundreds of thousands of files in my prototype across multiple servers, and noticed that each file had a mismatched md5 hash and bytelength.

after a bit of research i learnt that this was a bug, and added the code above as suggested at pecl.php.net in the bugs section.

hopefully this helps someone who is getting partial file transfer that could ruin your whole app.

I was building out the ssh2 extension (0.10) under OpenBSD 3.9 on sparc64 and I got this error when running configure:

(The error message above is misleading because the problem is not with libssh2.)

Getting strange «Unable to open ssh2.sftp://Resource id #3/example.txt» errors? This is a bug in PHP > 5.6.27. Use intval() as a workaround to make ssh2 work again:

Installing on HPUX 11.11 cookbook

Just follow the install instructions on the man page and solved the problems as they appear

-when executing phpize
Problems with aclocal, autom4ke and m4
Installed automake, autoconf and m4

To list directory contents:

(thanks to Sara for assisting)

Trying to compile this ssh PECL extension for Mac OS X (10.4.2)
with entropy.ch’s php5 distribution? Read on: PART 2:

Good luck. hope that saves you my headache! 🙂

(Continued in a PART 2 comment)

It turns out that it’s an Apache problem. Even though I was given an error message when starting it, it still worked perfectly from the CLI. So, I commented it out in the
INI file again, and am just loading it using extension_loaded(‘ssh2’) and dl(‘php_ssh2.dll’) from within the script.

Источник

Как подключиться к MySQL через SSH-туннель

По умолчанию сервер MySQL прослушивает только localhost, что означает, что к нему могут получить доступ только приложения, работающие на том же хосте.

Более безопасной альтернативой было бы создание SSH-туннеля от локальной системы к серверу. SSH-туннелирование — это метод создания зашифрованного SSH-соединения между клиентом и сервером, через которое могут ретранслироваться порты служб.

В этом руководстве мы объясним, как создать туннель SSH и подключиться к серверу MySQL с удаленных клиентов. Те же инструкции применимы и для MariaDB.

Подготовка

Создайте SSH-туннель в Linux и macOS

Клиент ssh предустановлен в большинстве систем на базе Linux и Unix.

Если вы используете Linux или macOS в качестве операционной системы, вы можете создать туннель SSH, используя следующую команду:

Используются следующие параметры:

После запуска команды вам будет предложено ввести пароль пользователя SSH. После его ввода вы войдете на сервер, и туннель SSH будет установлен. Рекомендуется настроить аутентификацию на основе ключей SSH и подключаться к серверу без ввода пароля.

Теперь вы можете указать клиенту MySQL на локальном компьютере адрес 127.0.0.1:3336 ввести учетные данные для входа в удаленную базу данных и получить доступ к серверу MySQL.

Например, чтобы подключиться к серверу MySQL с помощью клиента mysql из командной строки, вы должны ввести:

Где MYSQL_USER — это удаленный пользователь MySQL, имеющий права доступа к базе данных.

При появлении запроса введите пароль пользователя MySQL.

Чтобы завершить туннель SSH, введите CTRL+C в консоли, на которой работает клиент ssh.

Создайте туннель SSH в Windows

Выполните следующие шаги, чтобы создать SSH-туннель к серверу MySQL с помощью PuTTY:

Запустите Putty и введите IP-адрес сервера в поле Host name (or IP address) :

Настроить php через ssh. Смотреть фото Настроить php через ssh. Смотреть картинку Настроить php через ssh. Картинка про Настроить php через ssh. Фото Настроить php через ssh

Настроить php через ssh. Смотреть фото Настроить php через ssh. Смотреть картинку Настроить php через ssh. Картинка про Настроить php через ssh. Фото Настроить php через ssh

Вернитесь на страницу Session чтобы сохранить настройки, чтобы не вводить их снова.

Настроить php через ssh. Смотреть фото Настроить php через ssh. Смотреть картинку Настроить php через ssh. Картинка про Настроить php через ssh. Фото Настроить php через ssh

Настроить php через ssh. Смотреть фото Настроить php через ssh. Смотреть картинку Настроить php через ssh. Картинка про Настроить php через ssh. Фото Настроить php через ssh

Появится новое окно с запросом вашего имени пользователя и пароля. После ввода имени пользователя и пароля вы войдете на сервер и создадите туннель SSH.

Настройка аутентификации с открытым ключом позволит вам подключаться к серверу без ввода пароля.

Теперь вы можете подключиться к удаленной базе данных с помощью локального клиента MySQL.

Например, если вы используете HeidiSQL, введите 127.0.0.1 в поле Hostname / IP а имя пользователя и пароль MySQL в поля User и Password :

Настроить php через ssh. Смотреть фото Настроить php через ssh. Смотреть картинку Настроить php через ssh. Картинка про Настроить php через ssh. Фото Настроить php через ssh

Выводы

MySQL, самый популярный сервер баз данных с открытым исходным кодом, прослушивает входящие соединения только на localhost. Создание SSH-туннеля позволяет вам безопасно подключаться к удаленному серверу MySQL с вашего локального клиента.

Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *