您的位置:首页 > 编程语言 > PHP开发

构建LAMP平台利用虚拟主机实现提供discuz论坛、基于SSL安装phpMyAdmin、安装wordpress

2012-07-03 10:16 1266 查看
建立Web服务,提供LAMP平台,提供至少3个虚拟主机,基于主机名实现:

下面是3个虚拟主机,及其网页目录存放位置:

www.magedu.com /web/vhosts/www

pma.magedu.com /web/vhosts/pma

wp.magedu.com /web/vhosts/wp

要求:

为虚拟主机www.magedu.com提供一个discuz论坛。

为虚拟主机pma.magedu.com安装一个PHP开发的网站页面(即安装phpMyAdmin软件),要基于SSL来实现。

为虚拟主机wp.magedu.com安装wordpress。

一、准备工作:

1、关闭selinux

由于我们所要做的实验会改动web服务的网页目录,所以只有关闭selinux才会生效。关闭selinux的方法有以下2种:

(1)直接在命令行中输入setenforce 0,但这种方式只会当前shell有效,当系统重启时,又会失效。

[root@linli ~]# getenforce
Enforcing
[root@linli ~]# setenforce 0
[root@linli ~]# getenforce
Permissive

(2)修改selinux的配置文件/etc/sysconfig/selinux





2、我这里没有配置dns,所以就编辑RHEL5.8系统上的/etc/hosts,还有Win7上的hosts文件来实现域名解析:

在/etc/hosts文件中和Win7的hosts文件中添加如下四行内容,以实现域名解析
172.16.26.1     www.magedu.com
172.16.26.1     pma.magedu.com
172.16.26.1     wp.magedu.com
172.16.26.1     linli.linux     //linli.linux是我的主机名,如果你的主机名不是
新设置,这一行是没有必要的。

3、phpMyAdmin的认证过程是依赖于时间的,所以要保证cookie时间要和本地时间保持一致:

使用hwclock可以使用同步时间
[root@linli ~]# hwclock -s
[root@linli ~]# date
Tue Jul  3 10:48:06 CST 2012


二、构建LAMP平台:

1、使用光盘配置yum源

(1)挂载光盘(注意:挂载的光盘要有php53相关的rpm包):



为了可以在每次启动时/dev/cdrom可以自动挂载,可以编辑/etc/fstab添加如下一行:

/dev/cdrom              /dev/cdrom              iso9660 defaults        0 0


(2)编辑/etc/yum.repos.d/my_yum.repo文件,添加内容如下:

[base]
name=Server
baseurl=file:///mnt/cdrom/Server
gpgcheck=0
enabled=1

[Cluster]
name=Cluster
baseurl=file:///mnt/cdrom/Cluster
gpgcheck=0
enabled=1

[ClusterStorage]
name=ClusterStorage
baseurl=file:///mnt/cdrom/ClusterStorage
gpgcheck=0
enabled=1

[VT]
name=VT
baseurl=file:///mnt/cdrom/VT
gpgcheck=0
enabled=1

(3)此时可以先使用命令yum clean all 清除一下缓存数据,然后使用yum repolist看看yum源是否配置成功。

2、用rpm包安装web服务,提供LAMP平台

[root@linli ~]# yum -y install httpd php53 php53-mbstring php53-mysql mysql myql-server

注意:要安装php53,是为了安装phpMyAdmin;因为phpMyAdmin-3.4的系列和phpMyAdmin-3.5的系列要求安装的php是5.3以后的版本。

3、配置3个虚拟主机

(1)创建web服务器提供网页的目录





(2)修改httpd配置文件,添加3个基于主机名的虚拟主机

[root@linli ~]# vim /etc/httpd/conf/httpd.conf
#注释DocumentRoot
#DocumentRoot "/var/www/html"

#将NameVirtualHost的注释去掉
NameVirtualHost *:80

#让httpd支持php网页
DirectoryIndex index.php index.html index.html.var

#设置虚拟主机
<VirtualHost 172.16.26.1:80>
ServerName www.magedu.com
DocumentRoot /web/vhosts/www
</VirtualHost>

