标签:PHP

PHP

PHP – OpenSSL 生成CA私钥&证书及签发带SAN的证书

生成CA私钥及证书: 参考Example #1 Creating a self-signed certificate 使用上面的方法可以生成CA证书并使用,但是如果使用上面的方法直接生成的自签名域名证书,即使你把(CA)证书加入到了受信任的根证书列表,也不会受浏览器信任: NET::ERR_CERT_COMMON_NAME_INVALID 此服务器无法证实它就是 localhost – 它的安全证书没有指定主题备用名称。这可能是因为某项配置有误或某个攻击者拦截了您的连接。 你还需要把域名加入到SAN。 首先生成OpenSSL的配置文件: // Domain name place a […]

Read more No Comments
PHP

PHP 7.2 compile on Debian Stretch

Libraries: apt -y install \ libcurl4-openssl-dev \ libgd-dev \ libsodium-dev \ libxml2-dev \ libpcre3-dev \ libssl-dev \ libsqlite3-dev \ libzip-dev \ libbz2-dev \ libedit-dev \ libxmlrpc-epi-dev \ libxmlrpc-core-c3-dev \ libxslt1-dev \ libwebp-dev \ libreadline-dev Configure: ./configure \ –prefix […]

Read more
NOTE

PHP HTTP $_(REQUEST|GET|POST)数据不完整(数量不足)问题

有个页面需要给PHP POST大量的数据,最近发现只有固定数量的数据可以保存到数据库,其余的数据提交上去后,完全无反应。 输出原始POST数据,无问题,但输出$_REQUEST,却发现一条记录后面的数据全丢了。   查了下资料,原来PHP有限制$_REQUEST/GET/POST/COOKIE数组的成员数量:http://php.net/manual/en/info.configuration.php#ini.max-input-vars   编辑php.ini,增大max_input_vars的值,重启PHP服务,即可解决。

Read more
PHP, 编程

PHP线程安全与非线程安全版本的本质区别

在百度上搜“PHP 线程安全 非线程安全”,你肯定会找到这种狗屁话: 一本正经说胡话,完完全全没解释到点上。 稍微懂点C语言的都不会相信这种话,更别谈说出来了,千转载万转载你转载我我转载你就转载点那么没水平的东西来忽悠人。   线程和进程最大的根本区别就是内存数据的共享。 每个进程都独享一个虚拟内存[虚拟内存 = 物理内存 + SWAP/页面文件)]。 一个进程可以拥有多个线程,一般来说一个线程仅独享一个进程的虚拟内存中的一个函数栈帧。   程序储存数据有下面几种常用的方式: 自动变量: 自动变量是储存在栈中的,随着函数的调用而产生,结束而销毁。 静态(全局)变量: 静态分 […]

Read more No Comments
C/CPP, PHP

[PHP模块开发]获取单次请求所耗的CPU时间

数天前与一个学校中的朋友闲聊,对方提到了使用Hostker的经历,涉及到了一项“按CPU时间”计费的功能。 个人来说,是挺欣赏这一项收费策略的,毕竟有多少个使用虚拟主机的用户,就有多少种不同资源需求量,按照PHP对CPU资源的使用情况来计费,不仅实现公平收费,还能逼那些让资源占用多的用户占得谨慎点,比用CloudLinux的那些逼格高得多哈!   既然如此,就自己来动手实现一个。 计算CPU时间,并不难实现,Unix Like有提供这一个系统调用,所以嘛,根本不需要你自己计算…… 我所知道相关的系统调用有两个,以下是他们的函数原型: #include <sys/time.h&g […]

Read more No Comments
Unix Like, 操作系统, 服务器, 未分类, 运营维护

让cPanel/WHM的Apache使用PHP FPM

雅黑PHP探针

因为FasiCGI,CGI模式下均有少许问题,所以一直以来都给Apache使用mod_php方式执行PHP。 但此模式的资源占用可要给差评了,在网站访问量大的时候,特别是被CC的时候,FORK出的大量Apache进程经常会变成“僵尸”进程,无法正常退出,即使访问量恢复正常,攻击已结束,那些“僵尸”进程一样占用着你的资源,有时攻击猛烈些,直接整个系统宕掉,非硬重启无法救活。纵使有些人会使用如CloudLinux,BetterLinux之类的限制单用户的进程,但还是会有以Apache默认的执行身份fork出的进程…… 为了给虚拟主机带来更稳定,更安全的使用环境,必须更换PHP执行方式! 经过测试与 […]

Read more 3 Comments
服务器, 未分类, 运营维护

LNMPV0.3 Stable For Ubuntu 12.*/Debian 6/Debian7/CentOS6 32Bit or 64Bit

从今天开始,LNMPV的网站正式启用,以后新版均在http://www.mke2fs.com发布   LNMPV 0.2 Stable: 昨天发布了LNMPV 0.1测试版,感谢http://imlonghao.com/这个勇敢的小白,试用了我的LNMPV0.1,告知了我很多BUG,经过昨晚的努力,终于解决了。 另外还要感谢单手摘JJ,经过他昨晚的提醒,让我恍然大悟,发现可以一站一POOL来实现PHP以特定的用户身份执行。从而解决跨站问题。 本次更新: 1 )使用sock方式链接PHP-FPM 2 )添加可选的一站点一POOL的功能 3 )修改PHP-FPM的进程上限 4 )修改PH […]

Read more 72 Comments
未分类, 运营维护

APC3.1.9自动安装脚本For DirectAdmin with PHP-CLI

前面发过一个APC Shell Script For PHP-CGI,经过Zeraba的指导,使用apc.php看了下APC的命中率,发现无论怎样,命中数只有“1”,明显APC并没有发挥它应有的用途。同时也发现,不管是什么opcode的PHP组件,都是只能在探针那看个版本…… 既然PHP-CGI有问题,那就换PHP-CLI,但是DirectAdmin的PHP-CLI模式也有问题,那就是无法以特定身份去创建执行PHP程序,这就使得用户的网站某些目录需要设置rwxrwxrwx,非常麻烦,而且也不安全。 要解决DirectAdmin的PHP-CLI的问题,大家可以参考:实现DirectAdmin使用 […]

Read more 9 Comments
运营维护

解决PHP加载组件提示:PHP Warning: PHP Startup: Unable to load dynamic library ‘./apc.so’ – ./apc.so: cannot open shared object file: No such file or directory in Unknown on line 0

前面发表了一篇文章:APC3.1.9自动安装脚本For DirectAdmin 给另一台PHP版本为5.2.17的服务器使用时,发现APC组件没有成功加载,PHP探针里面无法检测到, 起初以为路径的问题,于是把php.ini里面的: extension=”apc.so” 更改为: extension=/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/apc.so 但是很可惜,仍然不行。 尝试重新编译安装APC,依然是那样。想起有错误日志,于是打开看了下,果然,N行同样的错误记录: …… [Fri Jun 07 12:03: […]

Read more No Comments