源码安装apache2.2.15,php5.3.2(同时支持Apache Handler和FastCGI),添加SSL

在Linux下,用源码安装时,php5.3.2还是支持原来的“Apache 2.0 Handler module”方式的。但在WINDOWS已经不支持这种方式了。本文安装的软件为:
1)Apache2.2.15:http://labs.renren.com/apache-mirror/httpd/httpd-2.2.15.tar.bz2
2)php5.3.2:http://www.php.net/get/php-5.3.2.tar.bz2/from/a/mirror
3)MySQL:非源码安装(使用

  1. apt-get install mysql-server mysql-client libmysqlclient10-dev
复制代码

安装,在Ubuntu下;开发包必须安装,否则要使PHP支持MYSQL就会缺少头文件。)

1、安装Apache2.2.15

  1. tar -jxvf httpd-2.2.15.tar.bz2
  2. cd httpd-2.2.15
  3. /configure --prefix=/usr/local/apache --enable-module=so --enable-mods-shared=max
  4. make
  5. make install
复制代码

在configure时,如果输出config.status: executing default commands消息则正常结束。如有问题根据问题信息修改。
在make时,输出make[1]: Leaving directory `/tmp/httpd-2.2.15'则表示编译基本没有问题。
在make install时,输出

Installing header files
Installing build system files
Installing man pages and online manual
mkdir /usr/local/apache/man
mkdir /usr/local/apache/man/man1
mkdir /usr/local/apache/man/man8
mkdir /usr/local/apache/manual
make[1]: Leaving directory `/tmp/httpd-2.2.15'

则表示安装成功;
然后到/usr/local/apache/bin/httpd -k start启动,在浏览器输入网址http://localhost,输出“It works ”则表示APACHE服务已经正常启动。
2、安装PHP

  1. tar -jxvf php-5.3.2.tar.bz2
  2. cd php-5.3.2
  3. ./configure --prefix=/usr/local/php --with-mysql --with-config-file-path=/usr/local/php/etc --enable-fast-install --with-apxs2=/usr/local/apache/bin/apxs
  4. make
  5. make install
复制代码

在make install前,PHP建议执行make test进行测试。
在configure,得到输出信息

+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE.  By continuing this installation |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.


则证明正常,如果添加了configure不认识的参数,可能会在下面还有一些信息,但只要上面信息出现,配置基本就正常了。比如在如上信息出现:

Notice: Following unknown configure options were used:

--enable-zlib

Check './configure --help' for available options


就是使用了configure不认识的参数enable-zlib
make时,得到

Build complete.
Don't forget to run 'make test'.


则编译正常。
然后是make install安装。
一般说来。在编译成功后,安装基本没有问题。
然后写个php文件放到/usr/local/apache/htdocs下,如

  1. <?php
  2.     phpinfo();
  3. ?>
复制代码

在浏览器输入http://localhost/index.php,如果输出版本信息,则PHP安装成功。

注意:
我在安装PHP后,停止APACHE时,出现如下提示:

httpd: Syntax error on line 54 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: undefined symbol: zend_parse_parameters.


这是没有安装bison,如果是在ubuntu下,用apt-get install bison安装后,重新编译安装PHP。就正常。
重新安装命令如下:

  1. make distclean
  2. ./configure --prefix=/usr/local/php --with-mysql --with-config-file-path=/usr/local/php/etc --enable-fast-install --with-apxs2=/usr/local/apache/bin/apxs
  3. make
  4. make install
复制代码

看看你能成功吗?

编辑httpd.conf,在AddType application/x-gzip .gz .tgz后加上
    AddType application/x-httpd-php .php
让APACHE解析PHP。

通过1#安装后,已经使用Apache php handler来解析PHP了。
下面安装fastcgi方式支持php。
1、下载fastcgi源码http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz
     安装

  1. tar -zxvf mod_fastcgi-current.tar.gz
  2.      cd mod_fastcgi-2.4.6 #我下载的是这个版本
  3.    cp Makefile.AP2 Makefile
  4.     make top_dir=/usr/local/apache
  5.     make install
  6.    
复制代码

也可以直接修改Makefile文件,找到top_dir这一行,改成你的Apache的安装路径。
   这样在/usr/local/apache/modules目录下就多了一个mod_fastcgi.so文件了。
2、编译安装php
     重新解压PHP到一个新目录

  1.      tar -zxvf php-5.3.2.tar.bz2 -C /usr/local/src
  2.      cd /usr/local/src/php-5.3.2  
  3.      ./configure --prefix=/usr/local/phpcgi --with-mysql --with-config-file-path=/usr/local/php/ --enable-fast-install --enable-mbstring
  4.      make
  5.      make install
  6.      
复制代码