<VirtualHost 172.16.26.1:80>
ServerName pma.magedu.com
DocumentRoot /web/vhosts/pma
</VirtualHost>

<VirtualHost 172.16.26.1:80>
ServerName wp.magedu.com
DocumentRoot /web/vhosts/wp
</VirtualHost>

(3)使用命令httpd -t 测试httpd的配置文件是否有语法,然后启动服务就OK了



4、为3个虚拟主机提供网页,并测试:

[root@linli ~]# echo "<h1>www.magedu.com</h1>" > /web/vhosts/www/index.html
[root@linli ~]# echo "<h1>pma.magedu.com</h1>" > /web/vhosts/pma/index.html
[root@linli ~]# echo "<h1>wp.magedu.com</h1>" > /web/vhosts/wp/index.html













5、启动mysqld, 首次启动会做mysql初始化:

[root@linli ~]# service mysqld start

6、设置服务开机自动启动

[root@linli ~]# chkconfig httpd on
[root@linli ~]# chkconfig mysqld on

注意:

php在这种模型下默认是以apache的模块存在的,所以apache服务启动来,php就不用启动了。

7、测试php能否连上mysql

[root@linli ~]# vim /web/vhosts/www/index.html <h1>www.magedu.com</h1>
<?php
$link=mysql_connect('localhost','root','redhat');
if ($link)
echo "Success!!!";
else
echo "Faulure...";

mysql_close();
?>





三、为www.magedu.com安装discuz论坛:

(1)解压缩Discuz软件包,并将upload目录下的所有文件复制到/web/vhosts/www/目录中:

