跳转至

工程实践与运维

Crontab使用完全指南

最近看了《Better PHP Development》一书,里面第6章专门讲了crontab使用指南,事无巨细,几乎涉及到crontab用法的方方面面。一直以为以为自己对crontab用法非常熟悉了,看完之后才发现有些地方之前确实不知道。现把书中重要内容记录到博客中,以便后续查阅。

Cron简介

cron是类Unix操作系统中基于时间的作业调度器,它会在未来某个时刻触发某些任务。这个名字源于希腊语“χρόνος”( chronos ),意思是时间。由于crontab命令是使用cron时候最常用的命令,所以我们通常会说crontab,其实也就是cron

如果我们查看/etc目录,我们可以看到cron.hourly, cron.daily, cron.weeklycron.monthly这样的目录,每个目录都对应于特定的执行频率。比如cron.hourly目录下面的脚本会按照每小时来执行。安排任务的一种方式是将脚本放在相对应的目录中。例如,为了每天运行db_backup.php,我们将它放在cron.daily中。若没有这个目录,我们需要手动创建cron.daily

SSH使用代理连接

使用ssh连接服务器,有时候我们需要使用代理来连接目标服务器。这时候有两个方法可以达到这个目的:

  1. 使用ssh的ProxyCommand选项
  2. 使用xshell代理

1. 配置ProxyCommand选项

ssh可以通过使用ProxyCommand设置代理

ssh root@192.168.33.10 -o "ProxyCommand=nc -X connect -x 127.0.0.1:10080 %h %p"
其中192.168.33.10是目的服务器ip,%h表示目标地址即192.168.33.10%p表示目标地址端口,默认22

23个开发工具加速网站性能

原文地址:23 Development Tools for Boosting Website Performance

When dealing with performance, it’s hard to remember all the tools that might help you out during development. For that purpose, we’ve compiled a list of 23 performance tools for your reference. Some you’ll have heard of, others probably not. Some have been covered in detail in our performance month, others are yet to be covered future articles; but all are very useful and should be part of your arsenal.

使用Robo自动生成Nginx虚拟主机配置

在开发过程中,我们有时候是基于一个框架的脚手架来开发。先clone下来项目,然后配置Nginx或Apache服务器里面的虚拟主机,映射到当前项目。这个虚拟主机的配置可以由程序自动生成。

流程如下:

  1. composer create-project tink/slim-skeleton:dev-master blog // 使用slim-skeleton创建blog项目
  2. cd blog // 切换到blog目录
  3. ngto park // 执行命令,配置虚拟主机。blog.local域名自动配置到当前blog项目。

使用Consul,Bind和Nginx实现服务端服务发现

在微服务架构实践中,一个难点是服务发现。每一个服务采用分布式部署,保证了拓展性和容错性,但带来了一个难点是如何监控这些服务,如何找到这些服务。

服务发现的种类有两种:客户端发现和服务端发现

客服端发现-客户端或者API网关查询注册中心获取服务的位置信息。支持服务注册的软件有EtcdZookeeperConsul

一个PHPer的sublime插件指南

作为一名PHPer,在开发(ban zhuan)过程中,没有一个犀利的编辑器怎么能行。sublime是我最喜欢的编辑器,具有强大的拓展功能,有许多丰富的插件支撑。

下面是我目前使用的插件:

插件管理

Package Control 强大的Sublime插件管理工具

主题

Boxy 一个十足极客范的Sublime主题,支持多种主题颜色切换

使用Xdebug和Webgrind优化PHP代码

在PHP开发过程中找到并修复性能瓶颈(performance bottlenecks)往往是非常困难和耗时的。为了定位问题,我们可能会在疑似影响性能的代码的开始和结束之间打上标记点,计算时间差,来定位问题,CI框架提供的基准测试类就是这样工作,这种方式对小型项目起到方便快捷的作用,但对大项目往往吃力不讨好,好比在工业时代,却是用石器时代的工具。这时候我们可以借助Xdebug,webgrind这样的工具来定位到和可视化php代码中的性能瓶颈。

Xdebug是PHP拓展,可以用来跟踪,调试和分析PHP程序的运行状况。而Webgrind是Web应用,提供一个可视化工具,来分析、查看Xdebug性能日志功能。在Linux KDE环境下可以用KChaceGrind,windows 下可以用winChaceGrind来替换Webgrind查看分析Xdebug日志。

Improve the performance of your webapp: configure Nginx to cache

Nginx

原文链接:https://www.theodo.fr/blog/2016/06/improve-the-performance-of-your-webapp-configure-nginx-to-cache/ Sometimes, improving the user’s loading experience is not enough, and you need real changes to make your application load faster. So you try CSS and JS minification or image compression but your app is only a bit faster to load. These tricks reduce the size of resources that need to be downloaded, but what if your users didn’t have to download anything at all? That’s what caching is for!

In this article, I will explain how you can configure Nginx to enable the browser cache, thus avoiding painfully slow downloads. If you are not familiar with Nginx, I recommend reading this article.