站内公告:

我们的虚拟社区正式开通了

Main Menu

最新帖子

#21
PHP环境搭建 / PHP7.x环境下安装memcache和memcached扩...
上次发布者 jvip_chen - 2022-12月-15 05:16 下午
如果使用php操作memcached服务器最方便的方式就是安装memcache扩展了,其实php还有另外一个扩展那就是memcached,和memcached服务同名,并且扩展提供的方法更便于使用,下面分别介绍一下两种扩展在PHP7环境下的安装方式。

注:以下介绍的安装方式为PHP的安装路径为/usr/local/php,如果你的服务器上PHP的安装目录不一致请按实际情况处理。

首先下载memcache扩展包

wget https://github.com/websupport-sk/pecl-memcache/archive/NON_BLOCKING_IO_php7.zip
#解压缩

unzip NON_BLOCKING_IO_php7.zip
#进入解压后的目录

cd pecl-memcache-NON_BLOCKING_IO_php7/
#生成配置文件

/usr/local/php/bin/phpize
#配置

./configure --with-php-config=/usr/local/php/bin/php-config
#编译
make
#安装
make install
安装后会出现Installing shared extensions: *****PHP的扩展目录,此目录一般为默认的php扩展目录,如果和默认的扩展目录不一致可以修改php.ini中的extension_dir为此目录

即在php.ini中添加

extension_dir="扩展目录"
然后再php.ini中添加memcache扩展

extension=memcache.so
重启php-fpm使之生效

#可以使用下面三种方式中的一种(具体看php的安装方式)

service php-fpm restart
kill -USR2

cat /usr/local/php/var/run/php-fpm.pid

systemctl reload php-fpm
至此memcache扩展安装完成。

下面介绍一下memcached扩展的安装方式,其实PHP的扩展安装方式非常类似

#首先需要安装libmemcached库

yum -y install libmemcached libmemcached-devel
#下载memcached扩展

wget https://github.com/php-memcached-dev/php-memcached/archive/php7.zip
#解压

unzip php7.zip
cd php-memcached-php7/
/usr/local/php/bin/phpize
#配置

./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
在php.ini中添加memcached扩展

extension=memcached.so
和前面以上重启php-fpm使之生效

#可以使用下面三种方式中的一种(具体看php的安装方式)

service php-fpm restart
kill -USR2

cat /usr/local/php/var/run/php-fpm.pid

systemctl reload php-fpm
检测扩展是否安装成功可以使用phpinfo查看,如下图所示两个扩展已经安装成功
#22
PHP环境搭建 / php-fpm的配置和优化
上次发布者 jvip_chen - 2022-12月-15 05:09 下午
php-fpm的安装目录
下面是我的平时的环境搭建php的各种安装目录,大家的基本也差不多。

centos等linux平台
/usr/local/php/php
/usr/local/php/etc/php.ini
/usr/local/php/sbin/php-fpm
/usr/local/php/etc/php-fpm.conf
mac平台
/usr/bin/php
/etc/php.ini
/usr/bin/php-fpm
/etc/php-fpm.conf
由于我开发以Mac为主,所以就用Mac的环境配置来学习。

php-fpm配置详解
这是搜索的一份还算算比较详细的php-fpm.conf配置详解,我会针对性的修改下,当然php手册上也有详细的讲解:http://php.net/manual/zh/install.fpm.configuration.php

