linux下用源代码编译安装apache2.x + php5.x

  • 下载Apache文件:wget http://archive.apache.org/dist/httpd/httpd-2.2.20.tar.gz
  • 解压缩,然后:

    ./configure --prefix=/data/system/apache --enable-so --enable-modules=all --enable-mods-shared=all --enable-cache --enable-file-cache --enable-mime-magic --with-ssl --with-mpm=worker --enable-mem-cache --enable-disk-cache --enable-static-support --enable-static-htpasswd --enable-static-htdigest --enable-static-rotatelogs --enable-static-logresolve --enable-static-htdbm --enable-static-ab --enable-static-checkgid --enable-mod_cgi --enable-ssl --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-proxy-scgi --enable-proxy-ajp 

    make WITH_PROXY_MODULES=yes

    make install.

    • 将apache加入自启动:

    一般情况,如果是手动编译的话,apache是没有启动脚本的,也就是说用户不能通过简单的/etc/init.d/httpd(start|stop|restart)来启动/关闭/重新启动。
      其实在源码里已经有启动的脚本,我们要修改下即可,把Apache加入系统SysV服务中来。 
      在源码httpd-2.x.x/build/rpm中存在httpd.init
      拷贝命令如下:

    cp httpd.init /etc/init.d/httpd

    拷贝之后,注意其中有三处主要的地方需要修改下的: 

    httpd=${HTTPD-/usr/local/apache/bin/httpd}
    pidfile=${PIDFILE-/usr/local/apache/logs/${prog}.pid}
    CONFFILE=/usr/local/apache/conf/httpd.conf

    请根据自己的实际情况更改相应的路径!

    然后运行如下命令:

    chmod +x /etc/init.d/httpd
    chkconfig --add httpd
    chkconfig --level 2345 httpd on

    chkconfig --list|grep httpd
    httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

    这样一来,启动、停止、重启Apache就可以用以下方式了: 
    /etc/init.d/httpd start
    /etc/init.d/httpd stop
    /etc/init.d/httpd restart

     -Install PHP-----

    • 下载php5.3.18文件(wget http://us2.php.net/get/php-5.3.18.tar.gz/from/ar2.php.net/mirror)

    解压缩,然后:

    cd  src/php-5.3.18/

    ./configure --prefix=/usr/local/php5.3.18 --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php5.3.18/etc --with-mysql=/usr/local/mysql5 --with-mysqli=/usr/local/mysql5/bin/mysql_config --with-mysql-sock=/usr/local/mysql5/tmp/mysql.sock --with-iconv --with-gettext --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir= --enable-xml --with-layout=GNU --with-pcre-regex --enable-filter --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-simplexml --enable-libxml --enable-dom --enable-ftp --enable-shmop --enable-sysvsem --enable-json --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-mcrypt --enable-ctype --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --enable-fileinfo --enable-pdo --with-pdo-mysql=/usr/local/mysql5/ --enable-fastcgi  --enable-cgi --enable-gd-native-ttf --with-ldap --with-ldap-sasl

    (可能额外要加的命令:

    ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib

    cd extra/phar/

    cp ./phar.php ./phar.phar

    *如果是编译支持mysqlnd,MySQL本地的支持库,那么不需要安装好MySQL就可以安装PHP,把上面编译参数中的对应的3个替换成:

    --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd,这样编译出来mysql客户端库版本只和php源码中提供的mysql库一致。

    (可能额外要加的命令:

    tar -zxvf libmcrypt-2.5.7.tar.gz 或者yum install libmcrypt libmcrypt-devel

    cd libmcrypt-2.5.7

    cd libltdl

    ./configure --enable-ltdl-install

    make&&make install

    )

    *运行configure命令时间较短,10秒结束。

    make&&make install          

    *运行make命令时间较长,8分钟结束。

    #拷贝生成php.ini文件,上面默认编译是不会生成的.

    cp src/php-5.3.18/php.ini-production   /usr/local/php5.3.18/etc/php.ini

    ----------

    • 编辑 httpd.conf


    <IfModule !mod_php5.c>
        LoadModule php5_module lib/modules/libphp5.so
    </IfModule>

    <IfModule mod_php5.c>
        AddType application/x-httpd-php .php
        AddType application/x-httpd-php .php5
        AddType application/x-httpd-php-source .phps
        AddType application/x-httpd-php-source .php5s
        DirectoryIndex index.php
        DirectoryIndex index.php5

        PHPIniDir "/usr/local/php5.3.18/etc/"     //必须手工指定php.ini文件的目录,才能生效

    </IfModule>

     

    添加虚拟主机配置:

    Include conf/vhosts.conf
    --------

    • 添加PHP其他子模块,比如:curl

    cd /php-5.3.18/ext/curl/
    /usr/local/php5.3.18/bin/phpize
    ./configure --with-php-config=/usr/local/php5.3.18/bin/php-config
    make
    make install

    生成curl.so在目录
    编辑/usr/local/php5.3.18/etc/php.ini,加上

    extension_dir = "/usr/local/lib/php/extensions/no-debug-zts-20090626/curl.so"

     

    • 搭建vsftpd服务器

    yum install vsftpd. 

    通常我们要apache+wordpress建站,那么要建立的ftp帐号要能写到网站主目录,这种情况下,一般都是: 产生1个webuser用户,加入apache的daemon组,这样当后台产生目录的时候,owner是webuser:daemon,当把webuser加入到daemon组,同把目录的组写权限打开(777),那么webuser就能写文件到目录,apache自身运行用户也能写文件到目录, 所以执行顺序是 :

    1)增加用户webuser,加入到组daemon,主目录为ftp要上船的目录
    adduser -d /data/www/ -g daemon webuser
    passwd webuser

    chown -hR webuser:daemon /data/www/

    2)时刻保持目录为可写,在cronjob里加入定时任务,这样在wordpress后台创建的目录就是有可写权限了.
    crontab -e
        30 * * * * chmod -cR 777 /data/www/  

    3)其他可以能需要运行的命令:

    sudo -P setsebool allow_ftpd_full_access on

    give SELinux permissions to that directory:
    chcon -R -h -t httpd_sys_content_t /data/www/

     

    本文参考了:

    http://hi.baidu.com/travel981cn/item/bd198c578cdb269509be172f

    http://blog.sina.com.cn/s/blog_6238358c0100hhog.html

    http://teddysun.com/147.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值