zoukankan      html  css  js  c++  java
  • httpd无法加载libphp5.so模块

    安装httpd-2.2.8 和php-5.2.5,一切顺利。

    最后一步重新启动apache报如下错误:

    httpd: Syntax error on line 53 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied

    原因:是Linux有一个SELinux保护模式引起的。

    解决办法:

    1关闭SELINUX的方法:

    vi /etc/selinux/config 将SELINUX=enforcing 改成SELINUX=disabled 需要重启

    这个方法可能会对服务器带来风险。

    2不关闭SELINUX的方法:(试过可以)

    # setenforce 0

    # chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache/modules/libphp5.so

    我用的命令是chcon  -t texrel_shlib_t /usr/local/apache/modules/libphp5.so

    # service httpd restart

    # setenforce 1

    有 很多apache的Permission denied问题都是SELINUX引起的,
    如果在Redhat Enterprise Linux 4.0或Fedora Core 2 Linux以上版本的Linux中,
    关闭SELINUX试试
    # vi  /etc/selinux/config
    看看SELINUX选项是否为disabled,若不是
    改成SELINUX=disabled

    libphp5.so可能遇到的问题(转摘)

    安装完APACHE和PHP5后,经常在启动APACHE载入libphp5.so时发现问题。我把遇到的问题统计下来:


    1。undefined symbol:SQLITE3 SELECT.....
    解决:

    ZLIB编译安装

    2。cannot restore segment prot after reloc: Permission denied
    解决:

    SELINUX的问题,对LIB库的保护。

    打该命令:chcon -t texrel_shlib_t libphp5.so

    3。undefined symbol:zend_ini_string......
    解决:

    确保已安装libxml2,zlib,如果不行就把expat也装上.我装的版本分别为libxml2-2.6.26,zlib-1.2.3,expat-2.0.0.PHP用的是5.2.1,APACHE为2.2.4版本.
    删除所有libphp5.so,删除php5的安装源,tar个新的安装源(直接make clean可能也行),重新编译,用最简单的编译,如下:
    ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs ---with-config-file-path=/etc

    编译安装,一切OK,修改APACHE的httpd.conf,添加

    AddType application/x-httpd/php .php
  • 相关阅读:
    Android 操作系统架构开篇
    《构建之法》读后感
    《梦断代码》读后感
    学习日报
    学习日报
    记账本开发4
    记账本开发3
    学习日报
    学习日报
    记账本开发2
  • 原文地址:https://www.cnblogs.com/weiyiyong/p/7754198.html
Copyright © 2011-2022 走看看