本次搜索找到结果 34 条
作者ZachHolman本文为Coding用户协作翻译,转载请注明来源。如果你对本文的翻译有建议,欢迎提交PullRequest。让我们来聊聊部署无论你何时对自己的代码库做出改动,总会伴随着要破坏一些东西的风险。没有人喜欢宕机,没有人喜欢暴躁的用户,也没有人喜欢生气的经理,所以部署新代码到生产环境变成颇具压力的一个环节。你完全没必要对它有压力,我将在这里重复一遍又一遍这句话:你的部署应该尽可能单调、直接、毫无压力。部署新功能到生产环境中应该像在HackerNews开始一场关于用spaces还是tabs的口水战一样简单。它应该足够简单到让新员工理解,它应该为防止错误而生,它应该在第一个最终用户看到新代码前被很好地测...
一直有对博客进行改版的想法。从2013年最开始搭建时候使用的Wordpress博客到现在的hexo静态博客,中间也有过自行开发的版本,但没有使用多久。之前自行开发的版本是使用CodeIgniter框架,力求做的简单。可能是受wordpress影响太深吧,现在想想当初开发的“简单”的版本也还是太过于复杂了,很多功能都是可以抛弃不要的。自己设计的主题也不再符合现在“极简”的审美观念。主要说下现在吧。几个月前从wordpress迁移到hexo,并且不得不丢弃了所有的评论数据改为使用Disqus。博客使用NexT主题,并把所有内容生成静态文件。刚开始是部署在自己服务器上,后来改为同时部署到CodingPages和阿里云虚...
2003年4月7日,马云,在杭州,成立了一个神秘的组织。他叫来十位员工,要他们签了一份协议,这份协议要求他们立刻离开阿里巴巴,去做一个神秘的项目。这个项目要求绝对保密,老马戏称“连说梦话被老婆听到都不行,谁要是透漏出去,我将追杀到天涯海角”。这份协议是英文版的,匆忙之间,大多数人根本来不及看懂,但出于对老马的信任,都卷起铺盖离开了阿里巴巴。他们去了一个神秘的据点——湖畔花园小区的一套未装修的房子里,房子的主人是马云。这伙人刚进去的时候,马云给他们布置了一个任务,就是在最短的时间内做出一个个人对个人(C2C)的商品交易的网站。现在出一个问题考考读者,看你适不适合做淘宝的创业团队。亲,要是让你来做,你怎么做?在说出这...
这两天在做公司的PC站时因为需要使用angular的$http服务存取数据,而且接口又在另一个域名下面,不得不研究下跨域的问题.以下把这两天遇到的一些问题总结下.(都是我自己遇到的一些问题,所以可能不太全面)Access-Control-Allow-Origin的问题跨域遇到的第一个问题就是Access-Control-Allow-Origin的错误,Chrome报错Responsetopreflightrequestdoesn'tpassaccesscontrolcheck:No'Access-Control-Allow-Origin'headerispresentonthereques...
现在,WebApp日益重视用户的交互体验,了解性能优化的方式则可以有效提高用户体验。阅读和实践下面的性能优化技巧,可以帮你改善应用的流畅度、渲染时间和其他方面的性能表现。概述对WebApp进行性能优化是一份冗杂沉重的工作,这不仅是因为构建一个WebApp需要前后端协作,而且需要多方面的技术栈:数据库、后端、前端,需要运行在多种平台:iOS,安卓,Chrome,Firefox,Edge。这太复杂了!不过,还是有一些历经实践的通用方式可以用来优化WebApp的性能。在接下来的小节中,我们将逐步介绍相关的细节。一份来自Bing的研究表明,页面加载时间每增加10ms,每年就会减少$250k的收入。————RobTrace...
昨天因为服务器到期把网站迁移到另一台服务器,使用的LNMP架构,网站各部分迁移完成后发现了一个蛋疼的问题:很多网页打开都提示”Noinputfilespecified”,甚至直接404,而且时好时坏。去网上搜了下资料,大概意思如下:任何对.php文件的请求,都简单地交给php-cgi去处理,但没有验证该php文件是否存在。PHP文件不存在,没办法返回普通的404错误,它返回一个404,并带上一句”Noinputfilespecified”另外,还可能跟路径或者权限有关系,或者SCRIPT_FILENAME变量没有被正确的设置(这在nginx是最常见的原因)。因为Nginx的PATHINFO设置是直接复制的之前服务...
1、清空存在的策略当你开始创建新的策略,你可能想清除所有的默认策略,和存在的策略,可以这么做:iptables-F或者iptables–flush2、设置默认策略默认链策略是ACCEPT,改变所有的链策略为DROP:iptables-PINPUTDROPiptables-PFORWARDDROPiptables-POUTPUTDROP3、阻止一个指定的ipBLOCK_THIS_IP=“x.x.x.x"iptables-AINPUT-s”$BLOCK_THIS_IP“-jDROPiptables-AINPUT-ieth0-s"$BLOCK_THIS_IP"-jDROPiptables-AINPUT-ieth0-pt...
到目前为止已经让Worker运行了,我们需要创建并添加任务。这一节主要了解什么是任务(Job),以及如何使用任务。简单的说,任务就是传递给Worker要执行的内容。我们需要把Job依次添加到Queue来执行。要把任务添加到队列,程序必须要包含php-resque库以及Redis。使用require_once'/path/to/php-resque/lib/Resque.php';包含php-resque的库文件,它会自动连接到Redis服务器,如果你的Redis服务器不是默认的localhost:6379,你需要使用Resque::setBackent('192.168.1.56:3680...
注意,这篇教程仅适用于Linux和OSX的系统,Windows并不适用。理解Worker的本质技术上讲一个Worker就是一个不断运行的PHP进程,并且不断监视新的任务并运行。一个简单的Worker的代码如下:while(true){$jobs=pullData();//从队列中拉取任务foreach($jobsas$class=>$args){//循环每个找到的任务$job=new$class();$job->perform($args);//执行任务}sleep(300);//等待5分钟后再次尝试拉取任务}以上这些代码的具体实现都可以交给php-resque。创建一个Worker,php-resq...
什么是后台任务?后台任务就是运行在程序流程以外的任务,毕竟PHP作为网站后台语言是需要在执行后立即返回数据的,而且一般服务器都有设置执行的超时时间,所以使用PHP去完成一些比较耗时的后台操作就有些问题了。通常在做一些比较耗时的操作时都会想到使用一个后台任务以及任务队列,在流程外执行这些操作,并立即返回给前台一个正在执行的提示。我们来看一个实例:一个社交网站,某用户修改了他的的个人资料中的所在地。一般的流程是这样的:PHP并不是多线程的,所以所有任务必须在前一个任务完成后再能开始,这就会致使用户等待较长的时间。上面例子中,大约3.7秒后用户才能获取到来自服务器的反馈,用户体验较差。需要注意的是在整个流程中最重要的仅...