Apache2-SSL-PHP5-Howto(+ Zend Optimizer And IonCube Loader)
版本1.0
作者:Falko Timme
本文档介绍如何使用SSL和PHP5(使用Zend Optimizer和ionCube Loader)安装Apache Web服务器(2.0.x)。
这是一个实践指南; 它不包括理论背景。 他们在网络上的许多其他文档中被处理。
本文档不附带任何形式的保证!
1获取来源
我们需要以下软件:openssl,apache(2.0.x)和PHP5。 我们将从/ tmp目录安装软件。
cd / tmp
wget http://www.openssl.org/source/openssl-0.9.7g.tar.gz
wget http://ftp.plusline.de/ftp.apache.org/httpd/httpd-2.0.53.tar.gz
然后去http://www.php.net下载最新的PHP版本(在本文撰写的时候是5.0.4)。 将其下载到/ tmp目录。
2安装Openssl
tar xvfz openssl-0.9.7g.tar.gz
cd openssl-0.9.7g
./config
使
安装
3配置安装Apache2
cd / tmp
tar xvfz httpd-2.0.53.tar.gz
cd httpd-2.0.53 /
./configure --enable-ssl --with-ssl = / usr / local / ssl / --enable-suexec --with-suexec-docroot = / usr / local --enable-cgi --enable-rewrite - enable-so --enable-logio --prefix = / usr / local / apache --enable-module = most --enable-shared = max --bindir = / usr / bin --sbindir = / usr / sbin - sysconfdir = / etc / httpd (1行!)
请注意:您可以更改configure命令以满足您的需要。 类型
./configure --help
获取所有配置选项的列表!)
使
安装
这将在/ usr / local / apache下安装Apache2。 Web根目录是/ usr / local / apache / htdocs ,日志目录是/ usr / local / apache / logs 。
如果要使用SSL支持启动我们的Apache2,我们必须生成文件/etc/httpd/ssl.crt/server.crt ,否则我们在启动Apache2时会收到一条错误消息。
mkdir /etc/httpd/ssl.crt
openssl genrsa -des3 -passout传递:asecretpassword -out /etc/httpd/ssl.crt/server.key.org 1024
openssl req -new -passin pass:asecretpassword -passout pass:asecretpassword -key /etc/httpd/ssl.crt/server.key.org -out /etc/httpd/ssl.crt/server.csr -days 3650
openssl req -x509 -passin pass:asecretpassword -passout pass:asecretpassword -key /etc/httpd/ssl.crt/server.key.org -in /etc/httpd/ssl.crt/server.csr -out / etc / httpd /ssl.crt/server.crt -days 3650
openssl rsa -passin pass:asecretpassword -in /etc/httpd/ssl.crt/server.key.org -out /etc/httpd/ssl.crt/server.key
mkdir /etc/httpd/ssl.key
mv /etc/httpd/ssl.crt/server.key /etc/httpd/ssl.key/server.key
chmod 400 /etc/httpd/ssl.key/server.key
( 请注意:在您创建/etc/httpd/ssl.crt/server.crt时,您可以接受所有问题的默认值,因为在任一情况下,如果您尝试访问,您将在浏览器中收到警告服务器上的SSL站点:
如果你不想得到这个警告,你必须得到一个“真正的”SSL证书(但这不是免费的!)。 看看以下网站:
- http://www.instantssl.com/ (我会推荐这个。)
- http://www.verisign.com/
- http://www.thawte.com/
- http://www.baltimore.com/
- http://www.ipsca.com/
- http://www.entrust.com/
- http://www.geotrust.com/ )
4安装PHP5
cd / tmp
tar xvfz php-5.0.4.tar.gz
./configure --with-apxs2 = / usr / sbin / apxs --with-mysql = / var / lib / mysql --enable-track-vars --enable-sockets --with-config-file-path = etc --enable-ftp --with-zlib --with-openssl = / usr / local / ssl --enable-force-cgi-redirect --enable-exif --with-gd --enable-memory-limit - -disable-debug --disable-rpath --disable-static --with-pic --with-layout = GNU --enable-calendar --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable- trans-sid --enable-bcmath --with-bz2 --enable-ctype --with-db4 --with-iconv --enable-filepro --with-gettext --enable-mbstring --enable-shmop - enable-wddx --disable-xml --with-xmlrpc --enable-yp --with-zlib --without-pgsql --enable-dbx --enable-experimental-zts --without-mm --enable-gd -native-ttf --with-imap-ssl --enable-soap --enable-dbase (1行!)
( 请注意:您可以更改configure命令以满足您的需要
./configure --help
获取所有可用配置选项的列表! 在PHP5中,必须指定--with-mysql [= DIR]选项,否则PHP5不会有MySQL支持! 是的,在运行./configure语句之前,必须先安装MySQL。 如果您从一个软件包(.rpm或.deb)安装MySQL,请确保您还安装了相应的mysql-devel软件包! 否则,./ configure语句将中止错误消息。
如果使用--with-gd,并且由于缺少libpng库而收到错误消息,请安装它,然后重新运行configure命令。 在Debian,
apt-get install libpng-dev libpng2 libpng2-dev libpng3
工作正常我安装libpng 。 如果您有基于rpm的发行版,请使用http://www.rpmfind.net为您找到rpm,或者查看http://www.libpng.org/pub/png/libpng.html 。)
使
安装
这将安装一个可以从命令行运行的PHP二进制文件(通常在/ usr / local / bin / php下 )以及一个Apache模块。
现在我们必须创建/etc/php.ini。 最简单的方法是使用PHP源代码:
cp /tmp/php-5.0.4/php.ini-dist /etc/php.ini
如果你喜欢,现在可以修改/etc/php.ini来满足你的需要。
5配置Apache
现在我们必须在/etc/httpd/httpd.conf (在处理文档类型的部分中添加以下条目);应该有如AddHandler或AddType这样的条目):
AddHandler cgi-script .cgi
AddHandler cgi-script .pl
AddType text / html .shtml
AddOutputFilter INCLUDES .shtml
AddType application / x-httpd-php .php .php5 .php4 .php3
创建/etc/init.d/httpd :
#!/bin/sh case "$1" in start) /usr/sbin/apachectl startssl ;; stop) /usr/sbin/apachectl stop ;; restart) $0 stop && sleep 3 $0 start ;; reload) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac |
chmod 755 /etc/init.d/httpd
为了在启动时启动Apache ,请执行以下操作:
ln -s /etc/init.d/ httpd /etc/rc2.d/S20 httpd
ln -s /etc/init.d/ httpd /etc/rc3.d/S20 httpd
ln -s /etc/init.d/ httpd /etc/rc4.d/S20 httpd
ln -s /etc/init.d/ httpd /etc/rc5.d/S20 httpd
ln -s /etc/init.d/ httpd /etc/rc0.d/K20 httpd
ln -s /etc/init.d/ httpd /etc/rc1.d/K20 httpd
ln -s /etc/init.d/ httpd /etc/rc6.d/K20 httpd
然后启动你的Apache:
/etc/init.d/httpd开始
6测试您的配置
netstat -tap
应该告诉你Apache2使用端口80(http)和443(https)。
现在转到/ usr / local / apache / htdocs并创建一个名为info.php的文件,内容如下:
<?php phpinfo(); php?> |
尝试使用浏览器(例如使用服务器的IP地址)通过http (例如http://192.168.0.1/info.php )和https ( https://192.168.0.1/info.php )访问它。 输出应与此截图类似:
7安装Zend Optimizer和IonCube Loader
如果要运行使用Zend编码器编码的 PHP文件,则需要Zend Optimizer。 如果要运行已经使用ionCube PHP Encoder编码的 PHP文件,则需要使用ionCube Loader。 我将展示如何安装两者。
IonCube装载机
从http://downloads.ioncube.com/loader_downloads获取最新版本的ionCube Loader。
cd / tmp /
wget http://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
tar xvfz ioncube_loaders_lin_x86.tar.gz
cd ioncube /
mkdir / usr / local / lib / ioncube
mv ioncube_loader_lin_5.0.so / usr / local / lib / ioncube /
现在编辑/etc/php.ini并在开头添加行zend_extension = / usr / local / lib / ioncube / ioncube_loader_lin_5.0.so行:
[PHP] zend_extension=/usr/local/lib/ioncube/ioncube_loader_lin_5.0.so |
Zend Optimizer
从http://www.zend.com/store/free_download.php获取最新版本的Zend Optimizer,并将其保存在/ tmp /目录中。
cd / tmp /
tar xvfz ZendOptimizer-2.5.7-linux-glibc21-i386.tar.gz
cd ZendOptimizer-2.5.7-linux-glibc21-i386 / data / 5_0_x_comp /
mkdir / usr / local / lib / Zend
mv ZendOptimizer.so / usr / local / lib / Zend /
编辑/etc/php.ini ,并在文件的[PHP]部分添加两行以上,使其如下所示:
[PHP] zend_extension=/usr/local/lib/ioncube/ioncube_loader_lin_5.0.so zend_extension=/usr/local/lib/Zend/ZendOptimizer.so zend_optimizer.optimization_level=15 |
现在重新启动Apache2:
/etc/init.d/httpd restart
如果您重新加载您在第6步中创建的info.php ,您现在应该看到页面上提到了ionCobe Loader和Zend Optimizer:
链接
Apache: http : //www.apache.org/
OpenSSL: http : //www.openssl.org/
PHP: http : //www.php.net/
Zend: http : //www.zend.com/
ionCube: http : //www.ioncube.com/