技术饭 PHP搜索引擎MeiliSearch实现全文检索

PHP搜索引擎MeiliSearch实现全文检索,Meilisearch 搜索引擎使用 Rust 语言开发,轻量,对中文搜索非常友好,几乎做到了零配置,零学习成本,部署即用,非常方便。建立在 LMDB 键值存储之上,安装在 Ubuntu 或 MacOS 上时,它以 35 MB 的二进制文件形式存在。 MeiliSearch 带有内置的客户端、服务器和 WebUI。 词干提取、停用词、同义词、排名、过滤器和分面等功能都是开箱即用的,使用合理的默认值并且可以轻松定制。

阅读全文 » 322天前
2023年06月01日

技术饭 gitee+webhook+php实现自动拉取代码

gitee+webhook+php实现自动拉取代码,在项目开发中使用git进行代码的管理,每次完成更改上传代码后,还需要登录服务器将代码拉取下来,现在git服务器(gitee/gitlab/github)都会有Webhooks功能,以实现在向git仓库推送/合并等时机让服务器自动拉取新代码。

阅读全文 » 428天前
2023年02月15日

技术饭 php函数getimagesize()函数获取腾讯云对象存储图片信息太慢解决办法

php函数getimagesize()函数获取腾讯云对象存储图片信息太慢,导致接口返回超过了5s,这个体验太不好了,按照正常逻辑:想获取图片信息,当然是用getimagesize()函数,对于getimagesize()函数而言本地服务器的文件读取相对是比较快的,但是远程的图片就太慢了,必须先现在到本地服务器,然后再获取,如果有的图片很大,那这个下载速度可想而知的慢。

阅读全文 » 883天前
2021年11月17日

技术饭 负载均衡导致wss的websocket请求被分发到其他服务器,无法实时收到消息

负载均衡导致wss的websocket请求被分发到其他服务器,无法实时收到消息,平时我们做swoole即时消息系统的时候,正常情况下就只使用一台服务器作为websocket的请求与分发,但是当加入了负载均衡之后,如果每台服务都开启了websocket,这样会导致客户端的wss请求可能随机分配到不同的服务器上,而每台服务器与客户端链接保存的fd可能重复,A服务器没办法给B服务器的客户端发送消息。

阅读全文 » 963天前
2021年08月29日

技术饭 解决两个跨域但是同站、同域、同源的域名(Sec-Fetch-Site: same-site),通过接口请求设置session_id()改变PHPSESSID的问题

解决两个跨域但是同站、同域、同源的域名(Sec-Fetch-Site: same-site),通过接口请求设置session_id()改变PHPSESSID的问题,现象:1、两个https的二级域名解析在同一台服务器上,端口都是443;2、前端域名与接口域名同时在同一个浏览器打开,接口域名登录后台生成PHPSESSID,保存了登录状态;3、前端域名请求接口域名生成验证码,验证保存在session里面,由于访问接口,每次的会话session_id都是不一致,为了实现跨域验证码的验证,这个时候需要在接口端设置session_id(随机数),然后把这个随机值返回给前端,到时候验证的时候再设置session_id(随机数),这样会话才能保持一致,验证码才能通过验证;4、由于步骤3设置session_id(随机数)重新生成PHPSESSID后,导致了步骤2登录后台的PHPSESSID被改成了步骤3设置的PHPSESSID,这时候步骤2的登录状态就消失了,直接退出登录。

阅读全文 » 978天前
2021年08月14日

技术饭 腾讯云负载均衡的使用配置

腾讯云负载均衡的使用配置,大数据大流量时代,服务器的压力越来越大,这时候负载均衡就成了流量分发的解决方案了,负载均衡(Cloud Load Balancer)是对多台 云服务器 进行流量分发的服务。负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。

阅读全文 » 983天前
2021年08月08日

技术饭 websocket 心跳包保持连接和关闭重连

