使用了命令安装了apt-get install php5-mcrypt
和apt-get install php5-gd
;重启了apache
但是php5-mcrypt不能及时生效,gd库则能及时生效,不知道为什么?
然后通过sudo php5enmod mcrypt
才能生效,想请教下php拓展与php和apache之间是怎样协助的。sudo php5enmod mcrypt
这个相关的命令作用原理是什么?
使用了命令安装了apt-get install php5-mcrypt
和apt-get install php5-gd
;重启了apache
但是php5-mcrypt不能及时生效,gd库则能及时生效,不知道为什么?
然后通过sudo php5enmod mcrypt
才能生效,想请教下php拓展与php和apache之间是怎样协助的。sudo php5enmod mcrypt
这个相关的命令作用原理是什么?
在用比较规范的安装方法时, 在/etc/php5 里面会有一些各个模块的配置文件(每个模块单独), 然后分别在Cli, Fpm, Apache2 这样的目录里面会有一个conf.d目录, 里面有对一些要使用的模块的配置的软连接, 这样就做到不同情境下加载不同的配置文件, 而真正的模块配置文件仅有一份.
sudo php5enmod mcrypt 就是建立软连接, 并不是在php.ini下声明拓展.
PHP拓展跟Apache没有直接关系, 以apache模块运行时PHP跟Apache是模块的关系, 以普通Cgi运行时PHP(Cli)跟Apache是程序调用关系.
一般来说,是取消了对应配置文件中的#,比如/etc/php5/conf.d/ext-mcrypt.ini 这个文件内容的原来可能是被井号注释,使用命令后#去掉,生效并动态加载了mcrypt.so