pid = /usr/local/var/run/php-fpm.pid
#pid设置,一定要开启,上面是Mac平台的。默认在php安装目录中的var/run/php-fpm.pid。比如centos的在: /usr/local/php/var/run/php-fpm.pid
error_log  = /usr/local/var/log/php-fpm.log
#错误日志,上面是Mac平台的,默认在php安装目录中的var/log/php-fpm.log,比如centos的在: /usr/local/php/var/log/php-fpm.log
log_level = notice
#错误级别. 上面的php-fpm.log纪录的登记。可用级别为: alert(必须立即处理), error(错误情况), warning(警告情况), notice(一般重要信息), debug(调试信息). 默认: notice.
emergency_restart_threshold = 60
emergency_restart_interval = 60s
#表示在emergency_restart_interval所设值内出现SIGSEGV或者SIGBUS错误的php-cgi进程数如果超过 emergency_restart_threshold个,php-fpm就会优雅重启。这两个选项一般保持默认值。0 表示 '关闭该功能'. 默认值: 0 (关闭).
process_control_timeout = 0
#设置子进程接受主进程复用信号的超时时间. 可用单位: s(秒), m(分), h(小时), 或者 d(天) 默认单位: s(秒). 默认值: 0.
daemonize = yes
#后台执行fpm,默认值为yes,如果为了调试可以改为no。在FPM中,可以使用不同的设置来运行多个进程池。 这些设置可以针对每个进程池单独设置。
listen = 127.0.0.1:9000
#fpm监听端口,即nginx中php处理的地址,一般默认值即可。可用格式为: 'ip:port', 'port', '/path/to/unix/socket'. 每个进程池都需要设置。如果nginx和php在不同的机器上,分布式处理,就设置ip这里就可以了。
listen.backlog = -1
#backlog数,设置 listen 的半连接队列长度,-1表示无限制,由操作系统决定,此行注释掉就行。backlog含义参考:http://www.3gyou.cc/?p=41
listen.allowed_clients = 127.0.0.1
#允许访问FastCGI进程的IP白名单,设置any为不限制IP,如果要设置其他主机的nginx也能访问这台FPM进程,listen处要设置成本地可被访问的IP。默认值是any。每个地址是用逗号分隔. 如果没有设置或者为空,则允许任何服务器请求连接。
listen.owner = www
listen.group = www
listen.mode = 0666
#unix socket设置选项,如果使用tcp方式访问,这里注释即可。
user = www
group = www
#启动进程的用户和用户组,FPM 进程运行的Unix用户, 必须要设置。用户组,如果没有设置,则默认用户的组被使用。
pm = dynamic
#php-fpm进程启动模式,pm可以设置为static和dynamic和ondemand
#如果选择static,则进程数就数固定的,由pm.max_children指定固定的子进程数。
#如果选择dynamic,则进程数是动态变化的,由以下参数决定:
pm.max_children = 50 #子进程最大数
pm.start_servers = 2 #启动时的进程数,默认值为: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
pm.min_spare_servers = 1 #保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程
pm.max_spare_servers = 3 #,保证空闲进程数最大值,如果空闲进程大于此值,此进行清理
pm.max_requests = 500
#设置每个子进程重生之前服务的请求数. 对于可能存在内存泄漏的第三方模块来说是非常有用的. 如果设置为 '0' 则一直接受请求. 等同于 PHP_FCGI_MAX_REQUESTS 环境变量. 默认值: 0.
pm.status_path = /status
#FPM状态页面的网址. 如果没有设置, 则无法访问状态页面. 默认值: none. munin监控会使用到
ping.path = /ping
#FPM监控页面的ping网址. 如果没有设置, 则无法访问ping页面. 该页面用于外部检测FPM是否存活并且可以响应请求. 请注意必须以斜线开头 (/)。
ping.response = pong
#用于定义ping请求的返回相应. 返回为 HTTP 200 的 text/plain 格式文本. 默认值: pong.
access.log = log/$pool.access.log
#每一个请求的访问日志,默认是关闭的。
access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
#设定访问日志的格式。
slowlog = log/$pool.log.slow
#慢请求的记录日志,配合request_slowlog_timeout使用,默认关闭
request_slowlog_timeout = 10s
#当一个请求该设置的超时时间后,就会将对应的PHP调用堆栈信息完整写入到慢日志中. 设置为 '0' 表示 'Off'
request_terminate_timeout = 0
#设置单个请求的超时中止时间. 该选项可能会对php.ini设置中的'max_execution_time'因为某些特殊原因没有中止运行的脚本有用. 设置为 '0' 表示 'Off'.当经常出现502错误时可以尝试更改此选项。
rlimit_files = 1024
#设置文件打开描述符的rlimit限制. 默认值: 系统定义值默认可打开句柄是1024,可使用 ulimit -n查看,ulimit -n 2048修改。
rlimit_core = 0
#设置核心rlimit最大限制值. 可用值: 'unlimited' 、0或者正整数. 默认值: 系统定义值.
chroot =
#启动时的Chroot目录. 所定义的目录需要是绝对路径. 如果没有设置, 则chroot不被使用.
chdir =
#设置启动目录,启动时会自动Chdir到该目录. 所定义的目录需要是绝对路径. 默认值: 当前目录,或者/目录(chroot时)
catch_workers_output = yes
#重定向运行过程中的stdout和stderr到主要的错误日志文件中. 如果没有设置, stdout 和 stderr 将会根据FastCGI的规则被重定向到 /dev/null . 默认值: 空.
当然还有一些无关紧要的设置,用到了再说吧。
pid = /usr/local/var/run/php-fpm.pid
#pid设置,一定要开启,上面是Mac平台的。默认在php安装目录中的var/run/php-fpm.pid。比如centos的在: /usr/local/php/var/run/php-fpm.pid
error_log  = /usr/local/var/log/php-fpm.log
#错误日志,上面是Mac平台的,默认在php安装目录中的var/log/php-fpm.log,比如centos的在: /usr/local/php/var/log/php-fpm.log
log_level = notice
#错误级别. 上面的php-fpm.log纪录的登记。可用级别为: alert(必须立即处理), error(错误情况), warning(警告情况), notice(一般重要信息), debug(调试信息). 默认: notice.
emergency_restart_threshold = 60
emergency_restart_interval = 60s
#表示在emergency_restart_interval所设值内出现SIGSEGV或者SIGBUS错误的php-cgi进程数如果超过 emergency_restart_threshold个,php-fpm就会优雅重启。这两个选项一般保持默认值。0 表示 '关闭该功能'. 默认值: 0 (关闭).
process_control_timeout = 0
#设置子进程接受主进程复用信号的超时时间. 可用单位: s(秒), m(分), h(小时), 或者 d(天) 默认单位: s(秒). 默认值: 0.
daemonize = yes
#后台执行fpm,默认值为yes,如果为了调试可以改为no。在FPM中,可以使用不同的设置来运行多个进程池。 这些设置可以针对每个进程池单独设置。
listen = 127.0.0.1:9000
#fpm监听端口,即nginx中php处理的地址,一般默认值即可。可用格式为: 'ip:port', 'port', '/path/to/unix/socket'. 每个进程池都需要设置。如果nginx和php在不同的机器上,分布式处理,就设置ip这里就可以了。
listen.backlog = -1
#backlog数,设置 listen 的半连接队列长度,-1表示无限制,由操作系统决定,此行注释掉就行。backlog含义参考:http://www.3gyou.cc/?p=41
listen.allowed_clients = 127.0.0.1
#允许访问FastCGI进程的IP白名单,设置any为不限制IP,如果要设置其他主机的nginx也能访问这台FPM进程,listen处要设置成本地可被访问的IP。默认值是any。每个地址是用逗号分隔. 如果没有设置或者为空,则允许任何服务器请求连接。
listen.owner = www
listen.group = www
listen.mode = 0666
#unix socket设置选项,如果使用tcp方式访问,这里注释即可。
user = www
group = www
#启动进程的用户和用户组,FPM 进程运行的Unix用户, 必须要设置。用户组,如果没有设置,则默认用户的组被使用。
pm = dynamic
#php-fpm进程启动模式,pm可以设置为static和dynamic和ondemand
#如果选择static,则进程数就数固定的,由pm.max_children指定固定的子进程数。
#如果选择dynamic,则进程数是动态变化的,由以下参数决定:
pm.max_children = 50 #子进程最大数
pm.start_servers = 2 #启动时的进程数,默认值为: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
pm.min_spare_servers = 1 #保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程
pm.max_spare_servers = 3 #,保证空闲进程数最大值,如果空闲进程大于此值,此进行清理
pm.max_requests = 500
#设置每个子进程重生之前服务的请求数. 对于可能存在内存泄漏的第三方模块来说是非常有用的. 如果设置为 '0' 则一直接受请求. 等同于 PHP_FCGI_MAX_REQUESTS 环境变量. 默认值: 0.
pm.status_path = /status
#FPM状态页面的网址. 如果没有设置, 则无法访问状态页面. 默认值: none. munin监控会使用到
ping.path = /ping
#FPM监控页面的ping网址. 如果没有设置, 则无法访问ping页面. 该页面用于外部检测FPM是否存活并且可以响应请求. 请注意必须以斜线开头 (/)。
ping.response = pong
#用于定义ping请求的返回相应. 返回为 HTTP 200 的 text/plain 格式文本. 默认值: pong.
access.log = log/$pool.access.log
#每一个请求的访问日志,默认是关闭的。
access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
#设定访问日志的格式。
slowlog = log/$pool.log.slow
#慢请求的记录日志,配合request_slowlog_timeout使用,默认关闭
request_slowlog_timeout = 10s
#当一个请求该设置的超时时间后,就会将对应的PHP调用堆栈信息完整写入到慢日志中. 设置为 '0' 表示 'Off'
request_terminate_timeout = 0
#设置单个请求的超时中止时间. 该选项可能会对php.ini设置中的'max_execution_time'因为某些特殊原因没有中止运行的脚本有用. 设置为 '0' 表示 'Off'.当经常出现502错误时可以尝试更改此选项。
rlimit_files = 1024
#设置文件打开描述符的rlimit限制. 默认值: 系统定义值默认可打开句柄是1024,可使用 ulimit -n查看,ulimit -n 2048修改。
rlimit_core = 0
#设置核心rlimit最大限制值. 可用值: 'unlimited' 、0或者正整数. 默认值: 系统定义值.
chroot =
#启动时的Chroot目录. 所定义的目录需要是绝对路径. 如果没有设置, 则chroot不被使用.
chdir =
#设置启动目录,启动时会自动Chdir到该目录. 所定义的目录需要是绝对路径. 默认值: 当前目录,或者/目录(chroot时)
catch_workers_output = yes
#重定向运行过程中的stdout和stderr到主要的错误日志文件中. 如果没有设置, stdout 和 stderr 将会根据FastCGI的规则被重定向到 /dev/null . 默认值: 空.
当然还有一些无关紧要的设置,用到了再说吧。
一些重要的设置
php-fpm进程分配

