摘要:
由于在本地建了两个laravel项目,test.me 和 api-test.me,当我在 test.me 中调用 curl 去请求 api-test.me 的方法,试图获取数据时, 接口一直返回没有找到对应的表,经过排查,发现 api-test.me 连接的数据库并不是 .env 中配置的。 然后各 阅读全文
摘要:
通过inotify扩展监控文件或目录的变化,如果发生变化,就执行命令。 可以应用于 swoole 中,如果文件发生变化,就执行 kill -USR1 进程PID 来实现热更新。 演示如下所示: 阅读全文
摘要:
swoole中为我们提供了一个进程管理模块 Process,替换PHP的 pcntl 扩展,方便我们创建进程,管理进程,和进程间的通信。 swoole提供了2种进程间的通信: 1、基于 unix socket 的管道 pipe。 2、基于 sysvmsg 的消息队列。 我们可以通过 new swoo 阅读全文
摘要:
swoole中为我们提供了一个swoole_http_server类,方便我们处理http请求。 但是它对http协议的支持并不完整,所以一般建议在前面加一层nginx进行代理,对于php文件的处理交由swoole处理。 一、创建一个简单的http服务 二、处理静态文件 swoole中已经帮我们内置 阅读全文
摘要:
我们知道,swoole中有两大进程,分别是 master 主进程和 manager 管理进程。 其中 master 主进程中会有一个主 reactor 线程和多个 reactor 线程,主要的作用就是用来维护TCP连接,处理网络IO,收发数据。 而 manager 管理进程,作用则是 fork 和管 阅读全文
摘要:
一、安装inotify扩展 1、下载inotify扩展源码 对于php7以上版本,请下载 inotify-2.0.0.tgz。 2、编译安装 3、修改php.ini,添加 二、使用inotify进行文件监控 php的inotify扩展提供了监控文件或目录的功能,可以用来实现,服务的热更新,或安全监控 阅读全文
摘要:
supervisor是用python开发的一个在linux系统下的进程管理工具,可以方便的监听,启动,停止一个或多个进程。当一个进程被意外杀死后,supervisor监听到后,会自动重新拉起进程。 一、supervisor的安装 1、通过easy_install安装 2、通过yum安装 3、通过pi 阅读全文
摘要:
php中的错误和异常是两个不同的概念。 错误:是因为脚本的问题,比如少写了分号,调用未定义的函数,除0,等一些编译语法错误。 异常:是因为业务逻辑和流程,不符合预期情况,比如验证请求参数,不通过就用 throw new 抛一个异常。 在php5的版本中,错误是无法被 try {} catch 捕获的 阅读全文
摘要:
有些时候我们需要在窗口创建并显示时,加载一些后端的配置,这就需要用到view提供的几个事件。 statechange 状态改变时,最大化,最小化,显示,隐藏,会触发事件回调。 activate 窗口激活或停用时,可以理解为获取焦点或失去焦点,触发事件回调。 demo.go的代码如下: demo.ht 阅读全文
摘要:
laravel中的视图默认保存在 resources\views 目录下。在控制器中,我们通常使用 view() 方法返回一个视图文件。 对于有多层目录结构的视图,我们可以通过 (.) 点号进行分隔。 我们可以通过 view() 的第二个参数 或 with() 方法来给视图传递数据。 有些时候我们需 阅读全文
摘要:
laravel中为我们提供了绑定不同http请求类型的函数。 但有些时候,我们通过创建资源控制器,里面的 update() 方法绑定的是 PUT 类型的http请求。 这就需要我们通过表单提交模拟PUT请求。我们可以自已添加一个 _method 的隐藏字段,值为 PUT。 也可以使用laravel为 阅读全文
摘要:
laravel中我们可以使用 artisan 命令来帮助我们创建控制器文件。 TestController 控制器名我们可以任意指定。文件默认会创建在 app\Http\Controllers 目录下。 打开控制器文件,我们就可以添加自已的方法了。 在路由文件 routes/web.php 中配置路 阅读全文
摘要:
刚开始用laravel模型时,为了方便一直写静态方法,进行数据库操作。 直到有朋友告诉可以不用这么写,声明一个 protected 方法,方法中用 $this。在外部使用时,也可以像调静态函数一样调用。 试了一下,发现还真可以,按理说受保护的 protected 非静态方法,在外部是无法这么调用的 阅读全文
摘要:
安装好nginx,php环境后,配置虚拟主机,结果访问后就报502 gateway,查看日志文件后,显示错误如下: 解决方案,先查看下php-fpm是否启动,然后查看虚拟主机配置中的 root 配置 然后重启下nginx就可以访问了。 阅读全文
摘要:
一、下载nginx源码 如:nginx-1.16.0.tar.gz 二、创建用户和组,并解压 三、下载openssl,编译高版本openssl 如:openssl-1.0.2r.tar.gz 四、编译安装nginx --with-openssl 的路径设置为第3步中openssl源码解压路径。 上面 阅读全文
摘要:
一、下载php7.3的源码 下载php-7.3.4.tar.gz 二、安装gcc,gcc-c++,kernel-devel 三、安装php需要的依赖库 四、创建用户和组,并解压 五、进行编译安装 php的路径 --prefix 和配置文件 --with-config-file-path 路径大家可以 阅读全文
摘要:
今天遇到了一个问题,在routes/web.php中配置了路由,但始终无法访问该路由,一直报404。 然后我在app/Exceptions/Handler.php文件中,修改render()方法: 把异常打印出来: 先通过 php artisan route:list 查看路由列表 原因是larav 阅读全文
摘要:
laravel的路由分组,就是把一些具有相同特征的路由进行分组,比如一些路由需要进行验证,一些路由有共同的前缀,一些路由有相同的控制器命名空间等。 这样把路由组合在一起,方便管理,维护性更好。 上面的代码把两个路由归为一组,但并没有应用任何相同特征,这样的意义并不大。 一、中间件 为一组路由设置相同 阅读全文
摘要:
Xhprof是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开关来控制是否进行profile。 对于还在使用php5的朋友们,可以安装pecl的xhprof扩展 但是因为长时间不更新,针对php7已无法正常安装,可以使 阅读全文
摘要:
很多时候,线上服务器的进程在某时间段内长时间占用CPU过高,为了优化,我们需要找出原因。 1、找出占用CPU最高的10个进程 或查看占用内存最高的10个进程 或者使用 top ,按 1 显示CPU列表,再按 shift+p 以CPU排序 2、对进程进行跟踪查看 查看进程打开的文件 查看进程在处理的文 阅读全文