LAMP是什么呢?就像SHE、羽泉、凤凰传奇等众多著名歌手组合一样,LAMP其实也是一个组合。这个组合在linux界甚至整个IT界可是相当的出名,其实现的功能很是强大。待会给你个图表,你看一下就知道LAMP有多强大了。说了这么多,那LAMP到底是什么呢?既然是组合,那就先介绍下各自代表什么吧。L,即linux操作系统;A,即Apache服务器;M,即MySQL数据库;P,即PHP/Perl/Python等脚本语言。Linux+Apache+Mysql+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案。
下面是一个图表,介绍几个比较出名的网站的架构。
System |
Server |
Storage |
Script |
|
Yahoo |
FreeBSD + Linux |
Apache |
MySQL |
PHP |
FreeBSD |
Apache |
MySQL + Memcached |
PHP |
|
Wikimedia |
Linux |
Apache + Lighttpd |
MySQL + Memcached |
PHP |
Flickr |
Redhat Linux |
Apache |
MySQL + Memcached |
PHP+ Perl |
Sina |
FreeBSD + Solaris |
Apache + Nginx |
MySQL + Memcached |
PHP |
YouTube |
Suse Linux |
Apache + Lighttpd |
MySQL |
Python |
从上表你应该已经看出来LAMP的强大之处了吧。因为是源码编译安装,下面就介绍下我们所使用的各个软件。此次介绍的源码编译安装LAMP,这里我们是在VMware虚拟机里实现的。linux系统使用的是RedHat5.8发行版;Apache服务器主要提供http服务,使用的是 httpd-2.4.4.tar.bz2源码包,httpd-2.4.4需要较新版本的apr和apr-util,这里我们使用的是apr-1.4.6.tar.bz2源码包,及apr-util-1.5.2.tar.bz2源码包;MySQL用来提供数据库支持,使用的是mysql-5.6.10-linux-glibc2.5-i686.tar.gz源码包;这里我们使用PHP脚本语言,主要用来提供动态网页效果,使用的版本为php-5.4.13.tar.bz2源码包。各源码包这里不再提供,请各位自行搜索下载。既然都是一个个的源码包,这里我们先来介绍下各自的安装次序,这可不是随便安装哪个都可以的,所以请各位看好了,记好了,不按要求安装,弄错了自行负责啊。 安装次序为:apr --> apr-util --> httpd --> MySQL --> Php --> XCache
下面介绍下为何是这样的安装次序。上边已经提到了,在linux上安装httpd,但其依赖apr和apr-util,所以我们需先安装apr和apr-util。而apr-util是apr的工具包。安装过apr和apr-util及httpd后,因php安装时需mysql的支持,所以需先安装mysql然后安装php。XCache是为php提供加速功能的。到时候我们看情况,如何允许介绍如何安装。在安装mysql后会介绍一个软件,该软件可实现在图形化界面下管理我们linux中的数据库。php安装完成后介绍一个基于php的开源的动态网站,该网站所显示的界面我们在很多地方都见过。 在开始我们的源码编译安装前,请确保你的linux系统已经安装过开发工具和开发库,即:Development Libraries和Development Tools。安装方法为,先确保本机有yum源然后使用该命令yum groupinstall "Development Libraries" "Development Tools"即可。因我们是在虚拟机里实现,因此,请确保你的虚拟机时间正确,因我们使用的各个软件版本基本上都是最新版的,如果你虚拟机的时间不对,可能会显示该软件来自未来,无法识别。因此,在编译安装前请确保你的时间是正确的。下面我们就开始吧。 这里我们先下载好所有我们需要的各源码包,包括:apr-1.4.6.tar.bz2,apr-util-1.5.2.tar.bz2,httpd-2.4.4.tar.bz2,mysql-5.6.10-linux-glibc2.5-i686.tar.gz,php-5.4.13.tar.bz2,xcache-2.0.0.tar.bz2。还有两个我们先下载下来,phpMyAdmin-3.4.10.1-all-languages.tar.bz2和Discuz_X2.5_SC_GBK.zip。 这里我将各源码包放在了/root目录下了,放哪个目录下无所谓,好,下面我们一步步来编译安装各软件包。 首先解压apr-1.4.6.tar.bz2软件包。注意,这里我们之所以将我们的软件包安装在/usr/local/apr目录下,是因为我们的linux上自带有apr软件包,可使用rpm -q apr命令查看下,只是版本比较老而已。可能有些人会问,为什么不先卸载了在安装或者干脆升级呢,这样不会冲突么?其实我们是不能卸载自带的apr的,因为可能有些其他软件需要依赖老版本的apr,如果我们卸载了,可能导致这些依赖老版本apr的软件无法使用。这里我们采用的是多版本共存的方式编译安装的,只要将我们编译安装的新版本安装在不同目录下即可。因此,这里我们选择安装在/usr/local目录下。 同样的方式解压apr-util-1.5.2.tar.bz2源码包。
tar xf apr-1.4.6.tar.bz2 #解压软件包
cd apr-1.4.6#进入该目录
./configure --prefix=/usr/local/apr #指定我们源码编译的软件包安装目录
make
make install
这两个安装完毕,下面我们去安装我们的httpd源码包。在安装该软件包之前,先解决其依赖关系,首先安装pcre-devel开发包。可使用yum命令,即yum install pcre-devel,或先用rpm -q pcre-devel查看是否已安装过该软件包。这里不再介绍。下面解压源码包。
tar xf apr-util-1.5.2.tar.bz2
cd apr-util-1.5.2
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr #指定我们该软件包的安装目录,这个是工具包,还需使用另一个选项告诉它apr软件包的位置
make
make install
至此,我们的http服务就建好了。一块来测试下效果吧。 本虚拟机的IP地址为172.16.32.1,因此,我们打开浏览器,在地址栏输入172.16.32.1,然后回车,可以看到显示有‘It works!’字样,证明我们的http服务可以正常使用了。查看下你使用的linux的IP地址,在地址栏输入你linux的IP,即可显示。
tar xf httpd-2.4.4.tar.bz2 #解压该源码包
cd httpd-2.4.4
./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --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-mpms-shared=all --with-mpm=event
make && make install #上边的两个命令也可写成这样
介绍下部分选项的含义:
--prefix #指定安装目录
--sysconfdir #指定配置文件安装目录
--enable-so #支持动态共享对象
--enable-ssl #支持ssl认证
--enable-cgi #支持cgi模块
--enable-rewrite #支持URL重写
--with-zlib #使用特殊的zlib库
--with-pcre #支持扩展pcre库
--enable-mpms-shared=all #构建MPM为动态模块,指定所有模块为共享模块
--with-mpm=event #默认使用event,这里我们主要介绍event模型,可以自行修改为其他模型,如worker
想了解更多选项含义,可在该目录下使用如下命令:
./configure --help | less #less是分频显示,可去掉
好吧,插播个广告,补充个知识点:
MPM: Multi Path Modules,多道处理模块(至关重要),包含以下几个模块:
mpm_winnt:windows专用,这里不再介绍;
prefork:一个请求用一个进程响应;
worker:一个请求用一个线程响应。系统启动多个进程,每个进程生成多个线程。该模型下,每个web服务器会生成多个进程,而每个进程还可以生成多个线程,用每个线程来响应用户请求,默认web服务器启动两个进程。因linux对线程支持不好,测试发现在linux上worker没有prefork性能好,因此默认在linux上启用prefork。
event:一个进程处理多个请求,该模型是基于事件驱动模型实现,在所有模型中该模型最强大。
想深入了解以上各模型请查阅相关资料,或关注我的博客,这里不再介绍。
回归正题,继续来完成编译安装我们的httpd。
修改httpd的主配置文件,设置其Pid文件的路径
vim /etc/httpd/httpd.conf #修改配置文件,在配置文件中添加如下信息
PidFile "/var/run/httpd.pid"#添加该行信息,指定我们的httpd进程文件所在位置
我们知道,在我们启动RedHat5.8时,当开机启动某个服务时,会显示OK的字样,现在我们也实现这种效果。为我们的httpd提供SysV服务脚本。
vim /etc/rc.d/init.d/httpd #编辑该文件,添加如下内容
#!/bin/bash #脚本首行,必须有,其他‘#’的均为注释信息
#
# httpd Startup script for the Apache HTTP Server
#
# chkconfig: - 85 15 #SysV风格脚本必须有该行信息,指定在2345级别写启动该服务
# description: Apache is a World Wide Web server. It is used to serve \ #SysV风格脚本必须有该行信息
# HTML files and CGI.
# processname: httpd
# config: /etc/httpd/conf/httpd.conf
# config: /etc/sysconfig/httpd
# pidfile: /var/run/httpd.pid #这三行均为httpd配置文件相关信息,帮助理解该脚本
# Source function library.
. /etc/rc.d/init.d/functions #调用系统自带函数
if [ -f /etc/sysconfig/httpd ]; then #如果存在该文件,读取该文件
. /etc/sysconfig/httpd
fi
# Start httpd in the C locale by default.
HTTPD_LANG=${HTTPD_LANG-"C"}
# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=""
# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
# with the thread-based "worker" MPM; BE WARNED that some modules may not
# work correctly with a thread-based MPM; notably PHP will refuse to start.
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd.pid} #如果PIDFILE为空或未定义,则使用/var/run/httpd.pid,假如上边配置的进程文件不在该目录下,此处需修改
lockfile=${LOCKFILE-/var/lock/subsys/httpd} #锁文件
RETVAL=0
start() {
echo -n $"Starting $prog: "
LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
RETVAL=$? #取上条命令的执行状态结果
echo
[ $RETVAL = 0 ] && touch ${lockfile} #命令执行成功就创建锁文件
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc -p ${pidfile} -d 10 $httpd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}
reload() {
echo -n $"Reloading $prog: "
if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
RETVAL=$?
echo $"not reloading due to configuration syntax error"
failure $"not reloading $httpd due to configuration syntax error"
else
killproc -p ${pidfile} $httpd -HUP
RETVAL=$?
fi
echo
}
# See how we were called.
case "$1"in
start)
start #调用start函数
;;
stop)
stop
;;
status)
status -p ${pidfile} $httpd
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if [ -f ${pidfile} ] ; then
stop
start
fi
;;
reload)
reload
;;
graceful|help|configtest|fullstatus)
$apachectl $@
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
exit 1
esac
exit $RETVAL
保存退出后,为此脚本赋予执行权限。
chmod +x /etc/rc.d/init.d/httpd #为脚本服务赋予执行权限
记得在开启httpd服务前,关闭本机的selinux,否则有影响。使用如下命令:
getenforce #查看本机的selinux情况,如果为permissive就不必修改
setenforce 0#关闭selinux,立即生效
vim /etc/selinux/config #修改如下内容,可永久生效
SELINUX=permissive
保存退出。
编辑添加环境变量
vim /etc/profile.d/httpd.sh 编辑该文件,添加如下一行信息
export PATH=$PATH:/usr/local/apache/bin #添加环境变量,让系统可直接使用httpd命令
chkconfig --add httpd #将httpd加入服务列表
chkconfig --list httpd #可查看该服务脚本在各级别下的启动情况
service httpd start #启动httpd服务进行测试
netstat -tunlp #查看下本机的tcp/udp各端口监听情况,可以看到我们的80端口已开启,且处于监听状态
介绍httpd的几个命令:
httpd -l #能列出当前服务器上编译时所支持的核心模块
httpd -t #测试修改过httpd.conf文件后有没有语法错误
httpd -M #表示显示所有额外装载的模块
接下来,该安装我们的mysql了。
在该目录下,有个data的目录,一看名字就知道,这个目录是存放我们的数据的地方。但请各位想想,数据存放在这个目录下会回很不安全,假如某个不法分子攻破我们的mysql服务器,就可以随便查看我们的数据了,这是很危险的,而且,我们的数据文件是动态增涨的,假如哪天我们分的磁盘满了那就不好办了。因此,这里,我们建议将我们的数据文件单独存放在一个磁盘中,且该磁盘格式为逻辑卷,因为,当我们的数据增涨很快时,如果我们的磁盘空间不够,我们可以修改逻辑卷,增大其容量。另一个问题就是,mysql目录下的所有文件都是root属主,root属组,当我们的mysql进程运行时,是以mysql的身份运行的,而mysql对该目录下的文件没有执行权限,因此我们就需要修改该目录下的所有文件及目录,让mysql具有执行权限,但目前我们系统现在还没有mysql用户,因此我们还需要创建mysql用户,mysql组。
tar xf mysql-5.6.10-linux-glibc2.5-i686.tar.gz -C /usr/local #将该源码包解压到指定的目录下
cd /usr/local #进入该目录
ln -sv mysql-5.6.10-linux-glibc2.5-i686 mysql #创建mysql到mysql-5.6.10-linux-glibc2.5-i686的符号链接,这里我们不采用修改文件名的方式,而是创建链接
cd mysql #进入该目录
执行完该命令就进入了mysql的命令行界面,在里边就可以进行mysql的操作了。想了解mysql的一些命令,可搜索相关资料。 至此,我们的mysql源码编译安装也已完毕。在命令上边提到,我们可以使用phpMyAdmin进入到图形界面来管理我们的mysql数据,但是这个需要php的支持,因此,我们先来安装php,然后再介绍如何用phpMyAdmin来管理我们的mysql数据。 在安装我们的php之前,先解决依赖关系,安装X Software Development,命令为yum -y groupinstall "X Software Development"。同时,为了让我们的php支持mcrypt扩展,安装libmcrypt-2.5.7-5.el5.i386.rpm和libmcrypt-devel-2.5.7-5.el5.i386.rpm两个库文件。可先使用rpm -q libmcrypt和rpm -q libmcrypt-devel命令查看下有没有安装这两个库。 准备工作完成后,开始安装我们的php。
先创建我们的逻辑卷。
fdisk /dev/sda #创建一个新磁盘分区,将其格式修改为8e,即LVM格式。本机为/dev/sda5
partprobe /dev/sda #让内核重读磁盘分区
pvcreate /dev/sda5 #创建物理卷
vgcreate myvg /dev/sda5 #创建卷组,卷组名为myvg
lvcreate -n mydata -L 5G myvg #在卷组上创建逻辑卷,大小为5G,卷标为mydata
lvs #查看创建的逻辑卷信息
mke2fs -j /dev/myvg/mydata #格式化该逻辑卷
mkdir /mydata#创建该目录,用于挂载我们的逻辑卷
vim /etc/fstab #编辑该文件,添加如下该行信息,将我们的创建的逻辑卷挂载至/mydata目录下
/dev/myvg/mydata /mydata ext3 defaults 00
mkdir /mydata/data #创建该目录,用于存放我们mysql的数据文件
然后创建mysql用户mysql组。
groupadd -r -g 300 mysql #创建系统组,并设置gid为300,系统组gid均小于500,可自行修改
useradd -r -g 300 -u 300 mysql #创建mysql系统用户,并设置其gid、uid均为300
id mysql #可查看我们刚创建的用户信息
cd /usr/local/mysql #进入该目录
chown -R mysql.mysql . #修改该目录下的所有文件和目录,及目录下的子目录子文件均为mysql属主属组
chown -R mysql.mysql /mydata/data #修改该文件及子文件为mysql属主属组,方便mysql写入数据
cd /usr/local/mysql #进入该目录
scripts/mysql_install_db --user=mysql --datadir=/mydata/data #--user指定我们的mysql服务器创建的文件及目录以哪个用户运行,--datadir指定我们的数据文件所在目录,这里mysql不需要执行./configure命令
完成后,为我们的mysql提供配置文件,执行完上面的命令后,在我们的/etc目录下会生成一个文件叫my.cnf,这就是我们的mysql的配置文件,我们只需对其稍加修改即可使用。
vim /etc/my.cnf
datadir = /mydata/data #修改我们的数据文件存放位置
保存退出。同样,为我们的mysql服务提供服务脚本。这里我们使用系统自带的,我们不需修改即可使用。
cp support-files/mysql.server /etc/rc.d/init.d/mysqld #将该目录下的脚本拷贝到指定目录下,并重命名
chmod +x /etc/rc.d/init.d/mysqld #为我们创建的服务脚本赋予执行权限,如果该脚本已有执行权限,可不用执行该命令,这里本机显示有执行权限,没有执行此命令
vim /etc/profile.d/mysql #编辑该文件,添加环境变量
export PATH=$PATH:/usr/local/mysql/bin #添加环境变量,让系统直接使用mysql的命令
同样,将该服务脚本添加到服务列表。
chkconfig --add mysql #添加该服务脚本至服务列表
chkconfig mysql on #设置开机启动,默认级别为2345
service mysql start #开启mysql服务
netstat -tunlp #查看我们的mysql服务端口是否已开启,默认mysql监听在3306端口
现在为我们的mysql创建帮助手册,并添加其开发组件至系统。
在我们的mysql目录下,有个man目录,其下就是mysql的帮助手册了。
vim /etc/man.config #编辑该文件,添加如下一行信息
MANPATH /usr/local/mysql/man
ln -sv /usr/local/mysql/include /usr/include/mysql #创建符号链接,输出mysql的头文件至系统头文件路径
echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf #添加该行信息,输出mysql的库文件给系统库查找路径
ldconfig #让系统重新载入系统库
同样,介绍几个mysql的命令。
mysql
-u USERNAME :中间的空格可省,不指定默认为root
-P:指定密码,不指定默认为空
-h MYSQL_SERVER :指定连接的服务器地址,不指定默认为本机
如:mysql -uroot -p12345 -hlocalhost #通过本机以root身份登录mysql,root密码为12345
修改完毕。好了,现在打开我们的浏览器,在地址栏输入linux的IP地址,本机为172.16.32.1,因此,在地址栏输入172.16.32.1,回车,一切显示正常。 现在我们的php已经安装好了,刚才介绍说可以通过phpMyAdmin来实现在图形化界面下管理我们的数据库,现在介绍如何配置phpMyAdmin。这里我们在虚拟主机中实现。下面介绍如何启用虚拟主机。
tar xf php-5.4.13.tar.bz2
cd php-5.4.13
./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 --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
部分选项含义如下所示:
--prefix=/usr/local/php #指定安装文件目录
--with-mysql=/usr/local/mysql #指定所使用的mysql数据库的所在位置,现在知道为什么要先安装mysql了吧
--with-openssl #支持openssl
--with-mysqli=/usr/local/mysql/bin/mysql_config #支持mysqli
--enable-mbstring #启用多字节字符串支持
--with-freetype-dir #设定到FreeType 2的安装路径
--with-jpeg-dir #设定到libjpeg的安装路径
--with-png-dir #设定到libpng的安装路径
--with-zlib #支持zlib
--with-libxml-dir=/usr #指定libxml2安装目录
--enable-xml #支持xml扩展
--enable-sockets #启用套接字支持
--with-apxs2=/usr/local/apache/bin/apxs #指定共享的Apache 2.0的处理器模块所在目录
--with-mcrypt #支持mcrypt扩展
--with-config-file-path=/etc #指定配置文件所在目录
--with-config-file-scan-dir=/etc/php.d #设定在哪个路径下扫描配置文件
--with-bz2 #支持BZip2
本人英语水平有限,以上如果解释你不懂,或想了解更多可在该目录下使用./configure --help命令查看。
make
make test #执行完上面的命令后,系统会提示你执行该命令,这是测试命令,切记,不要忘记,一定要执行该命令
make install
为我们的php提供配置文件,我们依然选用安装php时生成的配置文件,这个可不用修改,直接拿来用。
先确保还在php-5.4.13目录下
cp php.ini-production /etc/php.ini #将该目录下的文件复制到/etc下,并重命名作为我们的配置文件
vim /etc/httpd/httpd.conf #编辑该文件,让apache支持php
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps #添加该两行信息
同时找到DircetoryIndex,添加index.php,即修改为:
DircetoryIndex index.php index.html
至此,php安装成功,重启httpd服务即可实现支持php了。php安装完成了,那我们的php能否连接数据库呢?现在我们来测试下我们的php是否能够连接mysql数据库吧。
cd /usr/local/apache #进入该目录下
vim htdocs/index.html #编辑该文件,修改如下信息,你刚才测试httpd时,显示的内容就是这里定义的
<html>
<body><h1>Welcome to my LAMP!!!</h1>
<?php #添加php脚本
$conn=mysql_connect('langdu','root','123456'); #调用mysql_connect函数,三个参数含义分别为主机名、登录数据库的用户名、登录数据库用户的用户密码
if ($conn) #将上边函数的执行状态结果保存到conn中,然后判断
echo "Success..."; #如果连接成功,输出Success...
else
echo "Failure..."; #如果连接失败,输出Failure... ,使用‘;’结尾,不要忘记
?>
</body>
</html>
既然是php了,所以,修改后缀名。
mv htdocs/index.html htdocs/index.php
你会看到里边定义有两个虚拟主机样例,我们只修改这一个,另一个不管它。但待会检查及重启服务时可能会报错,与我们无关先不管它,你要真不想重启服务时报错可删掉。保存退出。 因为我们这里是在虚拟机上实现的,现在修改我们windows上的hosts文件,目录为C:\Windows\System32\drivers\etc添加如下信息: 172.16.32.1www.1.com #添加该信息,实现本地解析 保存退出,在DOC命令界面,输入ping www.1.com,可以解析成功。
vim /etc/httpd/httpd.conf #编辑httpd的主配置文件,找到Virtual hosts,修改如下信息
# Virtual hosts #找到该行信息,这里就是用来定义虚拟主机的
Include /etc/httpd/extra/httpd-vhosts.conf #启用该行,直接去掉前面的注释符即可
保存退出。
编辑上边提到的文件httpd-vhosts.conf。
vim /etc/httpd/extra/httpd-vhosts.conf #编辑该文件,修改如下信息
<VirtualHost *:80> #表示监听本机所有地址的80端口,这是http的端口
DocumentRoot "/www/1.com"#新建该目录,指定虚拟主机文档根目录,网页文件的存放位置,此目录可自行修改,修改后重启服务即可生效。
ServerName www.1.com#指定服务器主机名,待会在地址栏输入该名称即可
<Directory "/www/1.com"> #定义该路径如何被访问
Options none #定义/var/www/html目录下所有的网页文档在被访问时的访问属性,有多个时可用空格隔开
AllowOverride none
Require all granted #定义允许所有人访问,否则待会我们在浏览器就打不开网页了
</Directory>
ErrorLog "logs/1.com-error_log"#定义错误日志存放文件,该目录是相对于ServerRoot的目录,查看httpd.conf配置文件可看到ServerRoot为"/usr/local/apache
CustomLog "logs/1.com-access_log" combined #定义访问日志文件,文件记录格式为combined,可在httpd.conf配置文件中查看包含哪些信息
</VirtualHost>
现在打开浏览器,在地址栏输入www.1.com/pma,然后回车。 下面是显示效果。 下图是登陆界面:
mkdir /www/1.com -pv #创建该目录
httpd -t #检查配置文件有没有语法错误,因我们另一个虚拟主机没有配置,会报错,不用管它
service httpd restart #重启服务,也可以待会我们配置好再重启
现在去解压我们的phpMyAdmin软件包。软件包我们已下载完毕,直接解压。
tar xf phpMyAdmin-3.4.10.1-all-languages.tar.bz2 #解压该软件包
mv phpMyAdmin-3.5.1-all-languages /www/1.com/pma #将解压得到的目录文件移动到该目录下,并命名为pma
service httpd restart #为了确保万无一失,我们在重启下服务
下图是登录后的主界面:
现在我们再来看另外一个基于php的动态网站。我们先去修改配置文件。现在在浏览器地址栏输入www.2.com就可以打开Discuz了,但还是安装向导界面。本想贴出所有截图,但是图片总显示有问题,只显示一半。这里就贴出部分图片吧。下面有附件,想查看显示效果的,可下载图片查看下。
vim /etc/httpd/extra/httpd-vhosts.conf #编辑该文件,将另一个虚拟主机配置修改如下信息
<VirtualHost *:80>
DocumentRoot "/www/2.com"
ServerName www.2.com
<Directory "/www/2.com">
Options none
AllowOverride none
Require all granted
</Directory>
ErrorLog "logs/2.com-error_log"
CustomLog "logs/2.com-access_log" combined
</VirtualHost>
修改完后保存退出。
httpd -t #检查语法有没有错误
unzip Discuz_X2.5_SC_GBK.zip #解压该文件,会发现目录下多了三个目录,readme、upload和utilities。我们只需要将upload里的文件复制出来即可。
mv upload/* /www/2.com/ #移动upload目录下的所有文件到该目录下来。
因为我们这里是在虚拟机上实现的,现在修改我们windows上的hosts文件,目录为C:\Windows\System32\drivers\etc添加如下信息:
172.16.32.1 www.2.com#添加该信息,实现本地解析
保存退出,在DOC命令界面,输入ping www.2.com,可以解析成功。
service httpd restart #重启服务
进入安装向导界面1后,会显示有一些目录我们没有写权限,我们现在去修改各目录,让其具有写权限。请先确保当前处于/www/2.com目录下。
修改完毕后点击下一步,进入如下界面: 修改完毕,点击下一步,填好点下一步即可完成安装。完毕后我们点暂不开通,就进入主界面了。如下图。
chmod 777 config/ data/ data/cache/ data/avatar/ data/plugindata/ data/download/ data/addonmd5/ data/template/ data/threadcache/ data/attachment/ data/attachment/album/ data/attachment/forum/ data/attachment/group/ data/log/
chmod 777 uc_client/data/cache/ uc_server/data/ uc_server/data/cache/ uc_server/data/avatar/ uc_server/data/backup/ uc_server/data/logs/ uc_server/data/tmp/ uc_server/data/view/
貌似Xcache还没介绍如何安装嘞。这里就暂不介绍了。想知道如何安装可关注我的博客或查找相关资料。
部分截图我已上传成功附件,想看的可以下载后自行查看,这里就不贴图了。
本文出自 “呼伦贝尔―写在人生路上” 博客,请务必保留此出处http://lq2419.blog.51cto.com/1365130/1177925