LAMP架构浅析

 

一、LAMP简介 

Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。LAMP具有Web资源丰富、轻量、快速开发等特点,微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的 优势,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。

二、本实验目的

通过简单编译安装可实现各服务器互相连接,从而对lamp有更清晰的认识。

三、实验环境

Apache-2.4.9(ip 172.16.100.86),php-5.4.26(ip 172.16.100.86),Mariadb-5.5.36(ip172.16.100.91)。在此处Apache和php(php在次作为一模块存在)安装到同一个虚拟机上,Mariadb单独一个。

四、编译安装Apache2.4.9

httpd-2.4.9需要较新版本的apr和apr-util,因此需要事先对其进行升级。升级方式有两种,一种是通过源代码编译安装,一种是直接升级rpm包。装之前还需装载pcre和开发包组。这里选择使用编译源代码的方式进行,可执行#lftp://172.16.0.1。找到apr-1.5.0.tar.bz2,apr-util-1.5.3.tar.bz2,httpd-2.4.9.tar.bz2。并下载下来。

    (1) 编译安装apr

# tar xf apr-1.5.0.tar.bz2

# cd apr-1.5.0

# ./configure --prefix=/usr/local/apr

# make && make install

   (2) 如若没问题即编译安装apr-util

# tar xf apr-util-1.5.3.tar.bz2

# cd apr-util-1.5.3

# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

# make && make install

  (3)编译安装httpd-2.4.9

首先下载httpd-2.4.9到本地,下载路径为ftp://172.16.0.1/pub/Sources/new_lamp。而后执行如下命令进行编译安装过程:

# tar xf httpd-2.4.9.tar.bz2

# cd httpd-2.4.9

# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event

# make && make install

   (4)修改httpd的主配置文件,设置其Pid文件的路径

编辑/etc/httpd24/httpd.conf,需添加如下行:PidFile  "/var/run/httpd.pid"

wKiom1Pri7fifdwxAAAMAbVFAuE406.png 

添加情况如下

wKioL1PrjNDgAGiWAAAI8QgNq3Y344.png 

  (5)提供SysV服务脚本/etc/rc.d/init.d/httpd。而后为此脚本赋予执行权限:# chmod +x /etc/rc.d/init.d/httpd,并加入服务列表:# chkconfig --add httpd

五、 编译安装Mariadb-5.5.36

(1)确保没有rpm包安装的mysql,

执行#lftp172.16.0.1

>cd /pub/Sources/6.x86_64/mariadb/

>get mariadb-5.5.36.tar.bz2

下载完成之后先不要忙着装载,要明白数据对于企业来说很重要。因此需要使用专门存储数据的盘,数据如果越来越大也是个问题那么把数据放到逻辑卷中最好了。

(2)创建逻辑卷

#fdisk /dev/sda 点p查看磁盘分区,n新建,如果新建第三个且给+15G大小,而后点t ,3,8e,w保存退出。

#partx -a /dev/sda

#kpartx -af /dev/sda

#cat /proc/partition

接下来创建逻辑卷

#pvcreate /dev/sda3

#vgcreate  myvg /dev/sda3

#lvcreate -L 5G -n mydata myvg

#mke2fs -t ext4 -L MYDATA -b 2048 -m 3 /dev/myvg/mydata //格式化完成

#mkdir /mydata

#vim /etc/fstab

wKiom1Pri7iCsrW-AAAdbmYG-XQ032.png 

#mount -a

#mkdir /mydata/data

#groupadd -r mysql

#useradd -g mysql -r mysql

#id mysql  

#chown -R mysql:mysql /mydata/data

#cd /usr/local

#ln -sv mariada[tab] mysql

#cd /usr/local/mysql

#ll    //查看属组情况

#chown -R root:mysql ./

在support -files目录下有很多样例文件需要先创建目录#mkdir /etc/mysql而后可以执行#cp support -files/my-large.conf /etc/mysql/my.cnf 接下来就可以在#vim /etc/mysql/my.cnf 里面添加datadir=/mydata/data 指定路径

下面就要初始化数据库,切到mysql目录下

# scripts/mysql_install_db  --user=mysql --datadir=/mydata/data

而后启动服务

#cp support -files/mysql.server /etc/rc.d/init.d/mysqld

#chkconfig --add mysqld

#chkconfig --list mysqld

还要在#vim /etc/profile.d/mysql.sh 中添加 export PATH=/usr/local/mysql/bin:$PATH

#source /etc/profice,d/mysql.sh    可运行。

六、编译安装php-5.4.26

   (1)先执行

# yum -y groupinstall Desktop Platform Development

# yum -y install bzip2-devel libmcrypt-devel

   (2)编译安装php-5.4.26

首先,#lftp://172.16.0.1找到资源下载

# tar xf php-5.4.26.tar.bz2

# cd php-5.4.26

# ./configure --prefix=/usr/local/php --with-mysql=mysqlnd --with-openssl --with-mysqli=mysqlnd --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2  --enable-maintainer-zts

make && make intall

# cp php.ini-production /etc/php.ini  //为php提供配置文件

    (3)编辑apache配置文件httpd.conf,以apache支持php

 # vim /etc/httpd/httpd.conf

wKiom1Pri7jhoRbJAAAZQLdCGVc228.png 

    定位至DirectoryIndex index.html 

wKioL1PrjNHRnJtTAAARaYmNEa8556.png 

而后重新启动httpd,或让其重新载入配置文件即可测试php是否已经可以正常使用。

    (4)测试页面index.php示例如下:

    <?php

      $link = mysql_connect('172.16.100.91','root','chyu');

      if ($link)

        echo "Success...";

      else

        echo "Failure...";

      mysql_close();

      phpinfo();

?>

(5)使用浏览器测试结果如下:

wKioL1PrjNOybxYFAAC903xwHh0513.png