服务器
文章平均质量分 52
韭零后程序猿
一个90后程序猿的技术分享
展开
-
php设计模式——简单工厂模式
简单工厂是什么?简单工厂是由三部分组成:1个工厂类1个接口类或抽象类多个具体实现各部分之间的关系:接口或抽象类定义待开发功能的整体结构,需要哪些实现多个具体实现继承接口或抽象类具体实现功能。简单工厂来创建具体实现的实例进行调用关系图:简单工厂有什么用?最常用的就是用于流程控制解耦,比如输入一个参数,根据参数不同进行不同的操作。不解耦的话就是全部写在一个方法里,很乱。另一个用处就是方便扩展,防止需求三天两头变更带来的麻烦,设计好了以后要增加新的流程直接增加新的类就好了。下面以原创 2021-07-02 11:35:22 · 253 阅读 · 2 评论 -
php设计模式1——单例模式
单例模式是什么?一个类没new一次就会创建一个新的实例,而单例模式则是每次获取的都是同一个实例,在整个项目生命周期中通过单例创建的同一个类的实例都有且只有一个。为什么要使用单例模式?一些特殊的场景中我们需要每次都使用同一个实例,创建多个实例会造成额外的开支,浪费性能。比如:mysql连接,redis连接等。单例模式的使用方法:结构:4私一公私有化构造方法: 防止使用 new 创建多个实例;私有化克隆方法: 防止 clone 多个实例;私有化重建方法: 防止反序列化私有化静态属性: 防止原创 2021-07-01 10:07:18 · 211 阅读 · 0 评论 -
php设计模式学习记录——前言
设计模式是什么?设计模式不是被创造出来的,是前辈编写代码的经验的总结,是一种编码模式,追求代码的可维护性,设计模式本质作用是代码复用,目的是建立对象之间的关联,提供了一系列代码解耦的解决方案。后由GOF整理成《Design Patterns: Elements of Reusable Object-Oriented Software》一书。GOF(Gang of Four) 是 4位作者的合称,一般叫他们 4人帮 ;为什么要使用设计模式?随着项目越来越大,人员流动等原因,导致代码越来越臃肿,难以维护,原创 2021-06-30 16:12:12 · 216 阅读 · 0 评论 -
thinkphp5模型更新save和软删除delete的坑点和理解
问题一:循环更新时只有第一条数据更新成功,其它数据都不更新。官方手册中提到注意不要在一个模型实例里面做多次更新,会导致部分重复数据不再更新,正确的方式应该是先查询后更新或者使用模型类的update方法更新。只是说明了问题,但没有解释为什么,所以就没注意,导致出现这个问题。为什么会有这个问题?在Model.php模型save方法最后大概1214行// 重新记录原始数据$this->origin = $this->data;origin这个属性记录了原始数据,不管是更新还是写入原创 2021-06-28 17:37:54 · 894 阅读 · 3 评论 -
php中PSR-[0-4]代码规范学习记录
php中PSR-[0-4]代码规范学习记录1. PSR是什么?PSR是一套代码编写规范,用于约束代码风格。以前没有规范的时候大家都是按照自己的习惯来书写代码,但每个人风格不一样,你的代码在别人看来就是很不爽。而且会导致许多问题:function 函数名是否驼峰命名,花括号{}是否换行写,是该写注释呢还是不写变量名是大写还是小写,一个php文件中是一个类好还是允许有多个所以PSR-[0-4]规范就应运而生,大家都共同遵守,就没有风格差异了。PSR是由PHP-FIG这个组织发明的,FIG 是原创 2021-06-27 19:04:13 · 253 阅读 · 1 评论 -
PHP自动加载学习记录
1. 什么是自动加载?自动加载就是在实例化类的时候,PHP自动帮我们把需要用到的文件给require进来,不需要我们手动一个一个去require;自动加载可以说是现代PHP框架的核心基础,就像地基一样,像Laravel,thinkphp,yii2等框架都是基于自动加载实现的文件自动载入。2. 如何实现?1. __autoload()方法实现自动加载index.php<?phpfunction __autoload($classname){ require $className . '.原创 2021-06-26 14:41:58 · 124 阅读 · 2 评论 -
namespace命名空间学习
1. namespace是什么?命名空间是namespace是翻译,作用是防止类名或函数名重复,命名重复会导致报错。以前没有命名空间的时候只能人为去防止重复,但项目上了一定规模难以避免这个问题,因此,在php5.3版本推出了namespace。2. namespace的简单使用使用比较简单,下面举个例子1. 先是不用namespace的方式Foo.php<?phpclass Test { public static function index(){ echo 'hello wor原创 2021-06-26 10:29:35 · 606 阅读 · 0 评论 -
验证码识别工具GraphicsMagick1.3.25和Tesseract-OCR4.0.0 Linux安装部署过程记录
GraphicsMagick1.3.25安装安装相关依赖包yum install -y gcc libpng libjpeg libpng-devel libjpeg-devel ghostscript libtiff libtiff-devel freetype freetype-devel下载GraphicsMagickwget ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/1.3/GraphicsMagick-1.3.25.tar.g原创 2021-03-04 20:32:44 · 267 阅读 · 1 评论 -
TP5使用phpexce上传导入csv文件
前端上传使用layui.upload组件,具体参考Layui手册php://主逻辑//限制上传表格类型$file_type = $_FILES['excel_import']['type'];if ($file_type!='application/vnd.ms-excel') { return [RESULT_ERROR,'上传失败,只能上传excel表格!'];}if (i...原创 2019-01-02 14:33:55 · 1293 阅读 · 0 评论 -
一些服务器常用命令笔记
查看网络流量命令: iftop -i eth0 -P查看当前80端口连接数: netstat -ant | grep $ip:80 | grep EST | wc -l查看目录大小: du -sh /var/*查看apache进程数量: ps -ef|grep http | wc -l...原创 2018-11-14 10:15:15 · 290 阅读 · 0 评论 -
记一次后台被入侵的事件及反思
前几天后台被入侵,造成服务器瘫痪数个小时,虽然数据都没有丢失,但是也着实吓出一身汗,下面还原整个事件晚上10点左右,有人反应进不去app了,我还以为是玩笑,结果是服务器文件被删除了,赶紧停服务查看,config表被清空,菜单表被清空,查看日志发现有人使用admin账号在后台为所欲为,但是此人没有登录的日志,先不管,先恢复数据再说好在被删除的数据都有备份,直接恢复了,业务数据虽然被删除了一部分,...原创 2018-11-14 10:13:32 · 2462 阅读 · 0 评论 -
mysql主从复制及数据备份恢复
1、主从服务器分别作以下操作: 1.1、版本一致 1.2、初始化表,并在后台启动mysql 1.3、修改root的密码2、修改主服务器master: #vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[必须]启用二进制日志 server-id=2...原创 2018-08-03 13:24:55 · 1962 阅读 · 0 评论 -
PHPEXCEL导出excel表格中长数字文本自动转为科学计数法的解决办法
方法一:前面加空格;$objActSheet->setCellValue('A1', ' '.'330602198804224688');方法二:$objActSheet->setCellValueExplicit('A1', '330602198804224688', PHPExcel_Cell_DataType::TYPE_STRING);方法三:$objAct原创 2018-01-29 15:42:40 · 9301 阅读 · 0 评论 -
thinkphp5数据集和模型关系的理解
数据集tp5可以通过全局配置'resultset_type' => 'collection',来定义查询的结果集类型. 可选值有collection,array,默认值是array 需要注意的是 即使配置的结果集是数组,使用模型查询出来的数据也只有最外层是数组,数据列表中的每个元素仍旧是对象 (可使用collection()助手函数转换为对象结果集) ,使用Db::name('use原创 2018-01-25 11:46:28 · 2321 阅读 · 1 评论 -
nginx服务器高并发优化思路
思维导图:原创 2017-09-25 14:30:52 · 1359 阅读 · 0 评论 -
nginx反向代理和负载均衡
反向代理:在nginx的location中使用proxy_pass http://xxxxx;即可实现反向代理到任意服务器location ~* .php{ proxy_pass http://127.0.0.1:8080;}负载均衡:将多台服务器使用upstream绑定到一起取个名字,再使用proxy_pass代理到这个名字即可实现负载均衡//此命令和location同级upstrea原创 2017-09-25 11:36:49 · 259 阅读 · 0 评论 -
centos7s升级安装php5.6
今天在新购的阿里云上部署个phpmyadmin,结果显示了个如下信息:PHP 5.5+ is required. Currently installed version is: 5.4.16系统是centos7.2,phpmyadmin的版本是4.6.5.2最新,降版本的妥协方法不是自己的性格,在参考一番资料后部署正常,记录如下。进入终端后查看php版本:php -v 输出可能如下:PHP 5.转载 2017-05-11 10:45:01 · 1614 阅读 · 0 评论 -
centos下Apache服务器ThinkPHP伪静态的设置方法
windows下的apache配置在linux下有所不同,linux下查看phpinfo下能找到mod_rewrite模块则表示加载了重写模块,不必管配置文件是否有有加载. 确认加载了模块后需要更改配置文件 更改需要读取 .htaccess 文件的目录,将原来的目录注释掉:<Directory ”C:/Program Files/ApacheGroup/Apache2/htdocs”>原创 2017-05-11 10:58:20 · 3406 阅读 · 0 评论 -
centos7 apache配置ssl支持tlsv1.0 1.1 1.2
按照阿里云的证书配置如下安装证书: 文件说明: 1. 证书文件214089425050896.pem,包含两段内容,请不要删除任何一段内容。 2. 如果是证书系统创建的CSR,还包含:证书私钥文件214089425050896.key、证书公钥文件public.pem、证书链文件chain.pem。 ( 1 ) 在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cer原创 2017-05-11 17:25:39 · 5053 阅读 · 2 评论 -
CentOS7使用firewalld打开关闭防火墙与端口
1、firewalld的基本使用启动:systemctl start firewalld查看状态: systemctl status firewalld 停止:systemctl disable firewalld禁用:systemctl stop firewalld2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。启动转载 2017-05-10 17:43:20 · 300 阅读 · 0 评论 -
更改Wamp下网站地址栏图标
大家应该遇到这样一个问题,我们利用wamp做服务器运行网页的时候,网页地址栏显示的图标一直是wampserver默认的图标,想改一下怎么办呢?问题如下: 就是这些图标,如何自定义自己的图标,而不是wamp默认图标。 首先这个图标大小像素为16×16,大家可以自己制作,也可以上传图片来制作. 最好为ico格式的,如果想要上传图片制作的话可以访问这个网址:http://www.bitbug.net原创 2017-05-11 20:00:51 · 775 阅读 · 0 评论 -
httpd.conf文件中找不到Deny from all这句,怎么配置多站点
Apache 从2.2升级到 Apache2.4.x 后配置文件 httpd.conf 的设置方法有了大变化以前是将 deny from all 全部改成Allow from all实现外网访问现在是将Require all denied以及 Require local 都改为 Require all granted原创 2017-05-11 20:21:15 · 2909 阅读 · 0 评论 -
php获取时间
获取整点时间$todayStart= date('Y-m-d 00:00:00', time()); //2016-11-01 00:00:00$todayEnd= date('Y-m-d 23:59:59', time()); //2016-11-01 23:59:59上一天的时间戳$date = strtotime('-1 days');注意使用php代码获得时间戳时,请注意时区的设置 可原创 2017-05-11 20:24:42 · 864 阅读 · 0 评论 -
nginx,php-fpm的安装配置
在centos7.2的系统下安装nginx和php-fpmnginx安装yum install -y nginx即可完成安装配置由于之前项目使用的是apache,所以项目目录在var/www/html下面,需要更改nginx默认目录 server { listen 80 default_server; listen [::]:80 defaul原创 2017-05-13 19:54:49 · 20697 阅读 · 0 评论 -
php5.6安装event扩展备忘
centos系统安装1、安装event扩展依赖的libevent-devel包,命令行运行yum install libevent-devel -y2、安装event扩展,命令行运行(event扩展要求PHP>=5.4,PHP5.3用户请安装libevent扩展)pecl install event注意提示:Include libevent OpenSSL support [yes] : 时输入n原创 2017-05-15 11:16:11 · 1522 阅读 · 0 评论 -
canvas获取base64图片并上传php服务器
思路将图片渲染到canvas使用canvas的toDataUrl()方法获取bse64文件数据将数据和文件名发送到服务端服务端收到数据去掉”’,”前面的文件头信息使用base64_decode()解码使用file_put_contents()保存文件前端var canvas = $("canvas");var cxt = canvas[0].getContext('2d');var原创 2017-06-05 17:19:48 · 4748 阅读 · 0 评论 -
centos7下yum安装ffmpeg
安装EPEL Release,因为安装需要使用其他的repo源,所以需要EPEL支持 yum install -y epel-release 如果出现缺少Code提示,可以:sudo rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7安装完成之后,可以查看是否安装成功yum repolist 安装Nux-Dextop源导入一个Codesudo rpm原创 2017-07-11 14:02:43 · 19906 阅读 · 1 评论 -
nginx配置http自动转发https
打开nginx配置文件,找到如下位置,修改即可server { listen 80 default_server; listen [::]:80 default_server; server_name your domain;//这里填写你的域名 root /var/www/html;原创 2017-07-08 14:45:58 · 2156 阅读 · 1 评论 -
mysql操作相关合集
mysql操作将一个表改为分区表:alter table 'table' partition by hash('字段') partitions 'num' hash分区命令原创 2017-09-15 09:56:06 · 287 阅读 · 0 评论 -
centos添加普通用户禁止root登录并添加sudo权限
1. 添加用户adduser username2. 设置密码passwd ***此时一个用户就已经添加完成了,但是此时这个用户是不能使用sudo命令化身root权限的,需要root权限配置如下://第一步 找到sudoers文件whereis sudoers//第二步 获取修改权限chmod 777 /etc/sudoers//第三步 打开文件并编辑vim /etc/sudoers//找原创 2017-05-11 10:04:19 · 7095 阅读 · 0 评论