作为Windows开发人员,我目前正在使用LAMP进行自己的项目。我了解我需要了解的有关PHP和MySQL的知识,但是Linux看起来很庞大,并且不清楚从哪里开始以及给我的目标已经足够。
我的目标是掌握一般概念,能够将项目部署到托管服务提供商,并能够监视站点的性能以发现问题,负载问题等。
我知道,最好的解决方案是让Linux管理员执行此操作,但是在我可以执行此操作之前,我需要自己执行此操作。
告诉我如何!如果人们用学习的方式扩展他们对所学内容的回答,那将是很棒的(我应该买一本特定的书,还是有一个不错的在线教程或...?)。
最佳答案
您的问题中有80%是权限。 Windows对它们的处理方式有所不同。如果您以root身份(或使用类似root的privs)登录,则可以绕过权限。 Apache不能也不会。
在其余的问题中,80%将是PATH问题。 PHP没有Java和Python那样的PATH问题,但是它们都使用PATH设置来查找组件和库。您会定期发现这些错误。 Windows有一个PATH,但它也有一个注册表,使事情变得 super 容易或 super secret 。 Unix没有任何 secret 。
mod_php
提供运行时环境设置的命令。编写简短的echo $PATH
shell脚本以揭示正在发生的事情。 在剩下的问题中,有80%与数据库有关。整理完数据库权限之后,您仍然必须保持连接,并且“命名管道”与“本地主机”之类的东西在晦涩,令人困惑的方式上是错误的。 MySQL非常宽容,但是您会在这里犯一些错误。
在剩下的问题中,80%将是Apache配置。 Apache真的很简单,但是有上百万种选择。有四种方法可以完成所有操作,并且您将始终尝试两种根本不起作用的方法,然后解决第三个可能会令人讨厌的问题。第四,简单得多,您将永远不会想到。
在剩下的问题中,80%将是文件系统的应用程序使用。如果您尝试打开,读取或写入本地文件,您会发现(a)您尝试使用的目录上的权限不正确[参见上文],以及(b)Unix文件路径不同。差别不大,但相差无几,以至于某些东西会以晦涩的方式破裂。
在剩下的问题中,80%将是子流程的创建。 Windows的操作与此不同。 Unix中最重要的事情之一就是要记住子进程是您的 child ,您实际上必须等待其完成才能清理OS。如果您将子进程视为并行的“发射后遗忘”,那么您将拥有僵尸进程并被迫进行定期重启。
剩下的问题将是微不足道的应用程序逻辑,但是由于平台的差异,在跟踪PHP应用程序中的错误之前,您将归咎于Unix。
关于linux - 为了使用LAMP部署网站,我应该学习多少Linux?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/295861/