官方说configure时要加参数--enable-fastcgi,但5.3.2没有这个参数。可能没有--with-apxs2参数时就默认是CGI方式吧。
   我把CGI和APACHE HANDLER安装到不同目录了(php和phpcgi)。
   确认

  1. /usr/local/phpcgi/bin/php-cgi -v
复制代码

输出信息

PHP 5.3.2 (cgi-fcgi) (built: Jul 20 2010 15:51:57)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

则说明支持cgi了(cgi-fcgi)
3、修改apache配置文件
   加载fastcgi模块,将下面一行加入httpd.conf

  1. LoadModule fastcgi_module modules/mod_fastcgi.so
复制代码

让fastcgi解析php,将下列所有行加入httpd.conf

  1. ScriptAlias /fcgi-bin/ "/usr/local/phpcgi/bin/"
  2. #ScriptAlias /fcgi-bin/ /usr/local/apache/php-cgi/
  3. <Location /fcgi-bin/>
  4.     Options ExecCGI
  5.     SetHandler fastcgi-script
  6.     Allow from all
  7. </Location>
  8. FastCgiServer /usr/local/phpcgi/bin/php-cgi -processes 5
  9. AddType application/x-httpd-fastphp .phtp
  10. Action application/x-httpd-fastphp /fcgi-bin/php-cgi
复制代码

通过1#和3#配置后,同一个APACHE就支持apache php handler和fastcgi方式解析php了。
.php文件以apache php handler方式解析,而.phtp以fastcgi方式解析。

我的httpd.conf文件
httpd.zip (5.19 KB, 下载次数: 19)
以apache php handler 解析 php
php-apahce.JPG
以fastcgi方式解析php

1、安装openssl
    从http://www.openssl.org/source/openssl-1.0.0a.tar.gz下载openssl
    解压安装

  1. tar -zxvf openssl-1.0.0a.tar.gz
  2. cd openssl-1.0.0a
  3. ./configure
  4. make
  5. make install
复制代码

虽说可以用--prefix参数指定安装路径,但我指定了没起作用,给我安装到/usr/local/ssl下了。
2、重新安装Apache

  1.    ./configure --prefix=/usr/local/apache --enable-module=so --enable-mods-shared=most --enable-ssl --with-ssl=/usr/local/ssl
  2.    make
  3.    make install
复制代码

3、修改httpd.conf文件
  增加

  1. LoadModule actions_module modules/mod_actions.so
  2. LoadModule alias_module modules/mod_alias.so
  3. LoadModule asis_module modules/mod_asis.so
  4. LoadModule auth_basic_module modules/mod_auth_basic.so
  5. LoadModule authn_default_module modules/mod_authn_default.so
  6. LoadModule authn_file_module modules/mod_authn_file.so
  7. LoadModule authz_default_module modules/mod_authz_default.so
  8. LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
  9. LoadModule authz_host_module modules/mod_authz_host.so
  10. LoadModule authz_user_module modules/mod_authz_user.so
  11. LoadModule autoindex_module modules/mod_autoindex.so
  12. LoadModule cgi_module modules/mod_cgi.so
  13. LoadModule dir_module modules/mod_dir.so
  14. LoadModule env_module modules/mod_env.so
  15. LoadModule include_module modules/mod_include.so
  16. LoadModule log_config_module modules/mod_log_config.so
  17. LoadModule mime_module modules/mod_mime.so
  18. LoadModule negotiation_module modules/mod_negotiation.so
  19. LoadModule rewrite_module modules/mod_rewrite.so
  20. LoadModule setenvif_module modules/mod_setenvif.so
  21. LoadModule ssl_module modules/mod_ssl.so
复制代码

把#Include conf/extra/httpd-ssl.conf这句话的注释去掉,即去掉前面的#字。
修改conf/extra/httpd-ssl.conf,将ServerName server.example.com:443中的server.example.com改成你自己的域名。
4、生成证书
  以下命令在/usr/local/ssl下执行
  4.1 设置自己的CA

  1. openssl genrsa -des3 -out my-ca.key 2048
  2. openssl req -new -x509 -days 3650 -key my-ca.key -out my-ca.crt
  3.    
复制代码

4.2、生成服务器证书和KEY文件

  1. openssl genrsa -des3 -out server.key 1024
  2. openssl req -new -key server.key -out server.csr
  3. openssl x509 -req -in server.csr -out server.crt -sha1 -CA my-ca.crt -CAkey my-ca.key -CAcreateserial -days 3650
复制代码

注意:生成server.csr时,Common Name (eg, your name or your server's hostname) []:mars.vanemery.com <=== 必须输入自己的域名!!!

  这样重启Apache会要求你输入证书密码。这样就安装成功ssl了。

证书生成参照了:http://www.vanemery.com/Linux/Apache/apache-SSL.html

转载于:https://www.cnblogs.com/kudosharry/articles/2549610.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值