websocket 心跳包保持连接和关闭重连,在开启了swoole服务之后,浏览器链接websocket链接之后,发送数据正常,但是过一段时间如果浏览器没有重新请求服务器会自动的断开会话,这样就不能发送数据了,为了保持链接需要做一个链接服务器的心跳请求。

阅读全文 » 1112天前
2021年04月02日

技术饭 ERROR: ld.so: object '/usr/local/lib/libftp.so' from /etc/ld.so.preload cannot be preloaded: ignored

ERROR: ld.so: object '/usr/local/lib/libftp.so' from /etc/ld.so.preload cannot be preloaded: ignored,今天打开阿里云centos的控制面板出现了这种情况,有点懵逼,就重启了下服务器,就一直报这种错误,然后定时任务还被设置成了0,定时任务改回来,15分钟左右又被篡改成了0,估摸着应该是被植入了病毒,想想这台服务器之前因为Redis没有设置密码就已经出现过定时任务文件被篡改的情况,当时还没在意。

阅读全文 » 1213天前
2020年12月22日

技术饭 Centos8 mysql5.6升级至5.7

Centos8 mysql5.6升级至5.7,说实话mysql的升级安装是最头疼的事情,升级过程中要是一不小心出了错,那就是mysql服务器启动不了,而且启动不了的报错还无法知道是哪里错了,真的很麻烦~~~

阅读全文 » 1213天前
2020年12月22日

技术饭 本地开发环境nginx配置HTTPS,使用https证书

本地开发环境nginx配置HTTPS,使用https证书,我们访问的所有网站几乎都是受HTTPS保护的。如果你的站点还没有,那你应该使用它。使用HTTPS保护服务器也意味着你不能从不是HTTPS服务器向此服务器发送请求。这给使用本地开发环境的开发人员带来了一个问题,因为它们都运行在开箱即用的http://localhost环境中。

阅读全文 » 1226天前
2020年12月09日

技术饭 阿里云负载均衡SLB服务器配置与服务器NGINX的301跳转处理方案

正常我们做小项目都是使用一台服务就可以完成了,但是对于并发数高,流量的的一台服务器正常是扛不住的,并发一高CPU就蹭蹭蹭往上飙,直到服务器超负载奔溃为止,所以我们就有理由去做多台服务器的负载均衡,当然你如果有钱也可以买一台配置超牛逼的服务器,本篇就讲讲简单的阿里云负载均衡SLB服务器配置。

阅读全文 » 1249天前
2020年11月15日

技术饭 阿里云OSS文件的上传与下载

这几天弄了下新项目的负载均衡之后,文件为了统一管理,就同时也采用了阿里云的OSS作为文件存储方式,文件统一的管理解决了负载均衡文件生成在服务器上找不到文件的尴尬,当然了,也可以自己做一台专门的服务器来存储文件,但是毕竟阿里云相对成熟,还稳定,所以有钱还是用第三方存储能解决大部分的问题。

阅读全文 » 1249天前
2020年11月15日

技术饭 centos8重新安装MySQL,从高版本降到低版本后疯狂报错

centos8重新安装MySQL,从高版本降到低版本后疯狂报错。原来服务器centos8是默认yum install mysql的,mysql的版本是8.0.21,但是原始项目的数据库过度过去之后,数据库报错了,说是8.0.17版本之后int、tinyint类的字段长度被废弃不再显示了:mysql8.0 tinyint字段长度修改时无效,所以就想把mysql版本降到5.7.32版本,本来是先yum remove mysql,因为没有删除遗留的mysql文件、目录导致了安装5.7.32版本一直报错。

阅读全文 » 1254天前
2020年11月11日

技术饭 POST参数超过1000后,$_POST中1000以后的参数丢失,但是php5.6 max_input_vars 修改无反应?

