<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>归档 on PHPHA</title><link>https://blog.phpha.com/archives/</link><description>Recent content in 归档 on PHPHA</description><generator>Hugo</generator><language>zh</language><lastBuildDate>Fri, 27 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.phpha.com/archives/index.xml" rel="self" type="application/rss+xml"/><item><title>五年后竟然更新了</title><link>https://blog.phpha.com/archives/200/</link><pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/200/</guid><description>&lt;p&gt;上次更新还是在 &lt;code&gt;2021&lt;/code&gt; 年，到现在快五年了。昨天，把博客从 &lt;code&gt;Typecho&lt;/code&gt; 转到了 &lt;code&gt;Hugo&lt;/code&gt; ，选了个简洁的主题，优化了各种细节，有一点更新的欲望了。&lt;/p&gt;</description></item><item><title>Golang 项目生成 Docker 镜像并发布</title><link>https://blog.phpha.com/archives/156/</link><pubDate>Mon, 25 Oct 2021 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/156/</guid><description>&lt;p&gt;快速入门 &lt;code&gt;Golang&lt;/code&gt; 项目生成 &lt;code&gt;Docker&lt;/code&gt; 镜像并发布。本文基于 &lt;code&gt;Golang&lt;/code&gt; 的 &lt;code&gt;Gin&lt;/code&gt; 框架，部署一个简单的 &lt;code&gt;HTTP&lt;/code&gt; 服务。&lt;/p&gt;</description></item><item><title>微服务分层模型</title><link>https://blog.phpha.com/archives/153/</link><pubDate>Tue, 10 Aug 2021 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/153/</guid><description>&lt;p&gt;本文转载自 &lt;code&gt;GoFrame&lt;/code&gt; 博客，并进行了重新排版。本文介绍了关于微服务的分层模型，可作为单体应用向微服务架构转型时的参考。&lt;/p&gt;</description></item><item><title>微服务拆分规范与时机</title><link>https://blog.phpha.com/archives/152/</link><pubDate>Tue, 10 Aug 2021 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/152/</guid><description>&lt;p&gt;本文转载自 &lt;code&gt;GoFrame&lt;/code&gt; 博客，并进行了重新排版。本文介绍了关于微服务拆分的规范与时机，可作为单体应用向微服务架构转型时的参考。&lt;/p&gt;</description></item><item><title>阿里云 ECS SMTP 发送邮件</title><link>https://blog.phpha.com/archives/150/</link><pubDate>Fri, 10 Jul 2020 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/150/</guid><description>&lt;p&gt;因业务需要，今天做了一个简单的邮件发送功能，通过 &lt;code&gt;PHPMailer&lt;/code&gt; 来实现。本地测试正常，部署到阿里云 &lt;code&gt;ECS&lt;/code&gt; 后，报错：&lt;code&gt;SMTP connect() failed&lt;/code&gt; ，本文简单记录下解决方案。&lt;/p&gt;</description></item><item><title>PHP SM2 国密算法与 CURL SSL 双向认证</title><link>https://blog.phpha.com/archives/149/</link><pubDate>Fri, 12 Jun 2020 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/149/</guid><description>&lt;p&gt;最近在对接民生银行的电子账户接口，按照民生的要求，调用接口需要涉及 &lt;code&gt;SM2&lt;/code&gt; 国密算法及 &lt;code&gt;SSL&lt;/code&gt; 双向认证。目前银行端提供的只有 &lt;code&gt;JAVA&lt;/code&gt; 版的 &lt;code&gt;SDK&lt;/code&gt;，把 &lt;code&gt;PHP&lt;/code&gt; 作为开发语言的我们表示很受伤。本文就针对涉及的两个点进行说明，简单汇总下 &lt;code&gt;PHP&lt;/code&gt; 语言中的解决方案。&lt;/p&gt;</description></item><item><title>阿里云消息队列AMQP版之延迟消息</title><link>https://blog.phpha.com/archives/148/</link><pubDate>Fri, 22 May 2020 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/148/</guid><description>&lt;p&gt;近几天在基于阿里云 &lt;code&gt;AMQP&lt;/code&gt; 版消息队列开发业务，之所以选择这个而不是阿里云主推的 &lt;code&gt;RocketMQ&lt;/code&gt; ，是因为我想用的是 &lt;code&gt;RabbitMQ&lt;/code&gt; 。选择阿里云而非自己部署，无非是为了节省运维成本。相对来说官方的 &lt;code&gt;PHP&lt;/code&gt; 版本 &lt;code&gt;Demo&lt;/code&gt; 非常简陋，而且虽然官方宣传完全兼容 &lt;code&gt;RabbitMQ&lt;/code&gt; ，但还是有一些坑的。&lt;/p&gt;</description></item><item><title>Laravel/Lumen 日志文件无法写入</title><link>https://blog.phpha.com/archives/147/</link><pubDate>Thu, 26 Mar 2020 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/147/</guid><description>&lt;p&gt;最近有同事反馈，发现使用 &lt;code&gt;Laravel/Lumen&lt;/code&gt; 框架的项目中，日志文件（ &lt;code&gt;storage/logs/laravel.log | storage/logs/lumen.log&lt;/code&gt; ）权限莫名其妙变为 &lt;code&gt;root:root&lt;/code&gt; ，导致程序运行时写入失败而报 &lt;code&gt;500&lt;/code&gt; 错误。&lt;/p&gt;</description></item><item><title>MacOS iTerm2 安装 lrzsz 上传下载文件</title><link>https://blog.phpha.com/archives/146/</link><pubDate>Mon, 23 Mar 2020 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/146/</guid><description>&lt;p&gt;本文记录下，在 &lt;code&gt;MacOS&lt;/code&gt; 上使用 &lt;code&gt;iTerm2&lt;/code&gt; 时，如何配置 &lt;code&gt;lrzsz&lt;/code&gt; 来上传下载文件。本文的内容摘自互联网，由于互联网上的文章中相关的脚本文件链接已失效，因此本文重点是提供相关的脚本文件，以供参考。&lt;/p&gt;</description></item><item><title>MacOS brew 替换国内源</title><link>https://blog.phpha.com/archives/145/</link><pubDate>Mon, 11 Nov 2019 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/145/</guid><description>&lt;p&gt;&lt;code&gt;brew&lt;/code&gt; 默认是国外的源，在国内安装软件太慢了，因此先进行国内源的替换。&lt;/p&gt;</description></item><item><title>[GitHub] DMCA Takedown Notice</title><link>https://blog.phpha.com/archives/144/</link><pubDate>Thu, 31 Oct 2019 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/144/</guid><description>&lt;p&gt;今天晚上收到一封来自 &lt;code&gt;Github&lt;/code&gt; 的邮件，标题为 &lt;code&gt;[GitHub] DMCA Takedown Notice&lt;/code&gt; 。在使用 &lt;code&gt;Github&lt;/code&gt; 的这么长时间里，这还是第一次发生。&lt;/p&gt;</description></item><item><title>GoLand &amp; PhpStorm v2019.2 for Mac 破解及汉化</title><link>https://blog.phpha.com/archives/143/</link><pubDate>Thu, 17 Oct 2019 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/143/</guid><description>&lt;p&gt;本文分享下 &lt;code&gt;GoLand &amp;amp; PhpStorm v2019.2 for Mac&lt;/code&gt; 的破解及汉化，理论上适用于 &lt;code&gt;Jetbrains&lt;/code&gt; 所有的 &lt;code&gt;v2019.2&lt;/code&gt; 产品。&lt;/p&gt;</description></item><item><title>MacOS 安装 Apache ab 压测工具</title><link>https://blog.phpha.com/archives/142/</link><pubDate>Thu, 03 Oct 2019 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/142/</guid><description>&lt;p&gt;出于测试的需要，本文简单记录下在 &lt;code&gt;MacOS&lt;/code&gt; 上安装 &lt;code&gt;Apache ab&lt;/code&gt; 压测工具的相关操作步骤。&lt;/p&gt;</description></item><item><title>Zend Studio v13.6.1 for Mac 破解及汉化</title><link>https://blog.phpha.com/archives/141/</link><pubDate>Wed, 02 Oct 2019 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/141/</guid><description>&lt;p&gt;从 &lt;code&gt;Zend Studio v13.6&lt;/code&gt; 起才能支持 &lt;code&gt;PHP 7.1&lt;/code&gt; 的最新特性，因此记录下 &lt;code&gt;Zend Studio v13.6.1 for Mac&lt;/code&gt; 的破解及汉化。其实这个破解不用区分 &lt;code&gt;Windows or Mac&lt;/code&gt;，两个平台都是通用的。&lt;/p&gt;</description></item><item><title>使用 GoColly 抓取贝壳房源信息</title><link>https://blog.phpha.com/archives/140/</link><pubDate>Mon, 02 Sep 2019 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/140/</guid><description>&lt;p&gt;使用 &lt;code&gt;Golang&lt;/code&gt; 的爬虫工具 &lt;code&gt;Gocolly&lt;/code&gt; 抓取贝壳的出租房源信息。由于公司项目之一是长租公寓 &lt;code&gt;SaaS&lt;/code&gt; 管理系统，需要为公寓的老板或管家们提供当地的租房价格参考。出于对 &lt;code&gt;Golang&lt;/code&gt; 学习的目的，没有采用 &lt;code&gt;Python&lt;/code&gt; 那些成熟的爬虫框架，而是采用了 &lt;code&gt;Gocolly&lt;/code&gt;，抓取的数据存储在 &lt;code&gt;MongoDB&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>数据结构之单链表</title><link>https://blog.phpha.com/archives/139/</link><pubDate>Sun, 01 Sep 2019 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/139/</guid><description>&lt;p&gt;数组需要一块连续的内存空间来存储，对内存的要求比较高。而链表恰恰相反，它并不需要一块连续的内存空间，它通过指针将一组零散的内存块串联起来使用。链表结构五花八门，三种最常见的链表结构，它们分别是：单链表、双向链表和循环链表。本文来看最简单、最常用的单链表。&lt;/p&gt;</description></item><item><title>PHP 之 for 循环</title><link>https://blog.phpha.com/archives/137/</link><pubDate>Fri, 09 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/137/</guid><description>&lt;p&gt;&lt;code&gt;for&lt;/code&gt; 循环在很多的编程语言中都被支持，是一种常见的循环用法，也算是我们学习每门编程语言中最基础的知识点。但正是因为基础，所以才容易被忽略，久而久之，甚至会误解。本文 &lt;code&gt;PHPHa&lt;/code&gt; 就对 &lt;code&gt;PHP&lt;/code&gt; 中的 &lt;code&gt;for&lt;/code&gt; 循环进行复习，不求温故而知新，但求能矫枉过正。&lt;/p&gt;</description></item><item><title>数据结构之复杂度分析</title><link>https://blog.phpha.com/archives/134/</link><pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/134/</guid><description>&lt;p&gt;我们都知道，数据结构和算法本身解决的是“快”和“省”的问题，即如何让代码运行得更快，如何让代码更省存储空间。所以，执行效率是算法一个非常重要的考量指标。那如何来衡量你编写的算法代码的执行效率呢？这里就要用到：时间、空间复杂度分析。&lt;/p&gt;</description></item><item><title>数据结构之数组</title><link>https://blog.phpha.com/archives/135/</link><pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/135/</guid><description>&lt;p&gt;数组（&lt;code&gt;Array&lt;/code&gt;）是一种线性表数据结构。它用一组连续的内存空间，来存储一组具有相同类型的数据。&lt;code&gt;PHPHa&lt;/code&gt; 通过本文简单介绍下数组的定义以及用 &lt;code&gt;PHP&lt;/code&gt; 代码模拟数组的相关操作。&lt;/p&gt;</description></item><item><title>PHP 常用的 11 种设计模式</title><link>https://blog.phpha.com/archives/133/</link><pubDate>Sun, 04 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/133/</guid><description>&lt;p&gt;本文简单介绍下，在 &lt;code&gt;PHP&lt;/code&gt; 开发中涉及的常用的设计模式。包含：工厂模式、单例模式、注册器模式、适配器模式、策略模式、数据对象映射模式、观察者模式、原型模式、装饰器模式、迭代器模式、代理模式等。&lt;/p&gt;</description></item><item><title>后端开发之 MySQL 性能调优</title><link>https://blog.phpha.com/archives/130/</link><pubDate>Sat, 03 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/130/</guid><description>&lt;p&gt;MySQL性能调休，这是每一个 &lt;code&gt;PHPer&lt;/code&gt; 在面试中永远无法绕过的一道面试题。那么，&lt;code&gt;PHPHa&lt;/code&gt; 就从个人角度的理解，来总结下相关的优化方案。MySQL性能调优，推荐从下向上的性能调优，主要包括运行环境、配置参数、SQL性能、系统架构设计的调优。&lt;/p&gt;</description></item><item><title>简述 MySQL 分区分表分库</title><link>https://blog.phpha.com/archives/131/</link><pubDate>Sat, 03 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/131/</guid><description>&lt;p&gt;随着项目的推广，数据量快速的增长，即使加了缓存，数据库还是会出现查询缓慢的现象。一般来说，我们会首先对慢 &lt;code&gt;SQL&lt;/code&gt; 语句和索引进行优化，再考虑集群方案和读写分离，最后才是分区分表分库的相关方案。&lt;/p&gt;</description></item><item><title>IOC 控制反转与 DI 依赖注入</title><link>https://blog.phpha.com/archives/128/</link><pubDate>Fri, 02 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/128/</guid><description>&lt;p&gt;依赖注入和控制反转是对同一件事情的不同描述，从某个方面讲，就是它们描述的角度不同。&lt;/p&gt;</description></item><item><title>S.O.L.I.D 面向对象设计和编程</title><link>https://blog.phpha.com/archives/129/</link><pubDate>Fri, 02 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/129/</guid><description>&lt;p&gt;SOLID 是 面向对象编程 和 面试对象设计 的五个基本原则，应用这五个原则能创建一个易于维护和扩展的软件系统。SOLID 可以指导代码重构和在迭代的过程中进行代码清扫，以使得软件源代码清晰可读和具有良好的扩展性。在测试驱动开发中是典型应用场景，并且也是敏捷开发和自适应软件开发基本原则的重要组成部分。&lt;/p&gt;</description></item><item><title>Golang 分布式 ID 生成器</title><link>https://blog.phpha.com/archives/125/</link><pubDate>Thu, 15 Nov 2018 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/125/</guid><description>&lt;p&gt;在分布式系统中，我们经常需要生成一个唯一的 &lt;code&gt;ID&lt;/code&gt;，或用于订单，或用于其他场景。总之基本的要求就是要唯一且高效。对这个 &lt;code&gt;ID&lt;/code&gt; 还希望其中能带有一些时间信息，这样即使我们后端的系统对记录进行了分库分表，也能够以时间顺序对这些记录进行排序。&lt;code&gt;Twitter&lt;/code&gt; 的 &lt;code&gt;snowflake&lt;/code&gt; 算法是这种场景下的一个典型解法。&lt;/p&gt;</description></item><item><title>Golang 时间相关格式化</title><link>https://blog.phpha.com/archives/124/</link><pubDate>Tue, 06 Nov 2018 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/124/</guid><description>&lt;p&gt;相对于 &lt;code&gt;PHP&lt;/code&gt; 而言，&lt;code&gt;Golang&lt;/code&gt; 里面的获取时间应该说是很不方便有木有。因此，特意封装了以下项目中常用到的获取时间相关的函数。&lt;/p&gt;</description></item><item><title>Golang 操作 MongoDB 数据库</title><link>https://blog.phpha.com/archives/123/</link><pubDate>Thu, 25 Oct 2018 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/123/</guid><description>&lt;p&gt;本文基于 &lt;code&gt;Golang&lt;/code&gt; 的爬虫框架 &lt;code&gt;Go-Colly&lt;/code&gt; 进行数据抓取，然后存储到 &lt;code&gt;MongoDB&lt;/code&gt; 数据库。根据搜索结果，相对来说最成熟的 &lt;code&gt;MongoDB&lt;/code&gt; 驱动，应该是 &lt;code&gt;mgo&lt;/code&gt;，但是目前 &lt;code&gt;mgo&lt;/code&gt; 的作者已经停止维护。另外 &lt;code&gt;MongoDB&lt;/code&gt; 官方也已经有对应 &lt;code&gt;Golang&lt;/code&gt; 的驱动 &lt;code&gt;mongo-go-driver&lt;/code&gt;，但是 &lt;code&gt;Google&lt;/code&gt; 上相关的资料并不多。&lt;/p&gt;</description></item><item><title>基于 Golang 的网络爬虫 Gocolly</title><link>https://blog.phpha.com/archives/122/</link><pubDate>Tue, 23 Oct 2018 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/122/</guid><description>&lt;p&gt;因项目需要，要对网络上某些信息进行抓取，以便加工后做数据分析。提到爬虫框架，知名度最高的当属基于&lt;code&gt;Python&lt;/code&gt;的爬虫框架 &lt;code&gt;Scrapy&lt;/code&gt;。但是由于本人对 &lt;code&gt;Python&lt;/code&gt; 并不熟悉，并且暂时也不准备去深入学习，因此不在考虑范围。同时也是基于学习的目的，因此选择了 &lt;code&gt;Golang&lt;/code&gt; 方向。基于 &lt;code&gt;Golang&lt;/code&gt; 的成熟爬虫框架其实并不多，因此在选择上不用太纠结，就用 &lt;code&gt;Go-Colly&lt;/code&gt; 了。&lt;/p&gt;</description></item><item><title>PHP 与协程</title><link>https://blog.phpha.com/archives/120/</link><pubDate>Sun, 21 Jan 2018 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/120/</guid><description>&lt;p&gt;“协程”（Coroutine）概念最早由 Melvin Conway 于1958年提出。协程可以理解为纯用户态的线程，其通过协作而不是抢占来进行切换。相对于进程或者线程，协程所有的操作都可以在用户态完成，创建和切换的消耗更低。总的来说，协程为协同任务提供了一种运行时抽象，这种抽象非常适合于协同多任务调度和数据流处理。在现代操作系统和编程语言中，因为用户态线程切换代价比内核态线程小，协程成为了一种轻量级的多任务模型。&lt;/p&gt;</description></item><item><title>Web架构的那些事儿</title><link>https://blog.phpha.com/archives/119/</link><pubDate>Sat, 20 Jan 2018 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/119/</guid><description>&lt;p&gt;转眼已经是2018年了，博客停更了一年多。无论如何，是时候回归了。最近关注及研究的重点是Web架构与性能，会结合自己的学习进行记录及分享。涉及的关键词：网络协议、异步编程、微服务、分布式等。&lt;/p&gt;</description></item><item><title>开发环境初始化</title><link>https://blog.phpha.com/archives/116/</link><pubDate>Sat, 01 Oct 2016 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/116/</guid><description>&lt;p&gt;开发环境的配置，记录一下。&lt;/p&gt;</description></item><item><title>Linux常用文本处理命令</title><link>https://blog.phpha.com/archives/63/</link><pubDate>Thu, 01 Sep 2016 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/63/</guid><description>&lt;p&gt;在使用Linux的过程中，最常做的操作就是对文件/文本进行一些处理。本文简单介绍下Linux中常用的文本处理命令，主要包括以下命令： &lt;code&gt;find&lt;/code&gt; / &lt;code&gt;grep&lt;/code&gt; / &lt;code&gt;sort&lt;/code&gt; / &lt;code&gt;cut&lt;/code&gt; / &lt;code&gt;awk&lt;/code&gt; / &lt;code&gt;sed&lt;/code&gt; / &lt;code&gt;uniq&lt;/code&gt; / &lt;code&gt;tee&lt;/code&gt; / &lt;code&gt;tr&lt;/code&gt; / &lt;code&gt;diff&lt;/code&gt; / &lt;code&gt;cmp&lt;/code&gt; / &lt;code&gt;split&lt;/code&gt; / &lt;code&gt;xargs&lt;/code&gt;，下面依次介绍。&lt;/p&gt;</description></item><item><title>首山钱包多线程自动抢标</title><link>https://blog.phpha.com/archives/56/</link><pubDate>Tue, 23 Aug 2016 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/56/</guid><description>&lt;p&gt;首山钱包最近做了三轮的活动，每周一轮，每轮最多可以得到500元大红包。虽然不是专业羊毛党，但是本着为小伙伴们造福的初衷，我还是为了本次任务，写了[自动登录/选标/抢标]的PHP代码。目前代码运行良好，第一轮活动我们6个人都拿到了大红包。第二轮开始小伙伴队伍壮大了一倍，今天已是第二轮的最后一天，拿到大红包毫无压力。&lt;/p&gt;</description></item><item><title>PHP多线程之Pthreads扩展</title><link>https://blog.phpha.com/archives/54/</link><pubDate>Mon, 15 Aug 2016 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/54/</guid><description>&lt;p&gt;简介：Pthreads 是一组允许用户在 PHP 中使用多线程技术的面向对象的 API。 它提供了创建多线程应用所需的全套工具，无论是 Web 应用还是控制台应用。 通过使用 Thread， Worker 以及 Threaded 对象，PHP 应用可以创建、读取、写入以及执行多线程应用，并可以在多个线程之间进行同步控制。&lt;/p&gt;</description></item><item><title>Ubuntu-16.04安装搜狗拼音输入法</title><link>https://blog.phpha.com/archives/48/</link><pubDate>Wed, 27 Apr 2016 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/48/</guid><description>&lt;p&gt;最新的Ubuntu-16.04已经在4月21日正式发布，本人在前两天进行了安装。新的特性还没来得及去了解，只是安装之后，发现搜狗输入法不能正常的安装。经过搜索与尝试，提供下相关的解决方法。&lt;/p&gt;</description></item><item><title>重新回归Ubuntu-15.10</title><link>https://blog.phpha.com/archives/46/</link><pubDate>Sun, 17 Apr 2016 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/46/</guid><description>&lt;p&gt;时隔一年多，今晚又回归到Ubuntu了。上次使用还是Ubuntu-14.04刚发布，如今Ubuntu-16.04再过几天就发布了。&lt;/p&gt;</description></item><item><title>PHP代码风格规范[PSR-2]</title><link>https://blog.phpha.com/archives/38/</link><pubDate>Sun, 13 Dec 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/38/</guid><description>&lt;p&gt;本篇规范是 &lt;a href="http://blog.phpha.com/archives/37/"&gt;PSR-1&lt;/a&gt; 基本代码规范的继承与扩展。&lt;/p&gt;
&lt;p&gt;关键词 “必须”(&amp;ldquo;MUST&amp;rdquo;)、“一定不可/一定不能”(&amp;ldquo;MUST NOT&amp;rdquo;)、“需要”(&amp;ldquo;REQUIRED&amp;rdquo;)、 “将会”(&amp;ldquo;SHALL&amp;rdquo;)、“不会”(&amp;ldquo;SHALL NOT&amp;rdquo;)、“应该”(&amp;ldquo;SHOULD&amp;rdquo;)、“不该”(&amp;ldquo;SHOULD NOT&amp;rdquo;)、 “推荐”(&amp;ldquo;RECOMMENDED&amp;rdquo;)、“可以”(&amp;ldquo;MAY&amp;rdquo;)和”可选“(&amp;ldquo;OPTIONAL&amp;rdquo;)的详细描述可参见 &lt;a href="http://www.ietf.org/rfc/rfc2119.txt"&gt;RFC 2119&lt;/a&gt; 。&lt;/p&gt;</description></item><item><title>PHP基本代码规范[PSR-1]</title><link>https://blog.phpha.com/archives/37/</link><pubDate>Sun, 13 Dec 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/37/</guid><description>&lt;p&gt;本篇规范制定了代码基本元素的相关标准， 以确保共享的PHP代码间具有较高程度的技术互通性。&lt;/p&gt;
&lt;p&gt;关键词 “必须”(&amp;ldquo;MUST&amp;rdquo;)、“一定不可/一定不能”(&amp;ldquo;MUST NOT&amp;rdquo;)、“需要”(&amp;ldquo;REQUIRED&amp;rdquo;)、 “将会”(&amp;ldquo;SHALL&amp;rdquo;)、“不会”(&amp;ldquo;SHALL NOT&amp;rdquo;)、“应该”(&amp;ldquo;SHOULD&amp;rdquo;)、“不该”(&amp;ldquo;SHOULD NOT&amp;rdquo;)、 “推荐”(&amp;ldquo;RECOMMENDED&amp;rdquo;)、“可以”(&amp;ldquo;MAY&amp;rdquo;)和”可选“(&amp;ldquo;OPTIONAL&amp;rdquo;)的详细描述可参见 &lt;a href="http://www.ietf.org/rfc/rfc2119.txt"&gt;RFC 2119&lt;/a&gt; 。&lt;/p&gt;</description></item><item><title>Redis基础知识介绍</title><link>https://blog.phpha.com/archives/34/</link><pubDate>Fri, 27 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/34/</guid><description>&lt;p&gt;本文简单介绍下Redis是什么，Redis的安装与基本使用，Redis的基本数据类型，Redis与Memcached的选择依据等问题。&lt;/p&gt;</description></item><item><title>基于Redis实现PHP消息队列</title><link>https://blog.phpha.com/archives/36/</link><pubDate>Fri, 27 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/36/</guid><description>&lt;p&gt;所谓消息队列，即在消息的传输过程中保存消息的容器。最常见的使用场景是，通过引入消息队列来对耗时的任务就行异步处理，以及应对高并发问题，即所谓的削峰作用。在以PHP为主要开发语言的项目中，我们可以选择的软件有很多，最常使用的有三种：基于 &lt;code&gt;Redis&lt;/code&gt; 的 &lt;code&gt;List数据类型&lt;/code&gt; 来用PHP实现入列出列，基于 &lt;code&gt;Memcached&lt;/code&gt; 的扩展应用 &lt;code&gt;MemcacheQ&lt;/code&gt;，还有更强大和流行的&lt;code&gt;RabbitMQ&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>CentOS-6.4安装Memcached</title><link>https://blog.phpha.com/archives/17/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/17/</guid><description>&lt;p&gt;由于项目上线后需要考虑分布式，SESSION准备放在Memcache来同步，下面是一些配置及随手的记录。&lt;/p&gt;</description></item><item><title>CentOS-6.4安装MySQL-5.6</title><link>https://blog.phpha.com/archives/15/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/15/</guid><description>&lt;p&gt;下面介绍下在CentOS-6.4安装MySQL-5.6.14。&lt;/p&gt;</description></item><item><title>CentOS下查看物理CPU信息</title><link>https://blog.phpha.com/archives/14/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/14/</guid><description>&lt;p&gt;下面介绍下怎么在CentOS下查看物理CPU信息。&lt;/p&gt;</description></item><item><title>CentOS安装DOS-Deflate</title><link>https://blog.phpha.com/archives/16/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/16/</guid><description>&lt;p&gt;DDoS deflate是一款运行于Linux下，专门用于防止/减轻类DDOS攻击的程序。大多数DDOS攻击都是采取若干傀儡机同时对某一服务器发出大量连接请求，以耗光服务器资源的方法。&lt;/p&gt;</description></item><item><title>CentOS环境PHP安装Memcache扩展</title><link>https://blog.phpha.com/archives/19/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/19/</guid><description>&lt;p&gt;首先需要说明的是，memcache与memcached的区别，memcache是客户端的扩展，memcached是服务端。&lt;/p&gt;</description></item><item><title>CentOS环境实现Git命令自动补全</title><link>https://blog.phpha.com/archives/30/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/30/</guid><description>&lt;p&gt;Git就不用多介绍了，在Linux环境下开发的同学可能会发现默认已经安装的Git却并没有能实现命令的自动补全，还是感觉有点低效和不爽，因此我们需要调整下。下面直接步入正题。&lt;/p&gt;</description></item><item><title>CentOS设置服务开机启动</title><link>https://blog.phpha.com/archives/12/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/12/</guid><description>&lt;p&gt;下面介绍下CentOS环境设置服务开机启动的两种方法。&lt;/p&gt;</description></item><item><title>Memcached常规应用与分布式部署方案</title><link>https://blog.phpha.com/archives/7/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/7/</guid><description>&lt;p&gt;下面天涯 &lt;code&gt;[PHPHA.COM]&lt;/code&gt; 介绍下 &lt;code&gt;Memcached&lt;/code&gt; 的最常规的应用及分布式部署方案。相关内容参考了凹凸曼写的 &lt;code&gt;Memcached&lt;/code&gt; 使用与实践章节。至于 &lt;code&gt;Memcached&lt;/code&gt; 的安装及基本使用，这里不做介绍，有需要可以借助 &lt;code&gt;Google&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>MySQL中EXPLAIN解释命令</title><link>https://blog.phpha.com/archives/22/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/22/</guid><description>&lt;p&gt;EXPLAIN命令显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。&lt;/p&gt;</description></item><item><title>MySQL索引介绍与索引优化</title><link>https://blog.phpha.com/archives/20/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/20/</guid><description>&lt;p&gt;前几天PHP初学者官方群[168159147]里有些新手提问关于MySQL索引的相关问题，比如MySQL索引怎么用，MySQL索引何时用，MySQL索引使用准则，MySQL索引的优化及MySQL索引的优缺点等。下面天涯PHP博客结合互联网上的一些知识点，做一个简单的总结及概述，以供新手学习。&lt;/p&gt;</description></item><item><title>MySQL索引优化实例说明</title><link>https://blog.phpha.com/archives/21/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/21/</guid><description>&lt;p&gt;继上一篇MySQL索引的优化的文章之后，下面天涯PHP博客再以实例的方式对索引的使用进行相关说明。本文分别以单列索引和组合索引进行举例说明。&lt;/p&gt;</description></item><item><title>Nginx配置WoSign免费SSL证书</title><link>https://blog.phpha.com/archives/28/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/28/</guid><description>&lt;p&gt;基于CentOS-6.5/Nginx-1.60安装OpenSSL-1.0.1j，并为WordPress后台配置WoSign免费SSL证书。因为之前Nginx安装时默认是没有安装OpenSSL的，因此Nginx需要重新编译。&lt;/p&gt;</description></item><item><title>PHP使用Memcache存储SESSION</title><link>https://blog.phpha.com/archives/18/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/18/</guid><description>&lt;p&gt;下面简单介绍下PHP项目分布式部署中，SESSION的同步方案中的一种，使用Memcache来存储SESSION。至于Memcached的安装请看&lt;a href="http://blog.phpha.com/archives/17/"&gt;《CentOS-6.4安装Memcached》&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>PHP防止快速刷新代码</title><link>https://blog.phpha.com/archives/9/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/9/</guid><description>&lt;p&gt;提供个PHP防快速刷新代码，直接上代码。&lt;/p&gt;</description></item><item><title>PHP面试中常见的字符串与文件操作题目</title><link>https://blog.phpha.com/archives/23/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/23/</guid><description>&lt;p&gt;由于最近考虑换工作，所以抽时间复习下面试中可能遇到的基本知识。下面是四道比较常见的题目，主要考察的是对字符串函数以及文件操作相关函数的掌握程度。&lt;/p&gt;</description></item><item><title>Ubuntu-14.04安装Xdebug-2.2.5</title><link>https://blog.phpha.com/archives/27/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/27/</guid><description>&lt;p&gt;Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具)，可以用来跟踪，调试和分析PHP程序的运行状况。在日常开发中，我们会使用如 print_r() var_dump()等函数来进行调试，但毕竟Xdebug更加的专业，简单介绍下在Ubuntu-14.04下Xdebug-2.2.5的安装。&lt;/p&gt;</description></item><item><title>Ubuntu-14.04编译安装Apache-2.4.10</title><link>https://blog.phpha.com/archives/24/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/24/</guid><description>&lt;p&gt;由于&lt;a href="http://blog.phpha.com"&gt;天涯PHP博客&lt;/a&gt;前几天重新格了硬盘，把以前的Windows7+Ubuntu双系统彻底更换为只保留Ubuntu-14.04了，所以重新配置下Ubuntu-14.04下的LAMP环境，因为前几天PHP初学者官方群[168159147]中有成员问过编译的问题，&lt;a href="http://blog.phpha.com"&gt;天涯PHP博客&lt;/a&gt;就顺便记录下自己的安装过程。&lt;/p&gt;</description></item><item><title>Ubuntu-14.04编译安装MySQL-5.6.16</title><link>https://blog.phpha.com/archives/25/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/25/</guid><description>&lt;p&gt;接着上一篇《&lt;a href="http://blog.phpha.com/archives/24/"&gt;Ubuntu-14.04编译安装Apache-2.4.10&lt;/a&gt;》，这次介绍下MySQL-5.6.16的编译安装。&lt;/p&gt;</description></item><item><title>Ubuntu-14.04编译安装PHP-5.5.16</title><link>https://blog.phpha.com/archives/26/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/26/</guid><description>&lt;p&gt;继前两篇文章《&lt;a href="http://blog.phpha.com/archives/24/"&gt;Ubuntu-14.04编译安装Apache-2.4.10&lt;/a&gt;》和《&lt;a href="http://blog.phpha.com/archives/25/"&gt;Ubuntu-14.04编译安装MySQL-5.6.16&lt;/a&gt;》之后，本次介绍下PHP-5.5.16的编译安装。&lt;/p&gt;</description></item><item><title>WEB集群中常见的SESSION同步机制</title><link>https://blog.phpha.com/archives/4/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/4/</guid><description>&lt;p&gt;WEB集群是我们在项目中常见的情况，但是通过负载均衡后，会造成session的不同步问题，最直观的现象就是用户登录以后，会出现已登录与未登录的状态的不断切换。这是因为同一个IP访问同一个页面会被随机分配到不同的服务器上。&lt;/p&gt;</description></item><item><title>Zend Studio v11.0.1 破解汉化并安装主题</title><link>https://blog.phpha.com/archives/29/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/29/</guid><description>&lt;p&gt;&lt;a href="http://blog.phpha.com"&gt;天涯PHP博客&lt;/a&gt;提供下Zend_studio-11.0.1破解步骤及破解补丁和注册机下载，Zend_studio-11.0.1在线汉化步骤及地址，Zend_studio-11.0.1在线安装主题步骤及地址。&lt;/p&gt;</description></item><item><title>关于MySQL的1040错误</title><link>https://blog.phpha.com/archives/8/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/8/</guid><description>&lt;p&gt;出现此错误 &lt;code&gt;[ERROR 1040: Too many connections]&lt;/code&gt; 的原因，一种是访问量确实很高，&lt;code&gt;MySQL&lt;/code&gt; 服务器顶不住，这个时候就要考虑增加从服务器分散读压力，另外一种情况是 &lt;code&gt;MySQL&lt;/code&gt; 配置文件中 &lt;code&gt;max_connections&lt;/code&gt; 值过小。&lt;/p&gt;</description></item><item><title>分享一个Xshell配色方案</title><link>https://blog.phpha.com/archives/31/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/31/</guid><description>&lt;p&gt;在Windows上开发时少不了Xshell这个好用的软件，只是默认的配色方案太不友好了，容易视觉疲劳。下面分享一个本人一直在用的配色方案代码，[Solarized_Dark]，感觉还不错。&lt;/p&gt;</description></item><item><title>常用算法PHP版</title><link>https://blog.phpha.com/archives/3/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/3/</guid><description>&lt;p&gt;下面分享一些最常见的算法，用PHP如何实现。&lt;/p&gt;</description></item><item><title>开启MySQL远程连接权限</title><link>https://blog.phpha.com/archives/10/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/10/</guid><description>&lt;p&gt;本文介绍下开启MySQL远程连接权限的相关操作，需要说明的是这样做存在安全隐患，建议把IP设置成固定的IP，千万别用%来匹配所有的IP。&lt;/p&gt;</description></item><item><title>提升Linux服务器安全性的几个小技巧</title><link>https://blog.phpha.com/archives/11/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/11/</guid><description>&lt;p&gt;介绍几个提升Linux服务器（CentOS）安全性的小技巧，比如修改SSH默认端口，限制SSH登录IP地址，禁止ROOT远程登录，删除多余的用户和用户组，修改口令文件属性，禁止[Ctrl+Alt+Delete]重启命令，防止别人Ping等。&lt;/p&gt;</description></item><item><title>用PHP实现的HashTable及说明</title><link>https://blog.phpha.com/archives/6/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/6/</guid><description>&lt;p&gt;下面是用PHP实现的HashTable代码，其中需要说明的有两点：&lt;/p&gt;</description></item><item><title>禁止Apache显示目录索引</title><link>https://blog.phpha.com/archives/5/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.phpha.com/archives/5/</guid><description>&lt;p&gt;禁止Apache显示目录索引，禁止Apache显示目录结构列表，禁止Apache浏览目录，这是网上提问比较多的，其实都是一个意思。下面说下禁止禁止Apache显示目录索引的常见的3种方法。&lt;/p&gt;</description></item></channel></rss>