嗯,这是我的问题:我在一家网络开发机构工作(这是一个问题,但不是真正的问题,请继续阅读)。大多数时候,我在创建新网站项目时自己选择实时服务器。但是现在客户已经有了一个“服务器”(在一个便宜的主机上 10 GB!)并且“管理员”拒绝给我 ssh 访问它。但我需要通过 shell 访问服务器,因为将传输许多文件(需要能够上传和提取 tar),并且我需要通过命令行插入或创建 mysql 转储。他认为 FTP 和 phpmyadmin 应该就足够了……据我所知,该网络空间刚刚被命令托管该网站,因此没有安全关键应用程序在那里运行。
我怎样才能说服管理员给我 ssh 登录或告诉管理层我们需要自己的服务器?有类似经历的人吗?
这真的很烦人,因为这是一个非常小的项目,应该快速完成,现在必须为完成工作而奋斗......
这会让管理员生气而你高兴:): php shell
如果客户不希望给您 SSH 访问权限,您应该接受。也许他们有正当的顾虑或要求。您的原始合同或协议是否提到您希望通过 SSH 访问主机的事实?
你没有提到任何我能看到的真正需要你有 SSH 访问权限的东西。我知道您可能更愿意通过远程主机上的 SSH 进行操作,但还有其他替代方法。作为 Web 开发人员应该努力准备适应您的客户要求。或者至少你应该在接受这份工作之前就你需要的访问权限达成一致。
在您的示例中,您提到解压缩存档。您可以在本地计算机上执行此操作并传输未压缩的文件。查找允许您传输整个目录结构的 ftp 客户端。有许多。
您提到您需要对 mysql 数据库进行更改。只需快速编写一个脚本,即可为您执行更改。
您需要与您的客户确切地沟通您无法通过文件传输和 phpadmin 执行的操作,并让他们执行此操作。如果需要,请向他们收取额外费用。如果您一开始就明确需要 SSH 访问权限,但他们没有提供,那么您可能会为额外的时间向他们收取更多费用。
只需继续向他们发送详细的账单,其中包含您必须花费在解决他们愚蠢要求上的所有额外时间。如果管理层不支持你,那就找另一份工作。
你的工作是在客户提供的框架内按照客户的要求去做。不喜欢?获得另一个客户或换工作。
你说这是一个很小的项目,但你继续进行,好像你正在尝试传输千兆字节的数据。如果使用 FTP 传输文件需要更长的时间,那就这样吧。我猜我们谈论的可能是几分钟,而不是几周。至于使用 phpMyAdmin 导入 MySQL 转储,有什么困难?它实际上比使用命令行更容易。
在我看来,除了您个人的满意之外,您无缘无故地想要对系统进行绝对控制。你当然没有给出想要它的实际理由。
许多“廉价主机”甚至不提供 shell 访问,有些要求您为 SSH 支付额外费用。客户可能已经知道主机不提供 SSH,或者客户只是不想为此付费。
几年前,当我的公司尝试将 1and1 用于小型网站时,当我们尝试以最便宜的计划调试网站时,我们很快遇到了障碍。那个计划没有 SSH,所以我们不得不支付升级费用。但即便如此,该网站的性能还是如此不稳定,以至于我们不得不切换到另一家托管公司。
对我来说,听起来你在技术上可以在没有 shell 访问的情况下做你需要的一切。您可以解压您这边的文件并批量上传它们,而不是上传tarfile并提取另一侧的文件。PHPMyAdmin 确实允许您执行脚本和执行数据库转储。也许我错过了管理员未能抓住的同一点。如果是这样,那么也许您还没有完全阐明阻碍您完成工作的真正问题。
正如 Geoff Fritz 建议的那样,你总是可以用他们更容易理解的方式提出另一个请求:$$。如果缺少 shell 访问会显着降低您的速度,我建议您提前告诉他们您将需要多长时间来计费,因为不便。如果您将此作为固定成本合同进行,那么不幸的是,我认为您将不得不跑到该国并每隔几个小时尖叫一次,或者找到其他方法来说服客户您需要外壳使用权。
我和任何管理员一样喜欢 shell 访问,但客户总是最清楚。只需按您的时间计费,如果您因为没有 shell 访问会减慢您的速度而花费更多时间,请告诉他们。
你对它的具体要求是什么?在 Web 服务器上进行本地处理是否方便,或者是否存在通过网络清除数据的合法风险?您可以连接远程 mysql 客户端(在这种情况下,您可以尝试使用 SSL 选项),还是绑定到服务器的 localhost 或其他不可路由的接口?如果担心敏感数据,您可以设置一个简单的 PHP 上传页面并使用 HTTPS 进行上传。
没有更多细节,就没有什么可以建立对您有利的案例。
我可以看到这个问题的两面,但我不得不站在客户的一边。您可能不同意客户,您可能会觉得您的论点或方法在技术上优越,但他实际上是在为您的服务付费,他是老板,他可以告诉您如何访问他的服务器并可以限制您的访问到规定的方法。在遵守他的规定的同时,由您提供您已签约的服务。
如果我雇了一个水管工,我告诉他他必须在我家脱鞋,那么不管他喜不喜欢,这就是他必须做的事情。如果他在这个问题上与我争吵,那么我将解雇他并雇用其他人。