之前做了图片文件上传到阿里云oss存储中,阿里本身的传输没有问题,但是在当保存到自己数据库的时候就报错了,第一次报错是id不存在,本来数据表就是一条记录,更新的主键ID竟然不存在,查了下js传过过来的formdata参数正常,但是$_POST就只仅仅取到了一部分数据,剩余的数据丢失了,想想应该是php限制的问题,最终确定是参数: max_input_vars 默认限制了1000,本来是改成了5000,但是测了还是没效果,查了phpinfo()发现:php-fpm重启之后 max_input_vars 的值并没有改变,多方查证发现服务器的php配置原来是外包公司配置的,外包公司把配置文件改到了 php-fpm.conf 文件里面,所以原始的php.ini中的参数就失效了,无论设置成什么都会失效。

阅读全文 » 1311天前
2020年09月14日

技术饭 微信开放平台中第三方平台api接口的对接与实现

微信开放平台中第三方平台api接口的对接与实现,最近为了做微信开放平台的第三方平台也是花费了两周多的时间,中间碰到各种坑,以前如果要帮助第三方公众号做开放,也是直接把第三方的开发信息改成自己服务器的,但是这样不方便,不同服务商每做一个活动都要重新改一次,所以只能使用公众号授权第三方平台来实现这样的功能了。

阅读全文 » 1329天前
2020年08月28日

技术饭 AikehouA 5.2.0版本,最新版安装出现 HTTP ERROR 500 错误解决方案

今天在使用最新版AikehouA 5.2.0版本时,出现 HTTP ERROR 500 错误,调试了许久,查了nginx的错误日志等,断调试代码,一直没有找到确切的原因,后来在本地php7.0环境、自己服务器php7.0环境测试,安装没有任何问题,故此判断是因为最新版本composer加载了必须支持php7.0的插件,php5.6.x的环境不支持php7.0的一些方法,所以这里就需要删除一些composer包,更新vendor目录即可解决问题。

阅读全文 » 1504天前
2020年03月06日

技术饭 MySQL崩溃与致命错误:无法为缓冲池分配内存

我们有几个网站在运行,拥有1GB的实例。服务器运完美无暇运行5个月,然后MySQL开始崩溃,每隔几天,mysql错误日志中出现以下错误。

阅读全文 » 1646天前
2019年10月16日

技术饭 thinkphp5.1.27使用PhpSpreadsheet下载表格 php://output 报错ERR_INVALID_RESPONSE

thinkphp5.1.27使用PhpSpreadsheet下载表格 php://output 报错ERR_INVALID_RESPONSE,有些服务器可以正常,网上的解释都是说确认php_zip,php_gd2,php_xml是否开启,经过测试都开启了却还是不行,最终看了先thinkphp5的输出方式是return,所以在 php://output 前面加个return输出即可。

阅读全文 » 1674天前
2019年09月18日

技术饭 Linux 无法 ping通外网,Could not resolve host: api.weixin.qq.com; Unknown error

微信通信错误是不少微擎用户遇到的问题,之前菠菜哥曾经发过两篇关于该错误的解决办法,截止到目前位置加微信咨询解决的有100多人了,但发现很多朋友是linux服务器,今天重点说一下Linux服务器的该错误修复。

阅读全文 » 1728天前
2019年07月25日

技术饭 163邮箱smtp端口 25 不能用的解决方案

这几天要做邮箱发送验证码找回密码测试,本来在本地测试环境是没有任何问题的,可是部署到服务器上就是不行,一直报504错误,找了大半天的解决方案都不行,后续就看了163官方的邮件配置端口,确定是端口问题,切换成ssl方式然后端口改成465即可。

阅读全文 » 1917天前
2019年01月17日

技术饭 Nginx/Tengine服务器安装SSL证书

Nginx/Tengine服务器安装SSL证书,在证书控制台下载Nginx版本证书。下载到本地的压缩文件包解压后包含:.crt文件:是证书文件,crt是pem文件的扩展名。.key文件:证书的私钥文件(申请证书时如果没有选择自动创建CSR,则没有该文件)

