如何使用 PHP 运行 SSH 到我的 Web 服务器?

如何使用 PHP 运行 SSH 到我的 Web 服务器?

我正在使用 mysqldump 备份我的数据库,正如我在这里读到的:http://www.tizag.com/mysqlTutorial/mysqlbackup.php

它给了我一些命令(我认为是Linux):

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

但它没有解释我如何使用该命令,也没有解释我如何将其发送到数据库以便备份。它说我需要运行 SSH 连接到你的 Web 服务器。这是什么意思?我该怎么做?

编辑: 我这样做的主要原因是,我可以使用 cronjob 每周自动备份数据库。使用 PhpmyADmin 或任何需要手动访问的工具来备份数据库并不是我想要的解决方案。

答案1

[编辑]根据 OP 的澄清,您可以按照以下步骤直接在 cron 作业中输入命令:

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

请注意,-p 和 PASSWORD 或 -u 和 USER 之间没有空格 - 用正确的数据库用户名和密码替换 USER 和 PASSWORD。另外,将 DatabaseName 的名称更改为您的数据库名称。

旧答案:
如果您不熟悉 SSH,我建议您不要使用 shell 命令,因为一个小错误可能会造成大问题。而是使用基于 PHP 的普通 MySQL 管理实用程序,例如:

1)PHPMyAdmin
2)管理员

此外,共享主机服务器通常不提供 SSH 访问权限。

答案2

您可以使用 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

答案3

您可以通过 phpseclib 使用 ssh 连接到您的服务器:

http://phpseclib.sourceforge.net/

答案4

您需要通过 SSH 访问您的服务器。它实际上与 PHP 无关,它是服务器上运行的一项独立服务。

如果您使用的是共享主机,则可能没有 SSH 访问权限。根据维护您服务器的人员,您需要请求他们提供访问权限或寻找其他备用选项。

相关内容