sky 发表于 2014-5-27 08:24:57

lamp源码架构

LAMP(Linux- Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据 库,Perl、PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和 Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的 优势,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。
对于大流量、大并发量的网站系统架构来说,除了硬件上使用高 性能的服务器、负载均衡、CDN等之外,在软件架构上需要重点关注下面几个环节:使用高性能的操作系统(OS)、高性能的网页服务器(Web Server)、高性能的数据库(Database)、高效率的编程语言等。下面我将从这几点对其一一讨论。
下面给大家讲解一个源码搭建lamp的案例


安装环境:
Development tools            //开发工具

Server Platform Development   //服务器平台工具
httpd 2.4
mysql-5.6
PHP
phpmyadmin 3.5.1         //MySQL页面管理工具


第一步:安装mysql
1.yum --disablerepo=* --enablerepo=c6-media install libaio //libaio-dev包的作用是为了支持同步I/O。对于数据库之类的系统特别重要
2.拆包解压(注意这里的mysql是二进制文件)
      tar-zxvfmysql-5.6.15-linux-glibc2.5-x86_64.tar.gz   -C/usr/local/   
3.创建链接
    ln -s mysql-5.6.15-linux-glibc2.5-x86_64/mysql
4.创建用户以及组
    groupadd-rmysql
    useradd -r -g mysqlmysql
5.更改权限,进入mysql目录下
   chown   -R mysql:mysql.
    ./scripts/mysql_install_db   --user=mysql
   chown-Rroot.
   chown-Rmysqldata
6.生成配置文件和控制脚本
    cp my.cnf/etc    //配置文件
    cp mysql.server   /etc/init.d/mysqld//控制脚本
    chmod   a+x/etc/init.d/mysqld
    开启mysql服务,并且开机自启
    service mysqld start
    chkconfig--add   mysqld
    chkconfig   mysqld on
7.改变环境变量,便于使用
   vim /etc/profile
   PATH=$PATH:/usr/local/mysql/bin
.   /etc/profile
8.mysql库文件的输出
    echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf
   ldconfig//更新库文件
9.生成说明文件
   echo "MANPATH /usr/local/mysql/man" >>/etc/man.conf



第二步.安装httpd(注意安装http之前首先要安装apr和apr-utils)
APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。在早期 的Apache版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数。随着Apache的进一步开 发,Apache组织决定将这些通用的函数独立出来并发展成为一个新的项目。这样,APR的开发就从Apache中独立出来,Apache仅仅是使用 APR而已。目前APR主要还是由Apache使用,不过由于APR的较好的移植性,因此一些需要进行移植的C程序也开始使用APR,开源项目比如 Flood loader tester(http://httpd.apache.org/test/flood/,该项目用于服务器压力测试,不仅仅适用于Apache)、
一般情况下,APR开发包很容易理解为仅仅是一个开发包,不过事实上并不是。目前,完整的APR实际上包含了三个开发包:apr、apr-util以及apr-iconv,每一个开发包分别独立开发,并拥有自己的版本。

1.安装apr
tar -zxvf apr-1.4.6.tar.gz -C /usr/local/src/
    ./configure --prefix=/usr/local/apr

    make&& makeinstall
2.安装apr-util
   tar -zxvf apr-util-1.5.1.tar.gz -C /usr/local/src/
    ./configure --prefix=/usr/local/apr-utils --with-apr=/usr/local/apr/bin/apr-1-config
    make&&makeinstall
3.安装httpd-2.4.9
   yum --disablerepo=* --enablerepo=c6-media install pcre-devel //动态链接库
    (PCRE库是一组实现正则表达式模式使用相同的语法和语义的Perl 5匹配函数。PCRE有其自己的本地API,以及一套包装功能,符合POSIX正则表达式API。PCRE库是免费的,即使建立专有软件。 PCRE原是为该MTA写的,但现在已被许多知名的开源项目,包括Apache,PHP,KDE,后缀,模拟,和nmap。PCRE也发现到一些众所周知的商业产品,如苹果的Safari。其他一些有趣的项目采用PCRE包括鸡肉,铁氧体,玛瑙,hypermail,Leafnode,askemos,和温岭。)
4.拆包解压编译安装
   tar -jxvf httpd-2.4.9.tar.bz2 -C /usr/local/src/
./configure
   --prefix=/usr/local/apache
--sysconfdir=/etc/httpd(配置路径)
   --enable-so    (启用以dso模式加载模块)
   --enable-ssl
   --enable-rewrite   (重定向)
   --with-apr=/usr/local/apr/bin/apr-1-config
   --with-apr-util=/usr/local/apr-utils/bin/apu-1-config
   --with-pcre
   -with-z
   --enable-mpms-shared=all
注意编译的时候会出现下面错误

解决办法:yum install openssl-devel

   make&& make install
5.改变环境变量
   vim/etc/profilePATH=$PATH:/usr/local/apache/bin

   .    /etc/profile   //执行一遍
6.生成手册
    echo "MANPATH /usr/local/apache/man">>/etc/man.conf
7.控制文件
# vim /etc/init.d/httpd
# chmod a+x /etc/init.d/httpd
最后开启服务
测试成功如下



第三步:php的安装
   1.拆包解压
    tar -jxvf php-5.5.8.tar.bz2 -C /usr/local/src/
   2.编译安装



   ./configure
   --prefix=/usr/local/php
   --with-config-file-path=/etc/php
   --with-config-file-scan-dir=/etc/php5.d
    --with-apxs2=/usr/local/apache/bin/apxs(将php编译成apache的模块,允许apache的apxx调用该模块)
   --with-mysql=/usr/local/mysql (指明mysql的安装位置)
   --with-mysqli=/usr/local/mysql/bin/mysql_config (调用myql接口 )
    --enable-mbstring=all

解决办法:
   yum install libxml2   yum install libxml2-devel -y 3.安装 make && make install 注意,安装的时候可能会出现下面错误解决办法:在./configure后面加上 --disable-fileinfo

4. 创建目录
    mkdir -pv /etc/php /etc/php5.d

5.在httpd.conf加入AddType application/x-httpd-php .php,然后重启httpd服务

6.在源码目录下拷贝初始化文件
cp php.ini-development /etc/php/php.ini
7.编辑vim /usr/local/apache/htdocs/index.php,然后进行测试和mysql的相连是否成功

测试成功如下


到这里源码搭建lamp已经完成

页: [1]
查看完整版本: lamp源码架构