在之前的文章中就说过了。在fasgcgi模式下,php会启动多个php-fpm进程,来接收nginx发来的请求,那是不是进程越多,速度就越快呢?这可不一定!得根据我们的机器配置和业务量来决定。

我们先来看下,设定进程的配置在哪里?

pm = static | dynamic | ondemand
pm可以设置成这样3种,我们用的最多的就上前面2种。

pm = static 模式
pm = static 表示我们创建的php-fpm子进程数量是固定的,那么就只有pm.max_children = 50这个参数生效。你启动php-fpm的时候就会一起全部启动51(1个主+50个子)个进程,颇为壮观。

pm = dynamic 模式
pm = dynamic模式,表示启动进程是动态分配的,随着请求量动态变化的。他由 pm.max_children,pm.start_servers,pm.min_spare_servers,pm.max_spare_servers 这几个参数共同决定。
上面已经讲过,这里再重申一下吧:

pm.max_children = 50 是最大可创建的子进程的数量。必须设置。这里表示最多只能50个子进程。

pm.start_servers = 20 随着php-fpm一起启动时创建的子进程数目。默认值:min_spare_servers + (max_spare_servers - min_spare_servers) / 2。这里表示,一起启动会有20个子进程。

pm.min_spare_servers = 10 务器空闲时最小php-fpm进程数量。必须设置。如果空闲的时候,会检查如果少于10个,就会启动几个来补上。

