设为首页 收藏本站
查看: 906|回复: 0

[经验分享] apache php 整合

[复制链接]

尚未签到

发表于 2015-7-31 12:30:36 | 显示全部楼层 |阅读模式
官方参考地址





软件:(红色为必做项目)

httpd 2.2.14



php 5.2.17

  



安装步骤:






  • 构建并安装Apache。请参考Apache安装文档了解构建Apache的更多细节。







    cd httpd-2_x_NN
    ./configure --enable-so
    make
    make install
    其他(
    ./configure --prefix=/usr/local/apache-2.2.15  --enable-so --enable-mods-shared=most --with-mpm=worker
    [iyunv@test-AS4 httpd-2.2.15]# make
    [iyunv@test-AS4 httpd-2.2.15]# make install
    #  --prefix= 指明编译后的二进制文件安装到目录,用实际安装路径替换,如--prefix=/usr/local/apache-2.2.15 ,如果省略此配置参数,默认安装到/usr/local/apache2目录。
    #  --enable-so 指明编译动态加载模块(DSO)支持到httpd二进制文件,此模块使得Apache的各功能模块可以与核心分开编译、运行时动态加载。有了DSO支持,升级和增加模块时只需编译相关的模块即可,不必重新编译整个系统。最新版本的Apache缺省编译此模块到httpd二进制文件,如果你在使用早期版本的apache并且需要DSO支持,可能要明确指出此选项。
    #  --enable-mods-shared= 明确指明要以DSO方式编译的模块,为空格分隔的模块名列表、all或者most,all表示包含所有模块,most表示包含大部分模块,如--enable-mods-share="rewrite deflate",--enable-mods-share=most,效果等同于多个--enable-=share
    # --with-mpm= 先择Apache多路处理模块,={beos|event|worker|prefork|mpmt_os2},prefork为Unix系统下默认处理模块,它将运行一个非线程型的、预派生的Web服务器,适合于没有线程安全库,需要避免线程兼容性问题的系统,它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求。worker为支持混合的多线程多进程的多路处理模块,由于使用线程来处理请求,所以可以处理海量请求,而系统资源的开销小于基于进程的MPM,同时,它也使用了多进程,每个进程又有多个线程,以获得基于进程的MPM的稳定性。如果你的系统是基于线程安全的,那么笔者建议使用worker替代prefork,它将使得你的系统得到实际的性能改善。
    )

  • 现在已经将 Apache 2.x.NN 安装在 /usr/local/apache。本安装支持可装载模块 和标准的 MPM prefork。之后,可以使用如下命令启动 Apache 服务器:







    /usr/local/apache2/bin/apachectl start


    如果成功,可以停止 Apache 服务器并继续安装 PHP:






    /usr/local/apache2/bin/apachectl stop

  • 现在需要配置并构建 PHP。在这里可以用各种各样的参数来自定义PHP,例如启动哪些 扩展功能包的支持等。用 ./configure --help 命令可以列出当前可用的所有参 数。在此例中,将给出一个在有 MySQL 支持的 Apache 2 上进行配置的范例。
    如果按照上面的说明从源代码构建了Apache,下面的例子会正确匹配apxs的路径。如果通过其他方式安装了Apache,需要相应的调整apxs的路径。注意,在有些发行版本中,可能将apxs更名为apxs2。







    cd ../php-NN
    ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
    make
    make install


    如果决定在安装后改变配置选项,只需重复最后的三步configure, make, 以及 make install,然后需要重新启动 Apache 使新模块生效。Apache不需要重新编译。
    请注意,除非明确有提示,否则“make install”命令将安装 PEAR、各种 PHP 工具 诸如 phpize,安装 PHP CLI 等等。


  • 配置 php.ini







    cp php.ini-development /usr/local/lib/php.ini


    可以编辑 php.ini 来设置 PHP 运行时的选项。如果想要把此文件放到另外的位置, 需要在步骤 10 添加 --with-config-file-path=/path 选项。
    如果选择了php.ini-production,请务必阅读其中的变更的列表,它们将影响 PHP 的执行。


  • 编辑 httpd.conf 文件以调用 PHP 模块。LoadModule 表达式右边的路径必须指向 系统中的 PHP。以上的 make install 命令可能已经完成了这些,但务必要检查。







    LoadModule php5_module modules/libphp5.so

  • 告知 Apache 将特定的扩展名解析成 PHP,例如,让 Apache 将扩展名 .php 解析成 PHP。为了避免潜在的危险,例如上传或者创建类似exploit.php.jpg的文件并被当做 PHP 执行,我们不再使用 Apache 的 AddType 指令来设置。参考下面的例子,你可以简单的将需要的扩展名解释为 PHP。我们演示为增加.php。








    SetHandler application/x-httpd-php


    或者,你也想将 .php, .php2, .php3, .php4, .php5, .php6, 以及 .phtml 文件都当做 PHP 来运行,我们无需额外的设置,仅需按照下面这样来:








    SetHandler application/x-httpd-php


    然后,可以将 .phps 文件由 PHP 源码过滤器处理,使得其在显示时可以高亮源码,设置如下:








    SetHandler application/x-httpd-php-source


    mod_rewrite 也有助于将那些不需要运行的 .php 文件的源码高亮显示,而并不需要将他们更名为 .phps 文件:







    RewriteEngine On
    RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]

    不要在正式生产运营的系统上启动 PHP 源码过滤器,因为这可能泄露系统机密或者嵌入的代码中的敏感信息。

  • 按照通常的方式启动 Apache 服务:







      /usr/local/apache2/bin/apachectl start

red hat 下安装错误:
/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:2419: undefined reference to `libiconv_open'
  collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1

  参考地址:
http://hi.baidu.com/ostech/blog/item/a63f9b0dabed1ae7ab6457d0.html
解决方法:
#wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
#tar -zxvf libiconv-1.13.1.tar.gz
#cd libiconv-1.13.1
# ./configure --prefix=/usr/local/libiconv
# make
# make install
再检查php
    ./configure --with-curl --with-apxs2=/usr/local/apache2/bin/apxs --enable-sockets --with-iconv=/usr/local/libiconv
  参考:
#./configure --with-mysql=/backup/mysql --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-curl --with-gd --enable-gd-native-ttf
  --with-apxs2=/usr/local/apache/bin/apxs --enable-sockets --with-iconv=/usr/local/libiconv
#make
#make install
另一种解决方法为去除iconv模块也能正常编译php,如下:
編輯 Makefile 大約 77 行左右的地方:
EXTRA_LIBS = ..... -lcrypt
在最後加上 -liconv,例如:
EXTRA_LIBS = ..... -lcrypt -liconv
再运行make就可以了。
  最后一种方法:由tonyty163提供:
#make ZEND_EXTRA_LIBS='-liconv'
#make install


注意php.ini权限问题

mysql-devel-5.1.47-4.el6.x86_64
mysql-server-5.1.47-4.el6.x86_64
mysql-libs-5.1.47-4.el6.x86_64
mysql-connector-odbc-5.1.5r1144-7.el6.x86_64
mysql-5.1.47-4.el6.x86_64

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-92739-1-1.html 上篇帖子: apache win openssl 下篇帖子: Apache Spark源码走读之8
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表