今天安装了cPanel/WHM 11.38.2(下文简称cp),用了后,我只能说,cPanel管理员后台的功能真的不是一般的强大,简直是把DirectAdmin甩到十万九千七亿千米去了。
但世上没有十全十美的东西,不出我的预料,cPanel使用的是suPHP,PHP执行方式是FastCGI。
前面文章我曾经提到过suPHP的缺点,这里就不再重复。
既然APACHE2HANDLER(下文简称A2R)模式的安全性,性能等多方面都比FastCGI好,怎能不对cPanel进行改造改造呢?
首先,要切换PHP的执行方式。以root身份登录cPanel的后台,在“Service Configuration »Configure PHP and suEXEC”处,把PHP 5 Handler改成dso:
然后点击“Save New Configuration”cPanel就会自动修改Apache的配置文件,并且重启。顺利完成后,可以使用探针检测下,看到PHP运行方式一项为APACHE2HANDLER即可:
接下来需要用到cPanel其中一个强大的功能:EasyApache(下文简称EA)。
由于cPanel官方已经有提供EA使用的mpm-itk包,因此就不需要自己敲太多命令去编译apache,方便很多。执行以下命令为easyapache添加mpm-itk的模块包:
1 2 3 |
wget http://docs.cpanel.net/twiki/pub/EasyApache/EasyApacheCustomModules/MPM-itk.tar.gz -O /var/cpanel/easy/apache/custom_opt_mods/MPM-itk.tar.gz tar -C /var/cpanel/easy/apache/custom_opt_mods -xzf /var/cpanel/easy/apache/custom_opt_mods/MPM-itk.tar.gz |
然后到“Software »EasyApache (Apache Update)”,其他的东西别改,点击“Start customizing based on profile”按钮,后面你也可以顺便选下Apache和PHP的版本,以及所需要的模块。点”Next Step”,到第四步时,点击“Exhaustive Options List”按钮,进入第五步。
在“Apache Built-in Modules”里面,就可以找到mpm itk一项,打钩即可:
在此页面你也可以顺便添加或删除一项模块。
OK后,点击”Save and build”按钮,cPanel就会自动开始编译Apache和PHP。
时间的长短根据服务器配置而定。
由于前面cPanel编译后只是为Apache添加上了mpm-itk模块,并没有修改apache的配置文件,因此这一步需要我们手动修改apache的模板文件。
进入Apache2模板配置文件目录:
1 |
cd /var/cpanel/templates/apache2 |
修改vhost.default文件:
1 |
vim vhost.default |
找到这一段代码(大概在56-60行):
1 2 3 4 5 |
[% IF supported.mod_suphp -%] <IfModule mod_suphp.c> suPHP_UserGroup [% vhost.user %] [% vhost.group %] </IfModule> [% END -%] |
在它后面添加:
1 2 3 4 5 |
[% IF supported.itk -%] <IfModule itk.c> AssignUserId [% vhost.user %] [% vhost.group %] </IfModule> [% END -%] |
修改完毕后,进入命令模式,:wq保存退出。
完成后重写所有站点的配置文件并且重启Apache:
1 2 3 |
/scripts/rebuildhttpdconf service httpd restart |
最后使用PHP对网站目录进行写入操作(例如新建一个文件,创建文件夹):
能正常写入且所有者和群组为该站点的用户名即代表mpm-itk模块生效。
Comments are closed.