如何加强PHP5与Suhosin在Mandriva 2007年春天

如何加强PHP5与Suhosin在Mandriva 2007年春天 本教程展示了如何在Mandriva 2007 Spring服务器上使用Suhosin强化PHP5。下载...

如何在Mandriva 2007 Spring春季推出PHP5

版本1.0
作者:Falko Timme

本教程将介绍如何在Mandriva 2007 Spring服务器上使用Suhosin来强化PHP5。 从Suhosin项目页面: “Suhosin是PHP安装的高级保护系统,旨在保护服务器和用户免受PHP应用程序和PHP内核中已知和未知的缺陷。Suhosin有两个独立的部分,可以单独使用或第一部分是针对PHP内核的小补丁,它实现了对缓冲区溢出或格式化字符串漏洞的一些低级保护,第二部分是强大的PHP扩展,可实现所有其他保护。

本文档不附带任何形式的保证! 我不会保证这将为您工作!

1初步说明

我已经在Mandriva 2007 Spring服务器上测试了这个IP地址为192.168.0.100

本教程有点不典型,因为如果安装了PHP5,在Mandriva 2007 Spring上安装Suhosin就没必要,因为默认情况下,Mandriva的PHP5已经附带了Suhosin。 无论如何,我认为仍然值得编写本教程,因为它回答了“我需要做什么来安装Suhosin?” - 没有,如果PHP5已经安装。

2安装Apache2和PHP5(可选)

(如果您已经安装了Apache2和PHP5,本章是可选的,以检查您的PHP5中是否启用了Suhosin,请跳到下一章。)

首先,如果您使用Mandriva的在线存储库(而不是Mandriva DVD)安装软件包,则应更新软件包数据库:

urpmi.update -a

如果您的服务器上没有安装Apache2和PHP5,请立即安装:

urpmi apache-mod_php libphp5_common5

很多o其他软件包将作为依赖关系连同这两个软件包一起安装,您可以在输出中看到:

[root @ server1〜]#urpmi apache-mod_php libphp5_common5
要满足依赖关系,将安装以下软件包:
apache-base-2.2.4-6.2mdv2007.1.i586
apache-conf-2.2.4-4mdv2007.1.i586
apache-mod_php-5.2.1-4mdv2007.1.i586
apache-modules-2.2.4-6.2mdv2007.1.i586
apache-mpm-prefork-2.2.4-6.2mdv2007.1.i586
ccp-0.4.1-1mdk.noarch
libmm14-1.4.2-1mdv2007.1.i586
libphp5_common5-5.2.1-4.2mdv2007.1.i586
php-ctype-5.2.1-1mdv2007.1.i586
php-filter-5.2.1-0.1mdv2007.1.i586
php-ftp-5.2.1-1.1mdv2007.1.i586
php-gettext-5.2.1-1mdv2007.1.i586
php-hash-5.2.1-1mdv2007.1.i586
php-ini-5.2.1-2mdv2007.1.i586
php-json-1.2.1-3mdv2007.1.i586
php-openssl-5.2.1-4.2mdv2007.1.i586
php-posix-5.2.1-1mdv2007.1.i586
php-session-5.2.1-1mdv2007.1.i586
php-simplexml-5.2.1-1mdv2007.1.i586
php-suhosin-0.9.18-4mdv2007.1.i586
php-sysvsem-5.2.1-1mdv2007.1.i586
php-sysvshm-5.2.1-1mdv2007.1.i586
php-timezonedb-2007.3-1mdv2007.1.i586
php-tokenizer-5.2.1-1mdv2007.1.i586
php-xmlreader-5.2.1-1mdv2007.1.i586
php-xmlwriter-5.2.1-1mdv2007.1.i586
php-zlib-5.2.1-4.2mdv2007.1.i586
继续安装27个包? (6 MB)(Y / n)
[...]

如您所见,软件包php-suhosin将自动安装,因此默认情况下,您的PHP5将被Suhosin加固。

然后启动Apache2:

/etc/init.d/httpd restart

您现在在您的服务器上具有基本功能的PHP5; 如果您需要特殊的PHP5模块,可以这样搜索:

urpmi --fuzzy php

从输出中,选择所需的模块,像这样安装它们并重新启动Apache2:

urpmi php-bz2 php-calendar php-ctype php-curl php-dio php-dom php-eaccelerator php-enchant php-esmtp php-event php-exif php-fam php-ffmpeg php-fileinfo php-filepro php-ftp php-gd php-gettext php-gmp php-iconv php-id3 php-idn php-imap php-imlib2 php-mailparse php-mbstring php-mcache php-mcrypt php-mhash php-ming php-mysql php-mysqli php-ncurses php-newt php-odbc php-oggvorbis php-pam_auth php-pcntl php-pcre php-pear-Net_IDNA php-posix php-pspell php-readline php-recode php-session php-shmop php-simplexml php-snmp php-soap php-sockets php-sqlite php-ssh2 php-sysvmsg php-sysvsem php-sysvshm php-tclink php-tcpwrap php-tidy php-xml php-xmlrpc php-zip php5-ini

/etc/init.d/httpd restart

3获取有关您的PHP5安装的详细信息

除非您已经在Apache安装中创建了虚拟主机,否则默认网站的文档根目录是/ var / www / html 。 我们现在将在该目录中创建一个小型的PHP文件( info.php )(如果您已经创建了虚拟主机,将其放置在启用了PHP的任何虚拟主机中),并在浏览器中调用该文件。 该文件将显示有关我们的PHP安装的许多有用的细节,例如安装的PHP版本。

vi /var/www/html/info.php

<?php
phpinfo();
?>

现在我们在浏览器中调用该文件(例如http://192.168.0.100/info.php ):

如你所见,我们的PHP版本是5.2.1。

如果一切顺利,您现在应该在页面的两个地方看到Suhosin:

而已。 如果您喜欢,可以配置Suhosin(请参阅http://www.hardened-php.net/suhosin/configuration.html ),虽然Suhosin将使用其默认配置开箱即用,因此请确保您知道您的“重新做