12.21 php-fpm的pool
时间:2022-04-27
本文章向大家介绍12.21 php-fpm的pool,主要内容包括php-fpm的pool目录概要、php-fpm的pool、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
php-fpm的pool目录概要
- vim /usr/local/php/etc/php-fpm.conf//在[global]部分增加
- include = etc/php-fpm.d/*.conf
- mkdir /usr/local/php/etc/php-fpm.d/
- cd /usr/local/php/etc/php-fpm.d/
- vim www.conf //内容如下
[www]
listen = /tmp/www.sock
listen.mode=666
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
- 继续编辑配置文件
- vim aming.conf //内容如下
[aming]
listen = /tmp/aming.sock
listen.mode=666
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
- /usr/local/php/sbin/php-fpm –t
- /etc/init.d/php-fpm restart
php-fpm的pool
- php-fpm有一个概念,叫做pool。 使用ps aux |grep php-fpm最右侧看到的那一列就是pool,也就是它的池子
[root@hanfeng ~]# ps aux |grep php-fpm
root 2280 0.0 0.4 227776 4952 ? Ss 18:29 0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm 2281 0.0 0.4 227776 4708 ? S 18:29 0:00 php-fpm: pool www
php-fpm 2282 0.0 0.4 227776 4708 ? S 18:29 0:00 php-fpm: pool www
php-fpm 2283 0.0 0.4 227776 4708 ? S 18:29 0:00 php-fpm: pool www
php-fpm 2284 0.0 0.4 227776 4708 ? S 18:29 0:00 php-fpm: pool www
php-fpm 2285 0.0 0.4 227776 4712 ? S 18:29 0:00 php-fpm: pool www
php-fpm 2286 0.0 0.4 227776 4712 ? S 18:29 0:00 php-fpm: pool www
php-fpm 2287 0.0 0.4 227776 4716 ? S 18:29 0:00 php-fpm: pool www
php-fpm 2288 0.0 0.4 227776 4716 ? S 18:29 0:00 php-fpm: pool www
php-fpm 2289 0.0 0.4 227776 4716 ? S 18:29 0:00 php-fpm: pool www
php-fpm 2290 0.0 0.4 227776 4716 ? S 18:29 0:00 php-fpm: pool www
php-fpm 2291 0.0 0.4 227776 4716 ? S 18:29 0:00 php-fpm: pool www
php-fpm 2292 0.0 0.4 227776 4716 ? S 18:29 0:00 php-fpm: pool www
php-fpm 2293 0.0 0.4 227776 4716 ? S 18:29 0:00 php-fpm: pool www
php-fpm 2294 0.0 0.4 227776 4716 ? S 18:29 0:00 php-fpm: pool www
php-fpm 2295 0.0 0.4 227776 4716 ? S 18:29 0:00 php-fpm: pool www
php-fpm 2296 0.0 0.4 227776 4716 ? S 18:29 0:00 php-fpm: pool www
php-fpm 2297 0.0 0.4 227776 4716 ? S 18:29 0:00 php-fpm: pool www
php-fpm 2298 0.0 0.4 227776 4716 ? S 18:29 0:00 php-fpm: pool www
php-fpm 2299 0.0 0.4 227776 4716 ? S 18:29 0:00 php-fpm: pool www
php-fpm 2300 0.0 0.4 227776 4716 ? S 18:29 0:00 php-fpm: pool www
root 7644 0.0 0.0 112680 984 pts/0 S+ 21:38 0:00 grep --color=auto php-fpm
[root@hanfeng ~]#
- 切换目录,会看到我们只定义了一个www的pool
[root@hanfeng ~]# cd /usr/local/php-fpm/etc/
[root@hanfeng etc]# ls
pear.conf php-fpm.conf php-fpm.conf.default php.ini
[root@hanfeng etc]# cat php-fpm.conf
[global]
pid = /usr/local/php-fpm/var/run/php-fpm.pid
error_log = /usr/local/php-fpm/var/log/php-fpm.log
[www]
listen = /tmp/php-fcgi.sock
listen.mode = 666
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
[root@hanfeng etc]#
- 其实是支持定义多个池子的,每一个池子都可以监听不同的sock或者TCP/IP,nginx如果有多个站点,那么每个站点都能去使用一个独立的pool,这样做的优势就是,当其中一个php发生502了(502很有可能是资源不够了),如果所有的网站使用了同一个池子,那其中一个网站发生了故障(比如写的程序有问题),那么就会把你的php资源耗尽,这样就会造成其他的站点也会502,所以有必要把每一个站点隔离开来,每一个站点使用独立的pool
- 设置多个pool,方法一
- 在/usr/local/php-fpm/etc/php-fpm里面,继续增加pool
- 写第二个pool,名称为hanfeng.com,listen = /tmp/hanfeng.sock
- 配置中的其他信息可根据自己的需求来配置
[root@hanfeng etc]# vi /usr/local/php-fpm/etc/php-fpm.conf
[global]
pid = /usr/local/php-fpm/var/run/php-fpm.pid
error_log = /usr/local/php-fpm/var/log/php-fpm.log
[www]
listen = /tmp/php-fcgi.sock
listen.mode = 666
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
[hanfeng.com]
listen = /tmp/hanfeng.sock
listen.mode = 666
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
保存退出
- 检查是否存在语法错误
[root@hanfeng etc]# /usr/local/php-fpm/sbin/php-fpm -t
[09-Jan-2018 23:28:58] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
[root@hanfeng etc]#
- 若没有语法错误,做一个php-fpm重启
- /etc/init.d/php-fpm restart 或使用 /etc/init.d/php-fpm reload
[root@hanfeng etc]# /etc/init.d/php-fpm reload
Reload service php-fpm done
[root@hanfeng etc]#
- 这里再来ps查看,会看到最右侧多了一个hanfeng.com,这个就是两个不同的池子
[root@hanfeng etc]# ps aux |grep php-fpm
root 7731 0.0 0.4 227836 4964 ? Ss 22:32 0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm 7732 0.0 0.4 227776 4708 ? S 22:32 0:00 php-fpm: pool www
php-fpm 7733 0.0 0.4 227776 4708 ? S 22:32 0:00 php-fpm: pool www
php-fpm 7734 0.0 0.4 227776 4708 ? S 22:32 0:00 php-fpm: pool www
php-fpm 7735 0.0 0.4 227776 4708 ? S 22:32 0:00 php-fpm: pool www
php-fpm 7736 0.0 0.4 227776 4712 ? S 22:32 0:00 php-fpm: pool www
php-fpm 7737 0.0 0.4 227776 4712 ? S 22:32 0:00 php-fpm: pool www
php-fpm 7738 0.0 0.4 227776 4712 ? S 22:32 0:00 php-fpm: pool www
php-fpm 7739 0.0 0.4 227776 4712 ? S 22:32 0:00 php-fpm: pool www
php-fpm 7740 0.0 0.4 227776 4712 ? S 22:32 0:00 php-fpm: pool www
php-fpm 7741 0.0 0.4 227776 4712 ? S 22:32 0:00 php-fpm: pool www
php-fpm 7742 0.0 0.4 227776 4716 ? S 22:32 0:00 php-fpm: pool www
php-fpm 7743 0.0 0.4 227776 4716 ? S 22:32 0:00 php-fpm: pool www
php-fpm 7744 0.0 0.4 227776 4716 ? S 22:32 0:00 php-fpm: pool www
php-fpm 7745 0.0 0.4 227776 4716 ? S 22:32 0:00 php-fpm: pool www
php-fpm 7746 0.0 0.4 227776 4716 ? S 22:32 0:00 php-fpm: pool www
php-fpm 7747 0.0 0.4 227776 4716 ? S 22:32 0:00 php-fpm: pool www
php-fpm 7748 0.0 0.4 227776 4716 ? S 22:32 0:00 php-fpm: pool www
php-fpm 7749 0.0 0.4 227776 4716 ? S 22:32 0:00 php-fpm: pool www
php-fpm 7750 0.0 0.4 227776 4716 ? S 22:32 0:00 php-fpm: pool www
php-fpm 7751 0.0 0.4 227776 4716 ? S 22:32 0:00 php-fpm: pool www
php-fpm 7752 0.0 0.4 227776 4712 ? S 22:32 0:00 php-fpm: pool hanfeng.com
php-fpm 7753 0.0 0.4 227776 4712 ? S 22:32 0:00 php-fpm: pool hanfeng.com
php-fpm 7754 0.0 0.4 227776 4712 ? S 22:32 0:00 php-fpm: pool hanfeng.com
php-fpm 7755 0.0 0.4 227776 4712 ? S 22:32 0:00 php-fpm: pool hanfeng.com
php-fpm 7756 0.0 0.4 227776 4716 ? S 22:32 0:00 php-fpm: pool hanfeng.com
php-fpm 7757 0.0 0.4 227776 4716 ? S 22:32 0:00 php-fpm: pool hanfeng.com
php-fpm 7758 0.0 0.4 227776 4720 ? S 22:32 0:00 php-fpm: pool hanfeng.com
php-fpm 7759 0.0 0.4 227776 4720 ? S 22:32 0:00 php-fpm: pool hanfeng.com
php-fpm 7760 0.0 0.4 227776 4720 ? S 22:32 0:00 php-fpm: pool hanfeng.com
php-fpm 7761 0.0 0.4 227776 4720 ? S 22:32 0:00 php-fpm: pool hanfeng.com
php-fpm 7762 0.0 0.4 227776 4720 ? S 22:32 0:00 php-fpm: pool hanfeng.com
php-fpm 7763 0.0 0.4 227776 4720 ? S 22:32 0:00 php-fpm: pool hanfeng.com
php-fpm 7764 0.0 0.4 227776 4720 ? S 22:32 0:00 php-fpm: pool hanfeng.com
php-fpm 7765 0.0 0.4 227776 4720 ? S 22:32 0:00 php-fpm: pool hanfeng.com
php-fpm 7766 0.0 0.4 227776 4720 ? S 22:32 0:00 php-fpm: pool hanfeng.com
php-fpm 7767 0.0 0.4 227776 4720 ? S 22:32 0:00 php-fpm: pool hanfeng.com
php-fpm 7768 0.0 0.4 227776 4720 ? S 22:32 0:00 php-fpm: pool hanfeng.com
php-fpm 7769 0.0 0.4 227776 4720 ? S 22:32 0:00 php-fpm: pool hanfeng.com
php-fpm 7770 0.0 0.4 227776 4720 ? S 22:32 0:00 php-fpm: pool hanfeng.com
php-fpm 7771 0.0 0.4 227776 4720 ? S 22:32 0:00 php-fpm: pool hanfeng.com
root 7775 0.0 0.0 112676 988 pts/0 R+ 22:39 0:00 grep --color=auto php-fpm
[root@hanfeng etc]#
- 在nginx中使用新的pool
[root@hanfeng etc]# cd /usr/local/nginx/conf/vhost/
[root@hanfeng vhost]# ls
aaa.com.conf load.conf proxy.conf ssl.conf test.com.conf
[root@hanfeng vhost]#
- 可以把test.com.conf定义成fastcgi_pass unix:/tmp/php-fcgi.sock;
- 这是www池子中的php-fcgi.sock
[root@hanfeng vhost]# vim test.com.conf
server
{
listen 80;
server_name test.com test1.com test2.com;
index index.html index.htm index.php;
root /data/wwwroot/test.com;
if ($host != 'test.com' ) {
rewrite ^/(.*)$ http://test.com/$1 permanent;
}
# location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
# {
# expires 7d;
# access_log off;
#}
location ~* ^.+.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$
{
expires 7d;
valid_referers none blocked server_names *.test.com ;
if ($invalid_referer) {
return 403;
}
access_log off;
}
location ~ .*.(js|css)$
{
expires 12h;
access_log off;
}
location /admin/
{
allow 192.168.202.130;
allow 127.0.0.1;
deny all;
}
location ~ .php$
{
include fastcgi_params;
fastcgi_pass unix:/tmp/php-fcgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name;
}
access_log /tmp/test.com.log combined_realip;
}
- 再把另一个aaa.com.conf中 fastcgi_pass unix:/tmp/hanfeng.sock;
- 这是hanfeng.com池子中的hanfeng.sock
- 路径/data/wwwroot/default$fastcgi_script_name;
[root@hanfeng vhost]# vim aaa.com.conf
server
{
listen 80 default_server;
server_name aaa.com;
index index.html index.htm index.php;
root /data/wwwroot/default;
}
location ~ .php$
{
include fastcgi_params;
fastcgi_pass unix:/tmp/hanfeng.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/wwwroot/default$fastcgi_script_name;
}
保存退出
- 这样这两个站点就隔离开了
- 假设现在test.com请求量很大,最终将进程耗尽了,比如php-fpm耗尽了,这时候又有其他请求来了,就会报502,因为没有多余的php给进程提供服务了,而另一个站点则不受影响,因为使用的是另一个池子,另一个pool,这就是定义多个池子的原因
方法二
- 在vhost目录下是多个.conf文件,在nginx.conf里面加了一条 include vhost/*.conf;
[root@hanfeng vhost]# ls
aaa.com.conf load.conf proxy.conf ssl.conf test.com.conf
[root@hanfeng vhost]# tail ../nginx.conf
tcp_nodelay on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 8k;
gzip_comp_level 5;
gzip_http_version 1.1;
gzip_types text/plain application/x-javascript text/css text/htm
application/xml;
include vhost/*.conf;
}
[root@hanfeng vhost]#
- 在php-fpm同样是支持 include vhost/*.conf;
- 在主配置文件php-fpm中的 [global] 加入include = etc/php-fpm.d/*.conf ,并将池子拆分出来,将其中的池子pool删除
- 快速删除内容方法,100dd就会给删除
[root@hanfeng etc]# cat php-fpm.conf
[global]
pid = /usr/local/php-fpm/var/run/php-fpm.pid
error_log = /usr/local/php-fpm/var/log/php-fpm.log
[www]
listen = /tmp/php-fcgi.sock
listen.mode = 666
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
[hanfeng.com]
listen = /tmp/hanfeng.sock
listen.mode = 666
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
[root@hanfeng etc]#
最终如下
[root@hanfeng etc]# vim php-fpm.conf
[global]
pid = /usr/local/php-fpm/var/run/php-fpm.pid
error_log = /usr/local/php-fpm/var/log/php-fpm.log
include = etc/php-fpm.d/*.conf
- 因为include = etc/php-fpm.d/,所以需要创建/php-fpm.d/的目录
[root@hanfeng etc]# mkdir php-fpm.d
[root@hanfeng etc]#
- 切换路径,并创建www.conf,然后将之前php-fpm.conf中的www部分写入到其中
[root@hanfeng etc]# cd !$
cd php-fpm.d
[root@hanfeng php-fpm.d]# vim www.conf
[www]
listen = /tmp/php-fcgi.sock
listen.mode = 666
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
保存退出
- 然后在创建hanfeng.conf
[root@hanfeng php-fpm.d]# vim hanfeng.conf
[hanfeng.com]
listen = /tmp/hanfeng.sock
listen.mode = 666
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
保存退出
- 这样看着就会很干净,类似于nginx的vhost
- 检查是否有错误
[root@hanfeng php-fpm.d]# /usr/local/php-fpm/sbin/php-fpm -t
[09-Jan-2018 23:28:58] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
[root@hanfeng php-fpm.d]#
- 然后重启查看
[root@hanfeng php-fpm.d]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
[root@hanfeng php-fpm.d]# !ps
ps aux |grep php-fpm
root 7832 0.2 0.4 227864 4980 ? Ss 23:29 0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm 7833 0.0 0.4 227804 4712 ? S 23:29 0:00 php-fpm: pool hanfeng.com
php-fpm 7834 0.0 0.4 227804 4712 ? S 23:29 0:00 php-fpm: pool hanfeng.com
php-fpm 7835 0.0 0.4 227804 4712 ? S 23:29 0:00 php-fpm: pool hanfeng.com
php-fpm 7836 0.0 0.4 227804 4712 ? S 23:29 0:00 php-fpm: pool hanfeng.com
php-fpm 7837 0.0 0.4 227804 4716 ? S 23:29 0:00 php-fpm: pool hanfeng.com
php-fpm 7838 0.0 0.4 227804 4716 ? S 23:29 0:00 php-fpm: pool hanfeng.com
php-fpm 7839 0.0 0.4 227804 4716 ? S 23:29 0:00 php-fpm: pool hanfeng.com
php-fpm 7840 0.0 0.4 227804 4716 ? S 23:29 0:00 php-fpm: pool hanfeng.com
php-fpm 7841 0.0 0.4 227804 4716 ? S 23:29 0:00 php-fpm: pool hanfeng.com
php-fpm 7842 0.0 0.4 227804 4716 ? S 23:29 0:00 php-fpm: pool hanfeng.com
php-fpm 7843 0.0 0.4 227804 4720 ? S 23:29 0:00 php-fpm: pool hanfeng.com
php-fpm 7844 0.0 0.4 227804 4720 ? S 23:29 0:00 php-fpm: pool hanfeng.com
php-fpm 7845 0.0 0.4 227804 4720 ? S 23:29 0:00 php-fpm: pool hanfeng.com
php-fpm 7846 0.0 0.4 227804 4720 ? S 23:29 0:00 php-fpm: pool hanfeng.com
php-fpm 7847 0.0 0.4 227804 4720 ? S 23:29 0:00 php-fpm: pool hanfeng.com
php-fpm 7848 0.0 0.4 227804 4720 ? S 23:29 0:00 php-fpm: pool hanfeng.com
php-fpm 7849 0.0 0.4 227804 4720 ? S 23:29 0:00 php-fpm: pool hanfeng.com
php-fpm 7850 0.0 0.4 227804 4720 ? S 23:29 0:00 php-fpm: pool hanfeng.com
php-fpm 7851 0.0 0.4 227804 4720 ? S 23:29 0:00 php-fpm: pool hanfeng.com
php-fpm 7852 0.0 0.4 227804 4720 ? S 23:29 0:00 php-fpm: pool hanfeng.com
php-fpm 7853 0.0 0.4 227804 4716 ? S 23:29 0:00 php-fpm: pool www
php-fpm 7854 0.0 0.4 227804 4716 ? S 23:29 0:00 php-fpm: pool www
php-fpm 7855 0.0 0.4 227804 4716 ? S 23:29 0:00 php-fpm: pool www
php-fpm 7856 0.0 0.4 227804 4716 ? S 23:29 0:00 php-fpm: pool www
php-fpm 7857 0.0 0.4 227804 4720 ? S 23:29 0:00 php-fpm: pool www
php-fpm 7858 0.0 0.4 227804 4720 ? S 23:29 0:00 php-fpm: pool www
php-fpm 7859 0.0 0.4 227804 4724 ? S 23:29 0:00 php-fpm: pool www
php-fpm 7860 0.0 0.4 227804 4724 ? S 23:29 0:00 php-fpm: pool www
php-fpm 7861 0.0 0.4 227804 4724 ? S 23:29 0:00 php-fpm: pool www
php-fpm 7862 0.0 0.4 227804 4724 ? S 23:29 0:00 php-fpm: pool www
php-fpm 7863 0.0 0.4 227804 4724 ? S 23:29 0:00 php-fpm: pool www
php-fpm 7864 0.0 0.4 227804 4724 ? S 23:29 0:00 php-fpm: pool www
php-fpm 7865 0.0 0.4 227804 4724 ? S 23:29 0:00 php-fpm: pool www
php-fpm 7866 0.0 0.4 227804 4724 ? S 23:29 0:00 php-fpm: pool www
php-fpm 7867 0.0 0.4 227804 4724 ? S 23:29 0:00 php-fpm: pool www
php-fpm 7868 0.0 0.4 227804 4724 ? S 23:29 0:00 php-fpm: pool www
php-fpm 7869 0.0 0.4 227804 4724 ? S 23:29 0:00 php-fpm: pool www
php-fpm 7870 0.0 0.4 227804 4724 ? S 23:29 0:00 php-fpm: pool www
php-fpm 7871 0.0 0.4 227804 4724 ? S 23:29 0:00 php-fpm: pool www
php-fpm 7872 0.0 0.4 227804 4724 ? S 23:29 0:00 php-fpm: pool www
root 7874 0.0 0.0 112676 988 pts/0 R+ 23:29 0:00 grep --color=auto php-fpm
[root@hanfeng php-fpm.d]#
- 这就是多个池子的配置方法
- Linux系统zip压缩命令详细参数,附文件排除选项的正确用法
- 浅谈Android自定义锁屏页的发车姿势
- 移动App入侵与逆向破解技术-iOS篇
- 启用WP Super Cache纯代码版本之后的一些优化措施
- WP Super Cache静态缓存插件纯代码版(兼容多域名网站)
- 【Dev Club分享】React Native项目实战总结。
- HTML 5 视频直播一站式扫盲
- Golang之chan/goroutine
- 原创插件:WordPress博客友好对话框+文章随机推荐滚动条插件(附代码版)
- php平滑重启nginx,彻底清除WordPress的静态缓存
- 解耦---Hybrid H5跨平台性思考
- GO语言异常处理机制panic和recover分析
- WordPress前端html代码压缩优化,附对应知更鸟主题压缩报错的解决方案
- 原创插件:网站收录查询和显示WordPress插件(自定义栏目优化版)
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- Spark Pipeline官方文档
- Python-时间及日期-07-获取本周或上周几具体日期
- Spark Job-Stage-Task实例理解
- 想查看微信好友撤回的消息?Python帮你搞定
- MySQL 案例:同步中断与SQL线程类型转换
- Android端Charles抓包
- Spring boot 启动提示数据源错误
- leetcode树之从上到下打印二叉树
- 整理C/C++的可变参数
- ThingJS结合Web地图API开发,让数据展示更加出色!
- 如何分析交易记录?
- [技术创作101训练营]小程序云开发实战:从零搭建科技爱好者周刊小程序
- 【技术创作101训练营】innerHTML插入运行js字符串问题探究
- 组合体惯量法A: matlab程序—机械臂动力学建模
- vue+echarts 实现两个小例子