阅读全文 » 1940天前
2018年12月26日

技术饭 nginx+php使用open_basedir限制站点目录防止跨站

今天在帮助一个朋友配置一台服务器时发现网站配置好了缓存目录读写不成功,在打开错误时发现提示 Warning: file_exists() [function.file-exists]: open_basedir restriction in effect. File(../license.php) is not within the allowed path(s): 错误了。

阅读全文 » 1942天前
2018年12月24日

技术饭 Nginx实现负载均衡的几种方式

什么是负载均衡,当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。

阅读全文 » 2016天前
2018年10月11日

技术饭 php解决高并发问题

我们通常衡量一个Web系统的吞吐率的指标是QPS(Query Per Second,每秒处理请求数),解决每秒数万次的高并发场景,这个指标非常关键。举个例子,我们假设处理一个业务请求平均响应时间为100ms,同时,系统内有20台Apache的Web服务器,配置MaxClients为500个(表示Apache的最大连接数目)。

阅读全文 » 2016天前
2018年10月11日

技术饭 thinkphp5分页抓取数据并入库

PHP可以通过curl抓取其他网站接口数据,抓取到的数据量有时候很多,这个时候如果进行入库的话会造成执行时间过长而停止报错500,解决方案有:1、php配置值max_execution_time修改大一些,还有就是nginx的执行时间也可以修改大一些,但这回造成网页一直卡着也很消耗服务器内存;2、进行分页抓取。

阅读全文 » 2018天前
2018年10月09日

技术饭 PHP数据传输神器CURL详解

我们在使用PHP开发网站的后台的时候,有时候需要在PHP代码中请求某一个网页,比如在微信开发中,我们在代码中请求微信服务器地址,得到开发凭证access_token,这时候使用CURL来处理请求是最合适的。如果你想使用PHP来开发微信,那么CURL是一个必备的知识点。

阅读全文 » 2020天前
2018年10月07日

技术饭 curl文件上传至远程图片服务器

在这里我们利用curl实现把本地服务器的文件通过curl发送请求给远程服务器的php文件接受就实现了上传,还一个是利用ftp来上传方法也是php中的curl操作ftp服务器进行上传。

阅读全文 » 2020天前
2018年10月07日

技术饭 PHP文件上传实现上传到另一台服务器

本文讲的是PHP文件上传实现上传到另一台服务器, ftp_connect() 函数建立一个新的 FTP 连接。 若成功,则返回一个连接标识,否则返回 false。 语法 host 必需。规定要连接的 FTP 服务器。可以是域名或 IP 地址。 后面不应以斜线结尾,前面也不需要用。

阅读全文 » 2020天前
2018年10月07日

技术饭 Nginx配置多个虚拟主机,多级域名不能无法配置问题

Nginx配置多个虚拟主机,多级域名不能无法配置问题,could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32,保存服务器名字的hash表是由指令 server_names_hash_max_size 和 server_names_hash_bucket_size所控制的。

阅读全文 » 2228天前
2018年03月13日

技术饭 分页直接加载页面的ajax请求方式

分页直接加载页面的ajax请求方式,AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。AJAX 是一种用于创建快速动态网页的技术。AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

阅读全文 » 2375天前
2017年10月17日

技术饭 针对爱客猴echoCMS存在远程代码执行漏洞解决方案

最近阿里针对tp3.2.3框架进行了检查,并发公告称tp3.2.3的文件缓存机制很容易被破解,如果使用了文件缓存未设置 DATA_CACHE_KEY 会造成任意代码执行,这个会对整个服务器以及数据造成很大的困扰,tp官方也第一时间辟谣称框架本身没有问题,只是需要设置 DATA_CACHE_KEY 这个值让攻击者不容易猜到即可。

阅读全文 » 2394天前
2017年09月27日

