- 编译完PHP源码之后,在etc文件夹下面没有php.ini文件。
此时,需要把PHP源码包下面的php.ini-development
拷贝到etc下面。然后修改名字为php.ini
- 修改完了配置文件之后,配置文件并没有生效
很大可能是因为php.ini文件的路径不是在etc下面。
可以通过命令:
php -i | grep php.ini
来查看:
所以,我们需要把php.ini
文件放在lib目录下面。
我们需要先使用PHP自带的一个工具—phpize
执行完phpize之后,会生成一个configure文件。
然后再执行:
./configure --with-php-config=/usr/local/php-7.2.3/bin/php-config
然后在执行:
make
make install
然后再php.ini配置文件里面添加:
extension=swoole
如果无法加载动态连接库,那么可能需要加上 .so:
extension=swoole.so
测试扩展有没有添加成功的方式:
在swoole源码包里面的examples/server
有一个echo.php
文件,我们可以去执行它,然后再查看端口:
netstat -anp | grep 9501
如果是mac,那么使用:
lsof -i:9501
重新编译swoole需要使用:
make clean
make -j
make install
查看swoole异步的redis能否支持:
php --ri swoole
如果有如下:
说明重新编译好的swoole支持异步redis了。
swoole_table是一个基于共享内存和锁实现的超高性能,并发数据结构。
swoole对一些超全局变量(例如:$_GET
、$_POST
等等),不会释放。只有关闭了用swoole写的服务器之后,才会释放(因为swoole是常驻内存的)。
thinkphp它会把模块、控制器以及控制器里面的方法放在变量里面,这些值在worker进程里面是不会被注销掉的。所以下次访问的时候,用到的还是之前的那个模块、控制器以及控制器里面的方法。
把发送短信的SDK放入thinkphp中的extend目录下(一般把扩展类库放到这里面)。
把验证码写入到Redis里面暂时存放起来(以便后面进行登录验证)。
注意:这个验证码是通过我们的PHP脚本的随机函数生成的,然后在把这个验证码发送给阿里大鱼,然后阿里大鱼再把验证码通过短信的方式发送给客户。
如果在发送ajax请求的时候,使用的url带有IP,那么需要加上协议名,例如:
http://localhost:8811/index/index/index
而不能是:
localhost:8811/index/index/index