作为Windows开发人员,我目前正在使用LAMP进行自己的项目。我了解我需要了解的有关PHP和MySQL的知识,但是Linux看起来很庞大,并且不清楚从哪里开始以及给我的目标已经足够。
我的目标是掌握一般概念,能够将项目部署到托管服务提供商,并能够监视站点的性能以发现问题,负载问题等。
我知道,最好的解决方案是让Linux管理员执行此操作,但是在我可以执行此操作之前,我需要自己执行此操作。

告诉我如何!如果人们用学习的方式扩展他们对所学内容的回答,那将是很棒的(我应该买一本特定的书,还是有一个不错的在线教程或...?)。

最佳答案

您的问题中有80%是权限。 Windows对它们的处理方式有所不同。如果您以root身份(或使用类似root的privs)登录,则可以绕过权限。 Apache不能也不会。

  • 了解如何正确设置文件和目录的所有权。任何Unix书籍都将涵盖此内容:一定要真正理解它-Windows安全性的拼写没有不同-这是安全性的不同模型。

  • 在其余的问题中,80%将是PATH问题。 PHP没有Java和Python那样的PATH问题,但是它们都使用PATH设置来查找组件和库。您会定期发现这些错误。 Windows有一个PATH,但它也有一个注册表,使事情变得 super 容易或 super secret 。 Unix没有任何 secret 。
  • 了解PHP和MySQL使用什么环境变量。确保您知道在哪里以及如何设置它们。 Apache在自己的特殊环境中运行,并且具有通过mod_php提供运行时环境设置的命令。编写简短的echo $PATH shell脚本以揭示正在发生的事情。

  • 在剩下的问题中,有80%与数据库有关。整理完数据库权限之后,您仍然必须保持连接,并且“命名管道”与“本地主机”之类的东西在晦涩,令人困惑的方式上是错误的。 MySQL非常宽容,但是您会在这里犯一些错误。
  • 尝试每个备用连接,了解它们的工作方式。不要选择一个,因为它类似于Windows,或者“更简单”。实际锻炼每一个人。如何将用户名和密码从Web应用程序传递到数据库服务器也很重要。 Apache以“nobody”的身份运行-您不想让他们默认访问任何内容。您的应用应有意连接数据库,而不使用默认值。

  • 在剩下的问题中,80%将是Apache配置。 Apache真的很简单,但是有上百万种选择。有四种方法可以完成所有操作,并且您将始终尝试两种根本不起作用的方法,然后解决第三个可能会令人讨厌的问题。第四,简单得多,您将永远不会想到。
  • 阅读很多有关Apache配置的信息。 httpd.apache.org网站上有很多信息。力求简单。复制现有示例并使用它们。不要根据IIS经验或Windows桌面经验来提出要求或所需的实现。复制有效的内容。

  • 在剩下的问题中,80%将是文件系统的应用程序使用。如果您尝试打开,读取或写入本地文件,您会发现(a)您尝试使用的目录上的权限不正确[参见上文],以及(b)Unix文件路径不同。差别不大,但相差无几,以至于某些东西会以晦涩的方式破裂。
  • Unix/Linux上的每本编程书籍都涵盖了这一点。它与Windows并没有太大区别,只是有足够的差异让您第一次使用。编写类似于“hello world”的PHP页面,以实现最简单的上载或下载版本,以确保您已准备好所有内容。然后修复您的完整应用程序以正确执行。

  • 在剩下的问题中,80%将是子流程的创建。 Windows的操作与此不同。 Unix中最重要的事情之一就是要记住子进程是您的 child ,您实际上必须等待其完成才能清理OS。如果您将子进程视为并行的“发射后遗忘”,那么您将拥有僵尸进程并被迫进行定期重启。
  • 编写非常简单的PHP页面来加料子流程管理。黄金法则是管理 child 并照顾他们。然后修复您的完整应用程序以正确执行。

  • 剩下的问题将是微不足道的应用程序逻辑,但是由于平台的差异,在跟踪PHP应用程序中的错误之前,您将归咎于Unix。
  • unit testslogging摆平,以便可以有效地进行调试。
  • 关于linux - 为了使用LAMP部署网站,我应该学习多少Linux?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/295861/

    10-12 00:43
    查看更多