技术饭 Centos下MySQL出现Unknown/unsupported storage engine: InnoDB的解决方案

Centos下MySQL出现Unknown/unsupported storage engine: InnoDB的解决方案,今天同事公司服务器上的mysql启动不了了,弄了一早上头大,昨天还是可以正常运行的,今天怎么突然就奔了呢,在shell里登陆mysql提示不存在sock,也就是msyql没有启动,但却可以使用stop命令,后续查看err日志中发现了一些问题。

阅读全文 » 2408天前
2017年09月14日

技术饭 centos7下php7、mysql5.7、nginx、redis、git、svn知识整理

centos7下php7、mysql5.7、nginx、redis、git、svn知识整理,由于服务器linux版本过旧,很多软件都无法更新安装,所以这几天把阿里云的服务器ECS的盘进行升级,将老版本的aliyun系统换成了centos7系统,网站、博客都down了几天,同时也整理了一些基础知识,分享一下!

阅读全文 » 2440天前
2017年08月13日

技术饭 APP请求接口无法获取到session数据的解决方案

APP请求接口无法获取到session数据的解决方案,通过SESSION(cookie是另外一种解决办法)记录用户的有关信息,以供用户再次以此身份对web服务器提起请求时作确认。会话的发明使得一个用户在多个页面间切换时能够保存他的信息。网站编程人员都有这样的体会,每一页中的变量是不能在下一页中使用的(虽然form,url也可以实现,但这都是非常不理想的办法),而SESSION中注册的变量就可以作为全局变量使用了。

阅读全文 » 2506天前
2017年06月08日

技术饭 Redis的PHP操作手册

Redis的PHP操作手册,REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。 Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。

阅读全文 » 2533天前
2017年05月12日

技术饭 jquery的md5加密与sha1加密

jquery的md5加密与sha1加密,对于编程语言,很多情况下都会有md5加密与sha1加密,类似php、安卓、IOS都是有响应的加密方法,那么jquery有没有相应的加密方法呢?答案是肯定的,我在百度上并没有找到cdn加速,也只是找到了下载地址,所以就放在了自己的服务器上了,供大家下载!

阅读全文 » 2534天前
2017年05月11日

技术饭 Windows下Redis的安装使用注意事项

Windows下Redis的安装使用注意事项,最近开始使用redis开始开发项目,那在本地服务器搭建了redis,当时遇到的问题是:redis server went away,百度了许久一直没解决,后来折腾了许久才发现问题的所在了。

阅读全文 » 2536天前
2017年05月09日

技术饭 phpstorm如何开启xdebug调试模式

如何开启 phpstorm的xdebug调试模式?首先去下载一个phpstorm,安装教程我就不讲了,激活码百度也有,下面需要打开一个配置好的虚拟主机项目 我就拿我的演示,先打开环境中的xdebug 找到php.ini 中的xdebug.remote_autostart=Off改为On 如果没有 请自己添加保存 记得重启服务器(切记)

阅读全文 » 2592天前
2017年03月13日

技术饭 Mark:支持高并发的IIS Web服务器常用设置

Mark:支持高并发的IIS Web服务器常用设置,很多时候在使用IIS服务器的时候需要设置高并发,网上看到一些作者的文章,就转发给分享一下,适用的IIS版本:IIS 7.0, IIS 7.5, IIS 8.0,适用的Windows版本:Windows Server 2008, Windows Server 2008 R2, Windows Server 2012

阅读全文 » 2616天前
2017年02月18日

技术饭 处理mysql:事件计划已关闭 事件只能在服务器启动

处理mysql:事件计划已关闭 事件只能在服务器启动,在我们需要创建mysql事件计划的时候经常会遇到这样那样的问题,今天做了数据库移植,但是事件计划没有复制过来,所以使用navicat for mysql重新添加了事件计划但是报错:事件计划已关闭 事件只能在服务器启动。

阅读全文 » 2626天前
2017年02月08日