pm.max_spare_servers = 30 务器空闲时最大php-fpm进程数量。必须设置。如果空闲时,会检查进程数,多于30个了,就会关闭几个,达到30个的状态。
到底选择static还数dynamic?
很多人恐惧症来袭,不知道选什么好?

一般原则是:动态适合小内存机器,灵活分配进程,省内存。静态适用于大内存机器,动态创建回收进程对服务器资源也是一种消耗。

如果你的内存很大,有8-20G,按照一个php-fpm进程20M算,100个就2G内存了,那就可以开启static模式。如果你的内存很小,比如才256M,那就要小心设置了,因为你的机器里面的其他的进程也算需要占用内存的,所以设置成dynamic是最好的,比如:pm.max_chindren = 8, 占用内存160M左右,而且可以随时变化,对于一半访问量的网站足够了。

慢日志查询
我们有时候会经常饱受500,502问题困扰。当nginx收到如上错误码时,可以确定后端php-fpm解析php出了某种问题,比如,执行错误,执行超时。

这个时候,我们是可以开启慢日志功能的。

slowlog = /usr/local/var/log/php-fpm.log.slow
request_slowlog_timeout = 15s
当一个请求该设置的超时时间15秒后,就会将对应的PHP调用堆栈信息完整写入到慢日志中。

