一 什么是LAMP
LAMP是一个缩写,它指一组通常一起使用来运行动态网站或者服务器的自由软件:
二 准备编译安装的环境
在linux系统上,编译安装软件,需要一个编译环境,通常是使用gcc,所以一定要确认gcc已经安装,编译的时候,有一些软件还依赖于某些开发工具库文件,所以,要把这些常用的开发库安装上,如果使用rpm来安装的话,难免遇到依赖关系,我们这里使用yum来安装,本文档是用来说明配置lamp的,所以,对yum不进行详细说明.
2.1 配置yum
如果你边yum命令都没安装的话,那就把光盘挂上,自己用rpm -ivh yum来安装吧.下面我们开始配置yum,首先要保证光盘已经被放入光驱里面,如果是虚拟机,确认你的系统iso文件已经连接上.
# mount /dev/cdrom /mnt //挂载光盘到/mnt目录下
# cd /etc/yum.repos.d //进入到yum配置文件目录
# mv rhel-debuginfo.repo rhel-debuginfo.repo.bak //备份系统自带的配置文件,也可以删除
# vi local.repo //新建一个yum配置文件,并把以下内容写入到该文件
[Server]
name=Server
baseurl=file:///mnt/Server
gpgcheck=0
enabled=1
[VT]
name=VT
baseurl=file:///mnt/VT
gpgcheck=0
enabled=1
[Cluster]
name=Cluster
baseurl=file:///mnt/Cluster
gpgeheck=0
[ClusterStorage]
name=ClusterStorage
baseurl=file:///mnt/ClusterStorage
gpgcheck=0
enabled=1
# yum -y grouplist "Development Libraries" "Development Tools" //安装开发包工具和库
三 开始编译安装
准备apache,mysql,php软件包,要注意软件包的版本,太老的版本可能跟太新的版本不兼容.这里编译使用的软件包的版本如下
httpd-2.4.1.tar.bz2
mysql-5.5.19-linux2.6-i686.tar.gz
php-5.3.10.tar.bz2
3.1 安装httpd
安装之前,最好确认当前系统上没有其它web服务器软件占用80端口,不然安装好之后,可能启动不了.
# yum -y remove httpd //删除系统自带的httpd软件包
由于我们要安装的apache的版本是2.4.1 版本比较新,新版本依赖apr和apr-util的版本也是比较新的,所以,系统上自带的apr和apr-util对新版本的apache支持不了,我们这里要手动的编译安装apr和apr-util,可以使用源码包安装,也可以找一些新版本的rpm包,如果使用源码包,编译完成之后,我们再编译apache的时候,要加上--apr=/usr/local/apr --apr-util=/usr/local/apr-util ,这样指定一下,如果使用rpm包安装,就不需要指定了,我这里使用rpm包来安装.
[root@localhost ~]# rpm -Uvh apr-*
Preparing... ########################################### [100%]
1:apr ########################################### [ 25%]
2:apr-util ########################################### [ 50%]
3:apr-devel ########################################### [ 75%]
4:apr-util-devel ########################################### [100%]
# yum install -y pcre pcre-devel //安装pcre和pcre-devel
# tar xf httpd-2.4.1.tar.bz2 //解压apache的安装包
# cd httpd-2.4.1 //进入apache目录
# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib //配置安装选项,启用某些功能,关链某些软件等
# make //开始编译,并成生二进制文件
# make install //开始安装
经过以上步骤,我们的apache就已经安装好了,下面我们进行一些简单的配置
# vi /etc/profile //编译profile文件,新加入一行,内容如下
export PATH=$PATH:/usr/local/apache/bin
# . /etc/profile //让刚才的配置生效
# apachectl start //启动apache
# service iptables stop //关闭防火墙,如果没开更好,这一步不用操作
OK,做完这些,我们就可以测试apache了,看看是不是可以访问
apache提示我们,它在工作.那就说明,我们的apache就安装好了.
3.2 安装mysql
首先保证系统上没有安装rpm格式的mysql,如果有,自己手动卸载掉,然后再安装mysql,这里使用的mysql是免安装版的,初始化一下,然后做些配置就可以使用的那种
# groupadd -r mysql //创建一个系统组,叫mysql
# useradd -g mysql -s /sbin/nologin -M mysql //创建一个系统用户mysql,并把它加入到mysql组,且不让其登录系统
# mkdir /mydata/data //创建mysql数据文件存放的目录
# chown mysql:mysql /mydata/data/ //把目录的权限改为mysql用户和mysql组
# tar xf mysql-5.5.19-linux2.6-i686.tar.gz -C /usr/local //解压mysql到指定目录
# cd /usr/local/ //切换工作目录到刚才解压的目录
# ln -sv mysql-5.5.19-linux2.6-i686/ /usr/local/mysql //为mysql创建链接,也可以重命名
# cd mysql //切换工作目录到mysql目录
# chown -R mysql:mysql . //把当前目录下所有的文件及目录改为mysql用户和组
# scripts/mysql_install_db --user=mysql --datadir=/mydata/data //初始化mysql
# chown -R root . //把当前目录的属主改为root
# cp support-files/my-large.cnf /etc/my.cnf //为mysql提供主配置文件,放到/etc/my.cnf
# vi /etc/my.cnf //编译配置文件
thread_concurrency = 2 //这里改成你的CPU的个数乖于2
datadir = /mydata/data //这里是mysql数据文件的存放位置
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld //为mysql提供服务脚本
# chmod +x /etc/rc.d/init.d/mysqld //给脚本加上可执行权限
# chkconfig --add mysqld //把mysql服务加入到系统服务列表
# chkconfig mysqld on //设置其开机启动
# vi /etc/man.config //编译man的配置文件,让mysql命令可以通过man查看帮助信息
MANPATH /usr/local/mysql/man //把这行加入到MANPATH行下面
# ln -sv /usr/local/mysql/include /usr/include/mysql //输出mysql的头文件
# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf //输出mysql的库文件
# ldconfig //重新载入库文件
# service mysqld start //启动服务
# vi /etc/profile //编译profile文件,加入环境变量
export PATH=$PATH:/usr/local/apache/bin:/usr/local/mysql/bin //加入mysql的二进制文件位置
# . /etc/profile //让刚才的操作生效
# mysql //开始测试,输入完该命令,应该会打开mysql的shell
3.3 安装PHP
为了让php支持mcrypt扩展,我们这里安装一下以下两个软件包
libmcrypt-2.5.7-5.el5.i386.rpm
libmcrypt-devel-2.5.7-5.el5.i386.rpm
[root@localhost ~]# rpm -ivh libmcrypt-*
warning: libmcrypt-2.5.7-5.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 217521f6
Preparing... ########################################### [100%]
1:libmcrypt ########################################### [ 50%]
2:libmcrypt-devel ########################################### [100%]
# tar xf php-5.3.10.tar.bz2 //解压PHP
# cd php-5.3.10 //切换工作目录至php
# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt //配置编译php所需要的功能,启用
# make //开始编译PHP
# make install //开始安装PHP
安装完成后,我们就可以编译apache的主配置文件,让它支持php了
# vim /etc/httpd/httpd.conf
1、添加如下二行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
2、定位至DirectoryIndex index.html
修改为:
DirectoryIndex index.php index.html
# cd /usr/local/apache/htdocs //进入到apache的网页文件位置
# vi index.php //新建一个php文件,写入以下内容
<?php
phpinfo();
?>
而后重新启动httpd,或让其重新载入配置文件即可测试php是否已经可以正常使用。
说明已经OK
五 搭建Discuz
首先把我们下载好的Discuz放到apache的主目录
# cp Discuz_7.2_FULL_SC_GBK.zip /usr/local/apache/htdocs //拷贝网页文件到htdocs
# unzip Discuz_7.2_FULL_SC_GBK.zip //解压缩文件
# mv upload bbs //将upload目录改为bbs,我们Discuz论坛的整个网页文件都在这
然后就可以通过WEB来安装了
有一个提示信息,我们改一下php的主配置文件,按照给的提示信息改
# vi /usr/local/php/lib/php.ini
把第266行short_open_tag = On 改为On
改完之后先把apache服务停掉,然后再启用,然后再去页面按照提示一步一步安装,安装完成之后, 如下图
六 使用apache虚拟主机
使用apache虚拟主机之前,我们要关掉apache的中心主机,因为中心主机不能跟虚拟主机一起使用,关掉中心主机,我们要注释掉主配置文件里面的 DocumentRoot.
虚拟主机的格式
# www.magedu.com // #开头的注释信息
<VirtualHost 172.16.34.2:80> //定义虚拟主机关键字VirtualHost,后面跟IP地址和端口号
ServerAdmin root@magedu.com.com //定义管理员邮箱地址
ServerName www.magedu.com //定义域名
DocumentRoot "/vhosts/magedu" //定义虚拟主机的网页文件位置
ErrorLog "/vhosts/logs/magedu_error_log" //错误日志存放位置
CustomLog "/vhosts/logs/magedu_access_log" combined //访问日志存放位置及日志
<Directory "/vhosts/magedu"> //定义目录的属性信息,对目录做访问控制
Options none //定义操作选项,是否允许索引等
AllowOverride none //是否允许权限覆盖
Order allow,deny //目录权限,先允许,后拒绝
Deny from 172.16.100.0/24 //拒绝的客户端
Allow from 172.16.0.0/16 //允许的客户端
</Directory> //目录容器结束符
</VirtualHost> //虚拟主机结束符
如果要使用域名访问,需要做DNS的解析,也可以通过IP地址来访问。
本文转自 gm100861 51CTO博客,原文链接:http://blog.51cto.com/gm100861/826533