PHP数组foreach循环两种方式及注意点
PHP中,数据的`foreach`循环有两种传递方式,按值传递和按引用传递。
1. 按值传递
通过数组索引修改原数组
代码示例:
Home of Little Jelly
PHP中,数据的`foreach`循环有两种传递方式,按值传递和按引用传递。
1. 按值传递
通过数组索引修改原数组
代码示例:
PHP多服务器子域名session共享。
第一步 配置php memcache扩展
wget http://pecl.php.net/get/memcache-2.2.7.tgz
攻击模式处理方案。
方案(阿里云)
1. MySQL RDS添加只读实例,开启读写分离,平时可预留低配实例备用
2. MySQL数据库配置 wait_timeout和 interactive_timeout为 5~10,以便超时自动释放连接,避免连接数过多的问题
3. WAF CC自定义规则,设置单ip规定时长的访问限制及封禁时长,可设置2~3个阶段
4. WAF精准控制规,主要是黑白名单
CentOS7安装nginx php7 MySQL。
注意点
1. 先安装memcached
2. 需要安装gcc、zlib、zlib-devel
3. memcache扩展编辑安装完成后需要在`/etc/php.d`手工创建 `memcache.ini`
4. memcache目录下运行`./configure`需要修改php-config的路径
PHP FPM慢请求日志收集。
编辑php-fpm配置文件
vi /etc/php-fpm.d/www.conf
将 `request_slowlog_timeout`前的注释取消,并设置为需要的值,默认单位为秒。
PHP SESSION心得:
1. 单台服务器时,`session.save_handler`用`files`,不要用`memcache`,不然 `session_start` 会有1%左右的机率出现严重耗时的情况。Redis未测试,应该也没有files快。
2. 多台服务器时,session可以存储在Memcache/Redis/Mysql中
3. 并发高时,应降低session回收机率,即配置 `session.gc_divisor`
4. 在PHP环境下,默认的 `session.lazy_write = On`无需禁用。不然也会出现1中的问题。
Linux下PHP程序如何常驻内存运行?
该示例是将一个PHP脚本常驻后台执行。
新建一个shell脚本,名为`script.sh`
PHP高并发处理心得
服务器配置
1. Web: 4C8G 120GSSD
2. MySQL:2C4G
高并发处理心得
ThinkPHP5默认开启了日志的写入。
如果要彻底关闭日志,打开 `application` 目录下的 `config.php`。
找到 `log`那一块儿,可以看到
服务器快慢因素
快慢因素
1. 内存
2. 硬盘
3. CPU
4. OS Kernel
5. Web Server CPU、内存、IOPS、最大连接数等配置
6. PHP/php-fpm
7. MySQL CPU、内存、IOPS、最大连接数等配置
8. pdo连接延迟
9. netstat TIME_WAIT