免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6363 | 回复: 5
打印 上一主题 下一主题

源码安装apache2.2.15,php5.3.2(同时支持Apache Handler和FastCGI),添加SSL [复制链接]

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-20 15:20 |只看该作者 |倒序浏览
本帖最后由 renxiao2003 于 2010-07-21 14:09 编辑

在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。

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
2 [报告]
发表于 2010-07-20 16:59 |只看该作者
本来想试试fastcgi方式安装php5.3的,但是一直不成功!
参考了http://www.weizhifeng.net/?p=938这个文章,但是还是不明白,怎么双多出个apache的fpm或者是php-fpm这么个东东。没有配置成功呢。

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
3 [报告]
发表于 2010-07-21 10:46 |只看该作者
本帖最后由 renxiao2003 于 2010-07-22 16:43 编辑

通过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方式解析。
Allow from all这句话是必须添加的。要不会出现HTTP 403错误。

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
4 [报告]
发表于 2010-07-21 10:51 |只看该作者
我的httpd.conf文件

以apache php handler 解析 php

以fastcgi方式解析php

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
5 [报告]
发表于 2010-07-21 14:22 |只看该作者
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

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
6 [报告]
发表于 2010-07-22 16:57 |只看该作者
安装结束后,需要将源码目录下的php.ini-production(或者php.ini-development)拷贝到with-config-file-path指定的目录,并重命名为php.ini
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP