【LAP服务器搭建】Linux平台+Apache服务器+PHP语言源码安装及配置

来源:互联网 发布:网站实时弹幕 源码 编辑:程序博客网 时间:2024/06/05 00:44

最近发现自己曾经配过无数次的WEB服务器出现了一些小问题,原因是我换成了Linux平台,而以前也只是配配源码的Apache服务器,现在,我需要再添加PHP语言,使得Apache能解析PHP.本次安装全是源码安装,因此早早的把CentOS里面的Apache和PHP卸载了.
下面我来介绍下安装顺序。

  • Apache安装[2.4]版本
  • PHP 安装[5.3x以上]版本

别看安装的少,实际上需要许多依赖的.所以我在装之前先把依赖安装好
第一步:安装APACHE前提

  • apr包 1.5.2下载地址
  • apr-utils包 1.5.4下载地址
  • pcre包 8.37下载地址

安装 apr包

wget http://apache.fayea.com//apr/apr-1.5.2.tar.gztar -xvzf apr-1.5.2.tar.gzcd apr-1.5.2./configure --help 查看配置安装可选择的配置项这里我们可以看到 --prefix=--exec-prefix= 默认在prefix/bin下表示的是安装路径和执行路径./configure --prefix=/opt/aprmake && make installcd /opt/apr/binls 查看可执行文件apr-1-config

一般apr包是能安装的,如果缺少依赖的话,清查看错误异常,然后下载依赖包编译安装,再通过 ./configure –help去查看如何安装.

apr-util包安装

wget http://apache.fayea.com//apr/apr-util-1.5.4.tar.gztar -xvzf apr-util-1.5.4.tar.gzcd apr-util-1.5.4./configure --help 找到一些关键的选项--prefix=--with-apr= 需要有apr的支持./configure --prefix=/opt/apr-util --with-apr=/opt/aprmake && make installcd /opt/apr-util/binls 查看可执行文件apu-1-config 

安装好后,请不要先把这两个文件目录删除,在后面安装apache还需要用到.

pcre安装

wget http://sourceforge.net/projects/pcre/files/pcre/8.37/pcre-8.37.tar.gztar -xvzf pcre-8.37.tar.gzcd pcre-8.37./configure --help | grep prefix--prefix 可以使用./configure --prefix=/opt/pcremake && make install

这样三个依赖前提都已经安装好了,至于三个包分别起到什么作用,可以去搜索一下,如果介绍下去我也不是特别的懂.

第二步:安装apache
首先我们需要下载最新版本2.4.x版本

下载的时候使用命令行下载太慢,改用浏览器下载,实际是一样的.wget http://apache.dataguru.cn//httpd/httpd-2.4.12.tar.gztar -xvzf httpd-2.4.12.tar.gzcd httpd-2.4.12./configure --help--prefix= --enable-so 模块自动加载--enable-rewrite 开启重写模块--with-apr  依赖 apr--with-apr-util 依赖 apr-util--wtih-pcre  依赖pcre执行./configure --prefix=/opt/httpd  --enable-so   --enable-rewrite --with-apr-util=/opt/apr-util --with-apr=/opt/apr --with-pcre=/opt/pcre make && make install如果没有报错,那么cp apr 和 apr-util 两个包到srclib中就没有必要了.

第三步,将apache设置成服务项

cp /opt/httpd/bin/apachectl /etc/rc.d/init.d/httpdvi /etc/rc.d/init.d/httpd第1#!/bin/sh在第2行加入# chkconfig: - 85 15# description: Apache is a World Wide Web server. It is used to serve# HTML files and CGI.退出后使用chkconfig –add httpd就可以service httpd start|stop|status 了

这一段内容是截取网上的一些文章,自己也亲自测试过可行.

解决 “httpd: Could not reliably determine the server’s fully qualified domain name”问题

vi /opt/httpd/conf/httpd.conf临时办法ServerName 127.0.0.1:80原因是开启了一个域名对应主机的模块,当然可以取消使用模块.service httpd start这时候就可以看到 It Works! 的文字

查看apache的配置

/opt/httpd/bin/apachectl -V -D HTTPD_ROOT="/opt/httpd"  apache 根目录 -D SUEXEC_BIN="/opt/httpd/bin/suexec"  -D DEFAULT_PIDLOG="logs/httpd.pid" apache 主线程id -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_ERRORLOG="logs/error_log"  错误日志 -D AP_TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf" 配置文件路径

第四步,安装php前提
php也是有一定的依赖的,最近了解了下php-cli 和 php-cgi 两种模式,实际上这一次安装使用php-cli的方法,这就必须依赖apache的apxs命令了,它会编译一个lib5php.so的文件.
1. libxml2包 下载地址 ftp://gd.tuwien.ac.at/pub/libxml/libxml2-2.9.0.tar.gz

libxml2其它版本地址ftp://xmlsoft.org/libxml2/

wget ftp://gd.tuwien.ac.at/pub/libxml/libxml2-2.9.0.tar.gztar -xvzf libxml2-2.9.0.tar.gzcd  libxml2.9.0./configure --help--prefix./configure --prefix=/opt/libxml2make && make install这是安装php必须要指定的一个库.

第五步,安装php
关于php的源码下载,可以从官网去找链接,这里需要告诉大家,项目不同,使用的php版本也许也不同,最好是下载与项目要求的版本一致,这样在跨平台的时候,保证可行性.
php5.4.40 下载链接:http://cn2.php.net/get/php-5.4.40.tar.gz/from/this/mirror

wget http://cn2.php.net/get/php-5.4.40.tar.gz/from/this/mirror这里建议使用浏览器下载 用wget太慢了tar -xvzf php-5.4.40.tar.gzcd php-5.4.40./configure --help--prefix php 根目录--with-libxml-dir 支持依赖库路径--with-config-file-path  php.ini文件存放生效目录--with-config-file-scan-dir--with-apxs  让apache支持cli模式的php--bindir bin执行目录--sbindir sbin执行目录执行以下代码 ./configure  --prefix=/opt/php --with-libxml-dir=/opt/libxml2/ --with-config-file-path=/etc/php/php-5.4.40  --with-apxs2=/opt/httpd/bin/apxs make && make install

然后需要修改httpd.conf文件 加入解析脚本type

vi /opt/httpd/conf/httpd.confAddType  application/x-httpd-php  .php .phtml #细心的人应该看到 LoadModule 里面有一个libphp5.so 这就是通过apxs命令编译的模块,默认放在apache下的modules里面.

接下来我们测试apache是否支持php,不用多说,就写一个index.php,里面有phpinfo();

service httpd restartvi /opt/httpd/htdocs/index.php

index.php

<?phpphpinfo();?>

其实我们的机子里有两个php版本,而能用命令行直接读取的是旧的5.3.29版本,我把它的php命令软链接到path目录下.而apache读取的是我新安装的php5.4.40版本.说明apache读取的libphp5.so这个编译模块的内容.所以换一个php版本还需要再次编译咯.

tips小知识点
1. 查看php安装时 configure 内容

cd /opt/php/bin./php -i | grep configure

2.查看php已经的安装模块

./php -m[PHP Modules]Corectypedatedomeregfileinfofilterhashiconvjsonlibxmlpcre...
  1. 查看apache配置信息
cd /opt/httpd/bin./apachectl -V[root@lzx bin]# ./apachectl  -VServer version: Apache/2.4.12 (Unix)Server built:   May 13 2015 06:22:26Server's Module Magic Number: 20120211:41Server loaded:  APR 1.5.2, APR-UTIL 1.5.4Compiled using: APR 1.5.2, APR-UTIL 1.5.4Architecture:   32-bitServer MPM:     event  threaded:     yes (fixed thread count)    forked:     yes (variable process count)Server compiled with.... -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=256 -D HTTPD_ROOT="/opt/httpd" -D SUEXEC_BIN="/opt/httpd/bin/suexec" -D DEFAULT_PIDLOG="logs/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf"

这样基本的安装apache和php就完成了,有机会可以完善一下,添加php-cgi的安装模式.安装配置好后,就是为了之后编译phalcon框架.下次会介绍phalcon框架的编译和安装使用.

0 0