php-fpm慢日志会记录下进程号,脚本名称,具体哪个文件哪行代码的哪个函数执行时间过长:

[21-Nov-2013 14:30:38] [pool www] pid 11877
script_filename = /usr/local/lnmp/nginx/html/www.quancha.cn/www/fyzb.php
[0xb70fb88c] file_get_contents() /usr/local/lnmp/nginx/html/www.quancha.cn/www/fyzb.php:2
通过日志,我们就可以知道第2行的file_get_contents 函数有点问题,这样我们就能追踪问题了。
#23
1.通过命令查看服务器上一共开了多少的 php-cgi 进程

ps -fe |grep "php-fpm"|grep "pool"|wc -l
2.查看已经有多少个php-cgi进程用来处理tcp请求

netstat -anp|grep "php-fpm"|grep "tcp"|grep "pool"|wc -l
3.linux+nginx+php环境中,每个php-fpm进程的内存限制
设置方法:
编辑php-fpm.conf配置文件
php_admin_value[memory_limit] = 128M(我服务器上的配置文件在/etc/php5/fpm/pool.d/www.conf 这个文件是被包含在php-fpm.conf里的) 后边的数字可以随便更改:32M,64M,128M,256M,512M,这个设置可根据你的服务器内存大小和你的需求来写,修改后要加载一下php-fpm服务
#24
PHP环境搭建 / Ubuntu通过apt-get安装PHP
上次发布者 jvip_chen - 2022-12月-15 05:05 下午
1、添加php的PPA源

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
2、通过apt安装PHP

sudo apt-get install php-版本号
#25
PHP 开发 / 关于升级 Composer
上次发布者 jvip_chen - 2022-12月-08 02:25 下午
Composer 升级时是无法利用我们的镜像加速下载的,而必须连接到 Composer 国外官网的服务器上下载升级文件,某些时候就会导致升级的速度非常慢甚至失败。

这里提供一个简单的办法:

如果你的系统中已经有可以正常使用的 Composer 了,说明系统环境是符合要求的,那么只需要下载新的 Composer 文件并覆盖原来的文件即可。

首先你要确定现有的 Composer 的安装目录,然后通过下面的链接下载 composer.phar 文件(复制以下地址到浏览器地址栏可直接下载),
https://install.phpcomposer.com/composer.phar
将前面下载的 composer.phar 文件覆盖系统中已经安装的 composer.phar 文件即可。注意,有可能在安装时将 composer.phar 改名为 composer 了,注意用同样的名字覆盖即可。
#26
PHP 开发 / 如何安装 Composer
上次发布者 jvip_chen - 2022-12月-08 02:23 下午
下载 Composer
安装前请务必确保已经正确安装了 PHP。打开命令行窗口并执行 php -v 查看是否正确输出版本号。

打开命令行并依次执行下列命令安装最新版本的 Composer:

php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
执行第一条命令下载下来的 composer-setup.php 脚本将简单地检测 php.ini 中的参数设置,如果某些参数未正确设置则会给出警告;然后下载最新版本的 composer.phar 文件到当前目录。

