源码搭建LAMP环境
一,LAMP环境概述:
LAMP指的Linux(操作系统)、ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web 服务器。是一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案.
选择源码安装的理由:
使用源代码安装httpd可以获得最新的版本,因为每个软件发布更新时都源代码更新,另外就是功能齐全,源代码安装时保留了最初的信息。另外使用源代码安装非常的灵活,可以根据自己的要去设置相关的信息。
二,搭建LAMP的目的:
依据Apache的工作原理,搭建LAMP环境来架设网页论坛phpwind
三,搭建LAMP的环境:
虚拟机运行平台 VM10.0
类Linux系统为centos6.5
Apache为httpd-2.4.9.tar.bz2
mysql为mysql-5.6.15-linux-glibc2.5-x86_64.tar.gz
PHP为php-5.4.13.tar.bz2
其余的软件包为:
Discuz_X3.1_SC_GBK.zip
apr-1.4.6.tar.gz
apr-util-1.5.1.tar.gz
xcache-3.1.0.tar.gz
编译所需的环境包:
Development tools (一般情况下只安装这一个就可以了)
Serve platform development
Additional development
使用源码安装的好处
1.可安装最新的版本
2.有着更加丰富的功能
3.个性化设置
Apache和PHP结合的三种方式
1.模块
2.CGI
3.Fastcgi (PHP服务可以与Apache服务器分离,从而可以做到负载均衡)
四,LAMP环境实验拓扑(靠模块安装)
在进行实验之前,我们应该首先检查系统中是否安装的有与实验相关的软件包,如果之前安装过,则要清除
1.安装必要的软件包
[root@localhost Packages]# yum --disablerepo=\* --enablerepo=c6-media install pcre-devel openssl-devel libaio libaio-devel libxml2-devel libpng-devel libjpeg-turbo-devel –y
2.搭建Apache环境
对于Apache环境进行源码构建时,需要依赖apr和apr-util
对下载的apr和apr-util以及httpd源代码包拆解到/usr/local/src目录下
(1)拆解apr包:tar -zxvf apr-1.4.6.tar.gz -C /usr/local/src/ (2)拆解apr-util 包:tar -zxvf apr-util-1.5.1.tar.gz -C /usr/local/src/ (3)拆解httpd包:tar -jxvf httpd-2.4.9.tar.bz2 -C /usr/local/src/
(4)安装apr
cd apr-1.4.6/
(5)安装编译工具软件包
yum --disablerepo=\* --enablerepo=c6-media groupinstall "Development tools" –y
(6)检测编译环境:./configure --prefix=/usr/local/apr
(7)编译并安装:make && make install
(8)同样的道理,我们进入到apr-util的目录下安装apr-util
[root@localhost apr-util-1.5.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
(9)预编译环境没有问题后,编译并安装
[root@localhost apr-util-1.5.1]# make && make install
(10)安装Apache
进入Apache代码包解压的目录下 cd httpd-2.4.9/ 预编译执行下列选项: [root@localhost httpd-2.4.4]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-rewrite --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr-util/bin/apu-1-config --with-pcre --with-z --enable-mpms-shared=all --with-mpm=prefork
(11)编译并安装
[root@localhost httpd-2.4.4]# make && make install
(12)安装之后进入配置文件目录,查看配置文件 cd /etc/httpd/conf
(13)进入bin目录,启动Apache。 cd /usr/local/apache/bin
(14)启动Apache服务 ./httpd -k start
[root@localhost bin]# ./httpd -k start
(15)查看80端口是否开启。 netstat -tupln |grep httpd
16)关闭防火墙以及安全机制,之后对Apache进行测试
[root@localhost bin]# service iptables stop iptables: Flushing firewall rules: [ OK ] iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Unloading modules: [ OK ] [root@localhost bin]# setenforce 0 [root@localhost bin]#
17)改变apache的环境变量,打开文件
[root@localhost bin]# vim /etc/profile
写在export之前,export作用是把变量输出为环境变量
(18)编写Apache的控制脚本
cd /etc/init.d/ [root@localhost bin]# cd /etc/init.d [root@localhost init.d]# touch httpd [root@localhost init.d]# chmod a+x httpd [root@localhost init.d]# vim httpd
程序脚本如下:
#!/bin/bash # chkconfig: 2345 88 99 # desceription: the apache server prog=/usr/local/apache/bin/httpd lockfile=/var/lock/subsys/httpd start() { if [ -e $lockfile ]; then echo "the apache server is started" else echo -n "the apache server is starting....." $prog -k start &>/dev/null fi [ "$?" -eq 0 ] && echo -e " \t [\033[32m ok \033[0m ]" && touch $lockfile ||echo -e " [\033[31m fail \033[0m ] " } stop () { if [ ! -e $lockfile ];then echo "the apache server is stoped" else echo -n "the apache server is stoping....." $prog -k stop &>/dev/null fi [ "$?" -eq 0 ] && echo -e "[\033[32m ok \033[0m ]" && rm -rf $lockfile ||echo -e "[\033[31m fail \033[0m]" } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "USAGE:start|stop|restart" ;; esac
(19)编写好之后,测试开机脚本
20)加入命令
[root@localhost init.d]# chkconfig --add httpd
21)库文件
[root@localhost usr]# vim /etc/id.so.conf.d/apr.conf
刷新缓存
Idconfig [root@new ld.so.conf.d]# ldconfig -pv |grep apr
22)头文件链接 /usr/include
[root@localhost include]# ln -s /usr/local/apache/include/ apache
23)手册创建
[root@localhost usr]# vim /etc/man.config
3搭建mysql环境
(1)拆解mysql代码包到/usr/local目录下
[root@localhost yuanma]# tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local/
(2)进入到拆解的目录下
cd /usr/loca
查看和mysql相关的包,将其删除
[root@localhost ~]# rpm -qa |grep mysql [root@localhost ~]# yum --disablerepo=\* --enablerepo=c6-media remove mysql-libs -y 也可以用这个语句直接卸rpm -e mysql-libs --nodeps
(3)为了后面的实验方便,我们为mysql创建一个连接
[root@localhost local]# ln -s mysql-5.5.15-linux2.6-i686/ mysql
(4)进入mysql目录,创建mysql组,系统账号mysql,更改该目录下的用户和所属组为mysql,之后对数据库进行初始化。
[root@localhost local]# cd mysql [root@localhost mysql]# groupadd -r mysql [root@localhost mysql]# useradd -r -g mysql mysql [root@localhost mysql]# chown -R mysql:mysql . ***不要忘了最后的“.” [root@localhost mysql]# ./scripts/mysql_install_db --user=mysql
(5)拷贝mysql的配置文件到/etc目录下,更改用户为root,对于data/目录的用户为mysql
[root@localhost mysql]# chown -R root . [root@localhost mysql]# chown -R mysql data/ [root@localhost support-files]# cp my-medium.cnf /etc/my.cnf
(6)拷贝mysql的脚本文件到/etc/init.d目录下
[root@localhost support-files]# cp mysql.server /etc/init.d/mysqld
(7)开启mysql,并查看3306端口是否开启
[root@localhost support-files]# service mysqld start [root@localhost support-files]# netstat -tupln |grep mysql
(8)/etc/profile文件中添加mysql的链接路径,添加后刷新/etc/profile文件. /etc/profile
[root@localhost bin]# vim /etc/profile
[root@localhost bin]# . /etc/profile
(9)链接mysql
(10)为mysql的后期管理创建账号和密码
[root@localhost ~]# mysqladmin -u root -p password ‘123‘
(输入密码时直接回车)
添加开机自启动
[root@localhost ~]# chkconfig --add mysqld
11)添加mysql的库文件搜索路径
[root@localhost ~]# vim /etc/ld.so.conf.d/mysql.conf
(12)ldconfig刷新,ldconfig –pv|grep mysql查看mysql库文件路径
13)手册
[root@localhost ~]# vim /etc/man.config
4.搭建PHP环境
(1)拆解PHP的代码包到/usr/local/src目录下
[root@localhost lamp]# tar -jxvf php-5.5.8.tar.bz2 -C /usr/local/src/
(2)进入拆解的目录下,查看相关的文件
cd /usr/local/src/php-5.4.13/
3)执行预编译选项
[root@localhost php-5.5.8]# ./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 > --with-mysql=/usr/local/mysql > --with-pdo-mysql=/usr/local/mysql > --with-mysqli=/usr/local/mysql/bin/mysql_config > --enable-mbstring > --with-zlib > --with-gd
(4)执行编译和安装
make && make install
[root@localhost php-5.5.8]# make && make install
5)在/etc目录下创建php和php5.d目录,拷贝php.ini-production 到/etc/php.ini
[root@localhost php]# mkdir /etc/php /etc/php5.d
进入目录
[root@localhost htdocs]# cd /usr/local/src/php-5.5.8/ [root@localhost php-5.5.8]# cp php.ini-production /etc/php.ini
进行重启:
(6)在Apache的配置文件中添加php的解释语句
[root@localhost php]# vim /etc/httpd/httpd.conf
在httpd.conf 加入 AddType application/x-httpd-php .php
指明首页:
Apache进行重启
(7)在/usr/local/apache/htdocs/目录下,编写index.php文件
vim index.php
(8)测试能否链接php,http://192.168.2.102/index.php
9)测试php与mysql的结合,建新的页面index.php
[root@localhost htdocs]# vim index1.php
http://192.168.3.100/index1.php
5.为php添加加速缓存xcache
(1)拆解xcache代码包到/usr/local/src/目录下
[root@localhost lamp]# tar -zxvf xcache-3.1.0.tar.gz -C /usr/local/src/
(2)在xcache的目录下执行/usr/local/php/bin/phpize链接php的内容
(3)执行预编译选项
./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
(4)编译并安装
make && make install
拷贝ini文件
(5)拷贝xcache.so模块文件和xcache.ini文件到/etc/php5.d/目录下
cp /usr/local/php/lib/php/extensions/no-debug-zts-20121212/xcache.so /etc/php5.d/
(6)访问index.php 看看php中是否加载了xcache
7)实现身份验证、cd /etc/php5.d
[root@localhost php5.d]# vim xcache.ini
[root@localhost php5.d]# cd /usr/local/src/xcache-3.1.0/ [root@localhost xcache-3.1.0]# cp -r htdocs /usr/local/apache/htdocs/admin
之后进行重启
测试:
输入账户名,密码
6.在LAMP的环境基础上建设web网页论坛 Discuz
Unzip phpwind_GBK_8.3.zip
[root@localhost mnt]# cd phpwind_GBK_8.3 [root@localhost phpwind_GBK_8.3]# mv upload /usr/local/apache/htdocs/phpwind
(2)访问http://10.100.106.200/phpwind开始搭建
改变权限:
[root@localhost phpwind]# chmod -R 777 data/ html/ attachment/
进入数据库在数据库中创建要使用的库phpwind
填入论坛数据信息
删除install.php文件
至此,我们已经完成了论坛的创建,用户可以登陆后台的管理界面,根据自己的需求对论坛进行相关的管理。
测试网站的性能,进入光盘安装httpd-tools
[root@localhost Packages]# yum --disablerepo=\* --enablerepo=c6-media install httpd-tools –y
压力测试
[root@localhost mnt]# ab -n 1000 -c 500 http://192.168.3.100/phpwind/index.php
Fastcgi的结合方式安装
Apache和MySQL的安装都是一样的,前面已经操作过了,就只说PHP的安装了
源码包为php-5.5.8.tar.bz2
拆解包到源码目录
[root@new ~]# tar -jxvf php-5.5.8.tar.bz2 -C /usr/local/src/ [root@new ~]# cd /usr/local/src/php-5.5.8/ [root@new php-5.5.8]# ./configure > --prefix=/usr/local/php > --with-config-file-path=/etc/php > --with-config-file-scan-dir=/etc/php5.d > --enable-fpm > --enable-sockets > --with-mysql=/usr/local/mysql > --with-pdo-mysql=/usr/local/mysql > --with-mysqli=/usr/local/mysql/bin/mysql_config > --enable-mbstring > --with-zlib > --with-gd \
发现配置出错,检查发现少了libxml2-devel
[root@new php-5.5.8]# yum --disablerepo=\* --enablerepo=c6-media install libxml2-devel –y
继续执行配置,又出现错误,检查
[root@new php-5.5.8]# yum --disablerepo=\* --enablerepo=c6-media install libpng-devel –y
继续配置
[root@new php-5.5.8]# make && make install 拷贝配置文件/usr/local/php/etc [root@new etc]# cp php-fpm.conf.default /etc/php-fpm.conf 拷贝控制脚本/usr/local/src/php-5.5.8/sapi/fpm [root@new fpm]# cp init.d.php-fpm /etc/init.d/php-fpm [root@new php-5.5.8]# chmod a+x /etc/init.d/php-fpm 拷贝PHP.ini /usr/local/src/php-5.5.8 [root@new php-5.5.8]# mkdir /etc/php [root@new php-5.5.8]# cp php.ini-production /etc/php/php.ini 开启PHP [root@new etc]# service php-fpm start Starting php-fpm done
加入开机自启动
[root@new etc]# chkconfig --add php-fpm [root@new etc]# chkconfig --list |grep php-fpm
php-fpm 0:off 1:off 2:on 3:on 4:on 5:on 6:of
PHP单独服务器已经做好
为Apache服务器配置
[root@new etc]# vim /etc/httpd/httpd.conf
添加语句
指明首页
关闭正向代理,指明当访问PHP页面时,转到的fcgi的地址uri
[root@new local]# service httpd restart
测试,OK
本文出自 “监督局” 博客,请务必保留此出处http://shuoshuo234.blog.51cto.com/10531943/1688212
原文地址:http://shuoshuo234.blog.51cto.com/10531943/1688212