unzip Discuz_7.2_FULL_SC_GBK.zip
mv upload/* /web/vhosts/www/

(2)在浏览器中输入www.magedu.com/install 开始安装Discuz:

此时会出现一些小问题只需要按提示做就OK了。

将小问题汇总如下:

//在一打开网页你就会看到是乱码,这时你只需要修改一下httpd的配置文件注释UTF-8这一行,并重启httpd服务即可:
[root@linli ~]# vim /etc/httpd/conf/httpd.conf
#AddDefaultCharset UTF-8
[root@linli ~]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
//上面配置好之后,刷新一下页面,当你点击下一步时,会让你编辑/etc/php.ini文件将short_open_tag设置为on,然后重启服务即可:
[root@linli ~]# vim /etc/php.ini
short_open_tag = on
[root@linli ~]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:
//刷新页面之后,到开始安装界面,你会看到目录、文件权限有问题,按照提示一步一步的将文件权限设置对就OK了
[root@linli ~]# cd /web/vhosts/www/
[root@linli www]# setfacl -m u:apache:rw config.inc.php
[root@linli www]# setfacl -m u:apache:rwx attachments/ forumdata/ forumdata/cache/ forumdata/templates forumdata/threadcaches/ forumdata/logs/ uc_client/data/cache/
//在安装数据库界面下,需要填写数据库用户名和密码,此时使用root是不安全的,所以新建一个discuz用户添加密码,并授权:
mysql> Create USER discuz@'localhost' IDENTIFIED BY 'redhat';
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT all ON discuz.* TO discuz@'localhost';
Query OK, 0 rows affected (0.00 sec)


四、为pma.magedu.com安装phpMyAdmin:

phpMyAdmin是一个非常好的基于web页面实现MySQL管理的GUI,客户端只需要有一个浏览器即可。

1、安装phpMyAmin:

phpMyAmin-3.5.1-all-languages.tar.bz2是web服务器的网页页面,将解压之后的内容移动到可执行目录中或网页目录中即可:

[root@linli ~]# tar xf phpMyAdmin-3.5.1-all-languages.tar.bz2
[root@linli ~]# cd phpMyAdmin-3.5.1-all-languages
[root@linli phpMyAdmin-3.5.1-all-languages]# mv * /web/vhosts/pma
[root@linli phpMyAdmin-3.5.1-all-languages]# cd /web/vhosts/pma/


2、pma运行起来需要一个配置文件,在当前目录下有一个config.sample.inc.php文件,这是一个pma的样例配置文件,只需要把它重命名一下,改为config.inc.php:

[root@linli pma]# cp config.sample.inc.php config.inc.php


3、修改pma的配置文件

由于pma是通过浏览器来浏览、管理我们的MySQL服务器,但在管理时需要一个账号密码才可以进行管理,而这个账号密码是通过互联网发送。http又是明文传输的,所以要修改一下配置文件的下面这一行内容:

[root@linli pma]# vim config.inc.php
cfg['blowfish_secret'] = 'skjfaoiursnfvksjfhdskdh'


注意:

(1)blowfish_secret:是为了加密用户在客户端浏览器中产生的cookie信息,是一种安全防护机制。如果不加密,别人就可以通过cookie直接连上我们的MySQL服务器。

(2)'skjfaoiursnfvksjfhdskdh':是随便输入的一段字符串。

4、blowfish_secret只是为了保证cookie是加密的;但http在传输中还是明文的,为了保证http在传输中也是密文的就需要安装SSL。

(1)配置CA服务器

//修改保存目录
[root@linli ~]# vim /etc/pki/tls/openssl.cnf
dir             = /etc/pki/CA

//创建CA所需要的目录及文件
[root@linli ~]# cd /etc/pki/CA
[root@linli CA]# mkdir certs newcerts crl
[root@linli CA]# touch index.txt
[root@linli CA]# echo 01 > serial

(2)自签证书

[root@linli CA]# (umask 077;openssl genrsa 2048 > private/cakey.pem)
Generating RSA private key, 2048 bit long modulus
.......................+++
.................................................................................+++
e is 65537 (0x10001)
[root@linli CA]# openssl req -x509 -new -key private/cakey.pem -out cacert.pem -days 3650
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:ZG
State or Province Name (full name) [Berkshire]:HenNan
Locality Name (eg, city) [Newbury]:ZZ
Organization Name (eg, company) [My Company Ltd]:magedu.ca
Organizational Unit Name (eg, section) []:Tech
Common Name (eg, your name or your server's hostname) []:ca
Email Address []:

(3)httpd服务器申请CA为自己签署证书

[root@linli pma]# mkdir ssl
[root@linli pma]# cd ssl
[root@linli ssl]# (umask 077;openssl genrsa 1024 > httpd.key)
Generating RSA private key, 1024 bit long modulus
.....++++++
..........++++++
e is 65537 (0x10001)
[root@linli ssl]# openssl req -new -key httpd.key -out httpd.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:ZG
State or Province Name (full name) [Berkshire]:HenNan
Locality Name (eg, city) [Newbury]:ZZ
Organization Name (eg, company) [My Company Ltd]:pma.magedu.com
Organizational Unit Name (eg, section) []:Tech
Common Name (eg, your name or your server's hostname) []:linli.linux
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
//CA签署证书
[root@linli ssl]# openssl ca -in httpd.csr -out httpd.crt -days 3650
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
The organizationName field needed to be the same in the
CA certificate (magedu.ca) and the request (pma.magedu.com)


5、使用浏览器测试访问pma.magedu.com:





注意:

(1)默认是不支持root空密码访问的,所以需要设置mysql数据库中的user表中的root用户所对应的密码

(2)安装PHP扩展时,只需使用rpm命令安装libmcrypt和php53-mcrypt包即可。

五、为wp.magedu.com安装wordpress:

wordpress在全球是最流行的站点快速构建工具之一,是一个个人博客系统。模块化设计,支持模块、CMS等各种接口。

1、安装wordpress软件包:

# unzip wordpress-3.3.1-zh_CN.zip
# mv wordpress/* /web/vhosts/wp/

2、使用浏览器输入wp.magedu.com,然后按提示一步一步安装即可,最后成功的界面如下:





注意:

(1)添加过数据库、用户,并给用户授予权限之后,需要重启mysqld。
本文出自 “蝴蝶梦” 博客,请务必保留此出处http://smile2013.blog.51cto.com/4373510/916756
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