上述 3 条命令的作用依次是:

  • 下载安装脚本 - composer-setup.php - 到当前目录。
  • 执行安装过程。
  • 删除安装脚本。
#27
MariaDB/MySql数据库 / mysql查看二进制日志的方法
上次发布者 jvip_chen - 2022-11月-28 12:54 下午
查看方法

1、对于二进制日志文件,不像错误日志文件,可以通过cat、head、tail等命令慢慢查询日志文件。

2、需要MySQL提供的工具mysqlbinlog。

实例

[root@iz2zeaf3cg1099kiidi06mz mysql]# mysqlbinlog mysqld-bin.000001
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#180821 16:42:53 server id 1  end_log_pos 120 CRC32 0x3e55be40 Start: binlog v 4, server v 5.6.39-log created 180821 16:42:53 at startup
# Warning: this binlog is either in use or was not closed properly.
ROLLBACK/*!*/;
BINLOG '
jdB7Ww8BAAAAdAAAAHgAAAABAAQANS42LjM5LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACN0HtbEzgNAAgAEgAEBAQEEgAAXAAEGggAAAAICAgCAAAACgoKGRkAAUC+
VT4=
'/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
以上就是mysql查看二进制日志的方法,希望对大家有所帮助。更多mysql学习指路:MySQL

推荐操作系统:windows7系统、mysql5.8、DELL G3电脑
#28
PHP 开发 / PHPstorm 优化、设置与提速篇
上次发布者 jvip_chen - 2022-11月-24 07:34 上午
一、phpstorm的提速设置
关于ps的performance,说多了都是泪,还是直奔主题吧~

(一)Java VM options
PHPStorm依赖java运行环境,说白了也就是java虚拟机,找到help > Edit Custom VM Options,然后在这个文件里可以根据需要增加或减少PHPstorm使用的内存

-Xms500m
-Xmx1500m

-Dawt.useSystemAAFontSettings=lcd
-Dawt.java2d.opengl=true

# 这一条只适合于Mac, 可以使java调用优化过的图形引擎
-Dapple.awt.graphics.UseQuartz=true
当然这里还有其他的一些设置,你可以网上搜搜别人都是怎么设置的,然后相应地自行探索

(二)自定义properties
进入help > Edit Custom Properties来设置PHPStorm的自定义属性.

editor.zero.latency.typing=true
上面这条,改变的是PHPstorm如何渲染字体:立即渲染文字,而不是先进行内容分析。可能会因此导致偶尔有那么一瞬间文字都是不带样式的,但是整体上会顺畅很多。

(三)Inspections and plugins(检查和插件)
PHPstorm的一大问题就是太强大了,默认加了很多功能,而我们可能平时根本用不到。

找到preferences -> plugins,把我们根本用不到的很多插件plugin,禁用掉!

不要担心禁的太多,如果你勾掉一个插件的时候,它又被另外一个插件依赖,它会提示你的;而且,在特定的情境下,当PHPstorm觉得你应该启用一个插件的时候,它也会提示你的。

禁用不必要的插件是第一步,但是禁用代码检查(inspections),往往可能影响更大。找到Settings > Editor > Inspections,根据自己的情况看看哪些时候其实不需要实时的代码检查

(四)Language injection(其它语言的插入)
有一个插件其实特别影响性能,就是IntelliLang. 这个插件支持一种语言在其他的文件格式中也照样能被识别,比如说当你在一个PHP文件中插入HTML,或者用到HTML的代码自动补齐或高亮显示功能时。

当然,并不建议完全禁用掉这个插件,但是呢,可能有些特定的语言插入支持,你并不会用到,这个时候你可以到Settings > Editor > Language Injections下,把当前项目里不可能用到的第三方语言插入,都勾掉。

(五)排除对特定项目目录的索引
在 Settings > Directories 下可以将特定的目录标记排除,然后PHPstorm就不会索引其中的文件了。建议排除的目录一般是类似cache、public、storage等包含资源编译文件的,当然还有两个大头,就是vendor 和node_modules目录。

