我需要部署许多相同LAMP(或LEMP)应用程序的实例: 每个实例都可以从一个子域访问,前端负载均衡/代理 每个实例必须有它自己的db数据和文件数据。 每个实例都可能被监控 内存限制/ CPU可能会设置每个应用程序实例 容易自动部署新的webapp实例 环境对于testing和开发可能是容易重现的。 申请要求: PHPFPM进程( Nginx , MariaDB , PHPFPM ) 二进制文件( composer , bower ,…) 其他系统特定的库和configuration 在阅读Docker文档和许多howtos后,我看到了不同的解决scheme来dockerize这个Web应用程序: 解决scheme1:使用一体化容器 所有的堆栈都在一个容器中: webapp源文件,EMP守护进程,二进制文件,… 为mysql和webapp数据文件装载卷 例子 : Tutum为Wordpress应用程序提供了一个全function的容器: https : //github.com/tutumcloud/tutum-docker-wordpress Phusion为Docker提供了优化的基础镜像,精简了文档( https://github.com/phusion/baseimage-docker#docker_single_process ): Docker运行良好,容器中有多个进程。 事实上,没有技术上的原因,你应该限制自己的一个过程 优点 (恕我直言): 似乎很容易自动部署,监视,摧毁…。 易于使用prod,testing和开发环境。 缺点 (恕我直言): 单片 很难衡量 不使用Docker的所有实力 解决scheme2:使用每个webapp实例的容器堆栈 对于要部署的每个Web应用程序,都会部署一个容器堆栈: 每个进程一个容器: Nginx , Mysql , PHP-FPM […]
我最近想了很多关于可用的不同主机types。 我们可以从欧洲的一个EC2实例(我们位于瑞典)得到相当不错的延迟(平均),成本相当不错。 显然,扩大和缩小实例的可能性对我们来说是惊人的,现在处于一个非常广阔的阶段。 从逻辑上讲,我也相信亚马逊可能比市场上的大多数托pipe公司提供更好的可用性和稳定性。 当我们想知道任何事情时,它可能也会超过拨打电话号码的需要,并迫使我们自己去谷歌的东西:) 那么,如果我们要在EC2上运行我们的Web服务器,我们应该关注什么呢? 优缺点都有什么? 为了澄清,我们将运行一个非常标准的LAMPconfiguration,可能添加了memcached。 谢谢
有人能告诉我LAMP Stack是什么意思吗? 我在工作岗位上看过这个参考资料,但没有完全理解它的含义。 我觉得在我的开发中,我使用LAMP的情况相当普遍,但是当我听到“stack”的时候,我觉得我没有使用LAMP环境。 我知道LAMP是什么意思,只是想知道术语“堆栈”的意思。
在黑暗时代,我通常开发的LAMP Web应用程序是在我的机器上进行本地testing。 PHP(在我的情况下),数据库和Web服务器都是本地安装的。 服务器是使用标准安装的Apache和MySQL进行安装的,而且我有多个虚拟主机用于Web应用程序的不同部分。 当我对我在本地机器上得到的结果感到满意时,我将login到服务器,然后在暂存环境中进行git pull 。 假设服务器上的所有东西都和我的机器一样,我也会为生产做同样的事情。 新的开始… 所以现在我从头开始一个全新的Web应用程序,我想要“正确的方式”。 我已经读了Docker,Vagrant和Puppet(还有厨师,尽pipe我个人更喜欢Puppet的依赖系统而不是Chef的迭代过程)。 尽pipe我所做的所有研究,似乎仍然有几个问题,我似乎无法find答案: 是否应为Web服务器(如Apache),数据库服务器(如MySQL)和Web应用程序的每个部分分别安装Docker容器? 当我谈论Web应用程序的某些部分时,我指的是mysite.com , controlpanel.mysite.com等等。这些“部分”将共享相同的数据库。 由于Docker似乎为Web和数据库服务器提供了现成的容器,所以至less应该将这些东西放在单独的容器中。 我的networking应用程序的不同部分应该在不同的容器中吗? Docker容器似乎被devise成可replace的,而不是我必须更新里面的软件。 他们写的数据怎么样,我不想丢失? 数据库服务器将pipe理与我的数据库内容相关的文件(我将要备份)。 Web服务器将创build日志,我的Web应用程序将pipe理各种文件和caching等。所有这些文件都需要写在应用程序的容器之外(因为我可能在更新时replace它们),所以它们在哪里? 直接进入主机的文件系统? 或成为一个单独的“docker卷”? 如果他们进入Docker卷,我应该使用一个单独的卷为数据库,Web服务器,应用程序等? 我是否仍然可以像现在一样使用本地机器上的SFTP轻松访问内容? 我不想在这里失去任何便利! 使用Puppet创build和pipe理开发服务器和生产服务器的Docker容器是不是一个好主意? 看来Puppet支持直接pipe理Docker容器,所以这似乎是从头开始轻松设置服务器或生产环境(使用Vagrant)的相当好的方法。 希望我已经提出了一些相关的问题; 为了开发和生产类似LAMP的networking应用程序,获得一些适当的“最佳实践”将是非常好的,只是似乎没有多less我find的!
无论好坏,我们已经将整个LAMP Web应用程序从专用机器迁移到云(Amazon EC2机器)。 目前为止,我们做cron的方式是不理想的。 我有一个亚马逊特定的问题,关于如何使用“亚马逊方式”最好地pipe理云中的cron作业。 问题 :我们有多个web服务器,需要运行crons来进行批量作业,比如创buildRSS feed,触发电子邮件,实际上有很多不同的事情。 但是cron作业只需要在一台机器上运行,因为它们经常写入数据库,所以如果在多台机器上运行,就会复制结果。 到目前为止,我们将其中一个networking服务器指定为“主networking服务器”,并且具有其他networking服务器所没有的一些“特殊”任务。 云计算的权衡是可靠的 – 我们不需要一个“主 – networking服务器”,因为这是一个单一的故障点。 我们希望它们都是相同的,并且能够升级和降级,而不用记住不把master-web服务器带出集群。 我们如何重新devise我们的应用程序,将Linux cron作业转换为没有单点故障的暂时性工作项? 我的想法到目前为止: 有一台机器专门只运行crons。 这样会更容易pipe理,但仍然是一个单一的失败点,并会浪费一些金钱有额外的实例。 有些工作可以想象从Linux cron移到MySQL Events,但是我并不是很喜欢这个想法,因为我不想将应用程序逻辑放到数据库层。 也许我们可以在所有的机器上运行所有的cron,但是改变我们的cron脚本,使它们都以一些实现locking机制的逻辑开始,所以只有一个服务器实际上采取行动,其他的只是跳过。 我不是这个想法的粉丝,因为这听起来可能是错误的,我宁愿使用亚马逊的最佳做法,而不是滚动我们自己的。 我想象的是一个工作安排在某个地方的情况,join队列,然后networking服务员可以成为一名工作人员,可以说“嗨,我会拿这个工作的”。 亚马逊简单的工作stream服务听起来正是这样的事情,但我目前不知道太多,所以任何细节将有所帮助。 对于像cron这样简单的东西来说,它似乎有点沉重? 这是正确的服务还是有更合适的亚马逊服务? 更新:由于提问我已经观看了YouTube上的亚马逊简单工作stream服务networking研讨会,并在34:40注意到( http://www.youtube.com/watch?v=lBUQiek8Jqk#t=34m40s ),我瞥见了一个将提及cron作业的幻灯片作为示例应用程序提供。 在他们的文档页面,“ 亚马逊SWF的AWS Flow Framework示例 ”中,亚马逊说他们有crons的示例代码: … > Cron作业在本示例中,长时间运行的工作stream会定期执行一个活动。 演示了将执行继续作为新执行的能力,以便执行可以在非常长的时间内运行。 … 我下载了适用于Java的AWS开发工具包( http://aws.amazon.com/sdkforjava/ ),并确定埋在一个荒谬的层文件夹中有一些Java代码( aws-java-sdk-1.3.6/samples/AwsFlowFramework/src/com/amazonaws/services/simpleworkflow/flow/examples/periodicworkflow )。 问题是,如果我说实话,这并不是真的有帮助,因为我不能用我的技能很容易地消化。 PHP SDK中缺less同样的示例,似乎没有一个教程能够通过这个过程。 所以基本上,我还在寻求build议或提示。
将PDF文档的一部分渲染为图像文件需要哪些库,扩展等? 我发现的大多数PHP PDF库都是以创buildPDF文档为中心的,但是有没有一种简单的方法将文档转换为适合网页使用的图像格式呢? 我们的环境是一个LAMP堆栈。
这两种方法为LAMP服务器提供的html,css和javascript文件提供了哪些优势。 有更好的select吗? 服务器使用Json向地图应用程序提供信息,因此大量的小文件。 另请参见selectgzip而不是压缩http压缩涉及到性能问题吗?
我已经安装了Ubuntu的灯pipe栈。 但curl没有启用,我也不能find在INI文件中列出的扩展名。 我手动添加,但它也没有工作。 那么我应该如何启用Curl?
我是新来的PHP和整个LAMP堆栈,但我已经设法启动并在我的Ubuntu 10.10系统上运行。 似乎一切似乎在浏览器中的错误重新发布的例外,我似乎无法正常工作(而我不能没有工作!)。 我已经阅读了许多文章和其他线程,这些文章和其他线程指出应该在/etc/php5/apache2/php.ini文件中应用以下值: display_errors = On display_startup_errors = On 我已经重新启动apache2,甚至重新启动我的电脑,但对于我的生活,我只是无法得到它的工作。 我甚至尝试过使用phpinfo()函数来报告这些设置是我设置的,所以我知道它正在拾取正确的configuration文件,但没有任何东西! 任何帮助将受到欢迎。
我需要用多个版本的PHP 5.x来testing我的PHP应用程序,例如PHP 5.0.0和PHP 5.2.8。 有没有一种方法可以configuration开发LAMP服务器,以便我可以快速testing多个版本的PHP5应用程序?