Назад | Перейти на главную страницу

Как мне запустить SSH на мой веб-сервер с помощью PHP?

Я создаю резервную копию своей базы данных с помощью mysqldump, пока читаю здесь: http://www.tizag.com/mysqlTutorial/mysqlbackup.php

Он дает мне какую-то команду (я думаю, Linux):

mysqldump --tab=/path/to/some/dir --opt db_name

Но он не объясняет, что я делаю с этой командой или как я отправляю ее в базу данных для резервного копирования. Он говорит, что мне нужно запустите SSH на свой веб-сервер. Что это значит и как я могу это сделать?

РЕДАКТИРОВАТЬ: Основная причина, по которой я это делаю, заключается в том, что я могу автоматически резервировать БД каждую неделю с помощью cronjob. Использование PhpmyADmin или любого инструмента, к которому мне нужно получить доступ вручную для резервного копирования БД, не является решением, которое я ищу.

вы можете подключиться к своему серверу с помощью ssh через phpseclib:

http://phpseclib.sourceforge.net/

Вы можете запускать подобные команды с помощью PHP-функции passthru ():

<?php
passthru("mysqldump --tab=/path/to/some/dir --opt db_name");
?>

Функции exec и system тоже будут работать.

http://php.net/manual/en/function.passthru.php

http://www.php.net/manual/en/function.exec.php

http://www.php.net/manual/en/function.system.php

[РЕДАКТИРОВАТЬ] После разъяснения OP вот что вы можете сделать, чтобы напрямую ввести команду в задание cron:

 /usr/local/mysql/bin/mysqldump -uUSER -pPASSWORD --opt DatabaseName > /path/to/directory/filename.sql 

Обратите внимание, что между -p и PASSWORD или -u и USER нет пробела - замените USER и PASSWORD правильными именем пользователя и паролем базы данных. Также измените имя DatabaseName на имя вашей базы данных.

Старый ответ:
Если вам не нравится SSH, я бы посоветовал вам НЕ использовать команды оболочки, потому что небольшая ошибка может создать большие проблемы. Вместо этого используйте обычные утилиты администрирования MySQL на основе PHP, например:

1) PHPMyAdmin
2) Администратор

Кроме того, SSH-доступ обычно не предоставляется на серверах общего хостинга.

Предполагается, что ваш сервер mysql является разновидностью Unix (Linux, BSD и т. Д.). Вам необходимо установить ssh-сервер, после чего вы сможете получить доступ к системе с помощью putty или любого ssh-клиента. Если он работает под управлением ubuntu, вам необходимо установить openssh-server. Обычно так:

sudo apt-get install openssh-server

Если у вас не получается сделать это легко, я предлагаю попросить кого-нибудь с некоторыми навыками системного администрирования настроить его для вас.

Вам нужен SSH-доступ к вашему серверу. Это не совсем связано с PHP, это отдельная служба, работающая на сервере.

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

Как именно размещена ваша база данных, запускаете ли вы ее на машине, к которой у вас есть доступ, или вы платите / используете бесплатную услугу?

Вы запускаете команду mysqldump в сеансе SSH. Вы можете сказать, что это немного похоже на старые времена DOS, когда вы вводили серию команд, чтобы выполнить работу. Это не имеет ничего общего с PHP или MySQL.

Где размещен ваш сайт? Предоставляют ли они доступ по SSH?

Если это так, и вы разрабатываете под Windows, вы можете использовать программу Putty для «запуска SSH на ваш веб-сервер». То есть, если SSH-доступ к вашему веб-серверу доступен.

Если нет, может быть, они предоставляют альтернативный способ получить резервную копию? вроде через phpmyadmin?