vendor目录的问题
排除掉vendor目录,意味着就不能基于那里面的组件进行自动补全(auto-complete)了,所以这可能不是个好主意。但是呢,有个小技巧就是,你可以整体上排除掉vendor目录,然后在Settings > Languages & Frameworks > PHP下,将你真正用到的组件目录给额外添加上。

关于Node modules目录
Node modules目录实际上默认已经被排除掉了,但是呢,在 Settings > Languages & Frameworks > JavaScript > Libraries下,你会看到,它们又被额外引入进来了,假设说你写js不是那么多,你也可以在这里将其完全排除掉。当然这些呢,都是基于项目的,你可以在不同的项目作不同的选择。

二、删除之前版本的phpstorm缓存文件夹
经常,每次你更新了PHPstorm,它就会创建一个新的cache文件,而不会自动删除你上一个版本的cache文件夹,这往往会占用大量的系统盘空间,如果你用了某一个版本的PHPstorm很长时间,这个文件夹一般都是好几GB。

在Mac上,你可以查找类似'PhpStorm2016.x'或~/Library/Caches的文件夹,然后删除它;

在windows上,在你的当前用户目录查找类似.WebIde的文件夹,将多出来的删掉。
#29
Linux 系统 / linux中iptables如何删除一条规则
上次发布者 jvip_chen - 2022-11月-16 10:28 下午
linux中iptables删除一条规则的方法:
1、打开linux终端;
2、在终端命令行中输入"iptables -L -n"命令查看出当前的防火墙规则;
3、输入"iptables -L -n --line-number"命令查看到每个规则chain的序列号;
4、根据序列号删除指定一条防火墙则即可。


具体操作步骤:

1、在linux系统桌面中使用快捷键【Ctrl+Alt+T】打开linux终端命令行模式。

2、在linux终端命令行中输入以下命令查看出当前的防火墙规则。

iptables -L -n
3、输入以下命令查看到每个规则chain的序列号。

iptables -L -n --line-number
4、最后输入以下命令根据序列号删除指定一条防火墙规则即可。

iptables -D INPUT 3 #删除INPUT的第三条已添加规则,这里3代表第几行规则
相关操作命令:

#iptables防火墙
service iptables status  #查看iptables防火墙状态
service iptables start   #开启防火墙
service iptables stop    #停止防火墙
#firewall防火墙
systemctl status firewalld #查看firewall防火墙服务状态
service firewalld start #开启防火墙
service firewalld stop #关闭防火墙
#30
代码管理-Git / git merge后,想恢复之前版本步骤
上次发布者 jvip_chen - 2022-11月-03 02:26 下午
一共需要三个步骤:

第一步:git checkout到你想恢复的分支上

1.git checkout 分支名
第二步:git reflog查出要回退到merge之前的版本号

 git reflog
└──╼$git reflog
a88a5c89 (HEAD -> channel/pre) HEAD@{0}: pull: Merge made by the 'ort' strategy.
cf889952 (dev/swipe_auto) HEAD@{1}: reset: moving to cf889952
cf889952 (dev/swipe_auto) HEAD@{2}: reset: moving to cf889952
3e5a2166 HEAD@{3}: merge dev/swipe_auto: Merge made by the 'ort' strategy.
3a4a5248 HEAD@{4}: checkout: moving from dev/swipe_auto to channel/pre
cf889952 (dev/swipe_auto) HEAD@{5}: commit: 优化sql
8517922d HEAD@{6}: checkout: moving from channel/qa to dev/swipe_auto
81fcf05d (channel/qa) HEAD@{7}: merge dev/swipe_auto: Merge made by the 'ort' strategy.
7c8f5fda HEAD@{8}: pull: Fast-forward
a02ee7cd HEAD@{9}: checkout: moving from dev/swipe_auto to channel/qa
     

第三步:git reset --hard 版本号,就可以回到merge之前的代码状态了

git reset --hard a1d566d
└──╼$git reset --hard 524763dc0c96249cd207956d59ad6d1f07a6a1de
HEAD is now at 524763dc 增加二次打印
    成功了