做网站的朋友都了解网站做好了要买个域名和空间,这个空间也就是我们所说的虚拟主机。发布虚拟主机在windows和linux平台上都可以实现,今天我就要和大家一起实现在linux平台下用编译安装的方式安装Apache , Mysql和PHP实现LAMP组合并发布多个php的网站。

整个过程分为四个大的步骤:

第一部分:编译安装Apache

第二部分:安装Mysql

第三部分:编译安装PHP

第四部分:发布PHP网站(wordpress,织梦,)

下面就分别四个步骤和大家一块实现,(有什么问题还请大家指正)

第一部分:编译安装Apache

我在根目录下建立了一个/lamp/apache目录用来放我们这次apache的配置文件

配置过程这一部分我在上一篇博客里已经详细的写过了,如果有需要的朋友可以去参考这里就不再……我就从安装Mysql来写。

第二部分:安装Mysql

1,下载需要的软件包

大家可以到http://www.mysql.com/downloads/或者在网上搜索下载相应的软件包,

我这里所使用的是mysql-5.1.14-beta-linux-i686-glibc23.tar.gz

(注:有的时候大家装不上数据库是因为安装包有问题,不是你安装失误。)

2,解压软件包

把mysql的软件包解压到/lamp目录下并重命名为mysql         

  [root@localhost software]# tar -zxvf mysql-5.1.14-beta-linux-i686-glibc23.tar.gz  

   -C   /lamp
  [root@localhost lamp]# mv  mysql-5.1.14-beta-linux-i686-glibc23/  mysql

这里我们还可以拷贝一个文件让系统支持我们什么类型的数据库

[root@localhost mysql]# cp support-files/my-medium.cnf    /etc/my.cnf
注:my-medium.cnf 这里为中型数据库(也可以不复制,让系统默认)

3,添加mysql用户

[root@localhost mysql]# useradd mysql

4,初始化mysql

[root@localhost mysql]# ./scripts/mysql_install_db

5,修改文件级目录的权限

[root@localhost mysql]# chown root . -R
[root@localhost mysql]# chown mysql data  -R
[root@localhost mysql]# chgrp  mysql -R

这里的代表当前目录不要省略了,-R代表递归执行

6,启动mysql数据库

[root@localhost mysql]# bin/safe_mysqld --user=mysql  &
这里我们要注意我们运行命令的目录/lamp/mysql ; &号代理后台运行

我们可以用jobs命令查看后台有没有运行mysql的任务

[root@localhost mysql]# jobs
[1]+  Running           bin/safe_mysqld --user=mysql  &

7,登录数据库测试

[root@localhost mysql]# bin/mysql  -u  root  -p
这里我们也要注意我们运行命令的目录/lamp/mysql ; 

注:这里的root用户和linux的系统用户root不是同一个用户

8,修改登录数据库密码

默认情况下mysql的root用户是没有密码的。这里我们给他加一个密码

格式:bin/mysqladmin -u root password '密码内容'

[root@localhost mysql]# bin/mysqladmin -u root password 'redcock'
这里我们就给数据库用户root设置了密码为redcock
   

这里我们同样也要注意运行命令的目录在哪里,(因为我们没有定义变量)

下面我们就来登录数据库测试一下mysql是否安装成功:

[root@localhost mysql]# bin/mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.1.14-beta-log MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>
 这样我们就可以进入数据了,我们用查看数据库的命令查看一下,

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.00 sec)

mysql>
数据库启动正常,安装成功了。

mysql> quit; 退出数据库
 ------------------------------------------------------------------------------------- 

我们还可以用编译的方式来安装mysql 

下面就介绍一下简单的安装过程软件包的下载和解压同上,

我们要建立一个用户叫mysql吧,别忘记了,

我们编译安装所用的编译器是gcc-c++了,

这一个我们是要注意的,我们可以用配置好的YUM来把gcc-c++编译器安装好。

如果我们直接就编译就会遇到一个问题:

我们需要安装一个包,
checking for termcap functions library... configure: error: No curses/termcap library found

解决办法我们来安装

[root@localhost mysql-5.0.22]# rpm -ivh /mnt/Server/ncurses-devel-5.5-24.20060715.i386.rpm 即可

然后做编译前的配置工作,切换到解压后的目录,这里我们要把数据库装在什么地方我们要先建立好一个目录。mkdir /mysql 假如是这里

[root@localhost mysql-5.0.22]#  ./configure --prefix=/mysql

然后

make

make install

如果中间有什么问题要去解决了,没有问题我们就做权限的设置,

我们切换到我们安装的目录,[root@localhost mysql-5.0.22]#  cd   /mysql

[root@localhost mysql]#  chown   mysql   -R    .
[root@localhost mysql]#  chgrp    mysql    -R    .

我们要注意这两个点不要省略掉了,,

 初始化数据库

[root@localhost mysql]#  bin/mysql_install_db   --user=mysql

 

启动后台进程

[root@localhost mysql]#  bin/mysqld_safe   --user=mysql &   

登录测试

[root@localhost mysql]#  bin/mysql   -u  root    -p   

修改密码

[root@localhost mysql]# bin/mysqladmin  -u  root  password 123456  

我们登录数据库测试可以了,,

--------------------------------------------------------------------------------------

 第三部分:编译安装PHP

1,下载需要的软件包

大家可以从http://www.php.net/downloads.php或者从网上搜索下载PHP5的安装包

本次实验我使用的版本是:php-5.3.1.tar.bz2

2,解压软件包

[root@localhost software]# tar -jxvf php-5.3.1.tar.bz2 -C /lamp
在/lamp目录下就会有一个php-5.3.1的目录,这里面有解压的文件

 3,编译前的配置工作

首先我们先在/lamp目录下建立一个目录php5用于存放php的安装文件

我们进入/lamp/php-5.3.1这个目录进行编译前的配置工作

 

或者:我们也可以把这些选项放到一个文件里做成一个脚本文件,

[root@localhost php-5.3.1]# ./configure \
> --prefix=/lamp/php5  \
> --with-apxs2=/lamp/apache/bin/apxs  \
> --with-mysql=/lamp/mysql \
> --with-config-file-path=/lamp/php5  \
> --enable-ftp \
> --with-jpeg-dir=/usr/lib \
> --with-png-dir=/usr/lib \
> --with-gd \
> --enable-gd-native-ttf \
> --with-xsl \
> --with-bz2 \
> --with-zlib-dir=/usr/lib \
> --enable-zip \
> --with-freetype-dir=/usr/lib \
> --with-libXML-dir=/usr/lib \
> --with-zlib-dir=/usr/lib \
> --with-curl \
> --enable-sockets \
> --with-xpm-dir=/usr/lib


在做这个编译前的配置工作的时候会收到系统给我们的错误提示,

解决办法就是用yum来安装一些包来解决:如下图:

xml2-config

 

BZip2

curl

 libjpeg

 libpng

libXpm

 freetype

 xslt-config

4,编译 make

[root@localhost php-5.3.1]# make
 

5,安装 make install

[root@localhost php-5.3.1]# make install
 

6,复制PHP的配置文件

[root@localhost php-5.3.1]# cp php.ini-production  /lamp/php5/php.ini
 注:在RHEL4里面要复制的文件php.ini-production 为php.ini-dist

7,配置Apache对PHP的支持

下面我们要配置apache对php的支持

[root@localhost apache]# vim conf/httpd.conf
   a:查看有没有添加(大约在53行)
         LoadModule php5_module     modules/libphp5.so
   b:查找AddType application/x-gzip .gz .tgz(大约在309行)后添加
         AddType application/x-httpd-php .php
         DirectoryIndex index.html index.php

保存并退出

8,重启Apache服务编辑简单的PHP页面在客户端做测试

[root@localhost apache]# bin/apachectl stop
[root@localhost apache]# bin/apachectl start
 

然后我们在/lamp/apache/htdocs目录下建立一个测试页文件index.php

[root@localhost apache]# vi htdocs/index.php
<?php
 phpinfo();
 ?>

保存并退出

这时我们用windows的客户端的浏览器打开linux服务器的IP地址得到如下页面

  

 

看到这个页面证明我们的php配置是正确的。

第四部分:发布PHP网站(wordpress,织梦,)

1,发布织梦dedecms

a:下载织梦http://www.dedecms.com/products/dedecms/downloads/

本次实验我所使用的是DedeCmsV5.7-UTF8-Final.tar.gz我们解压后会得到两个目录

docs  和  uploads 其中 uploads是网站文件,

我们把 uploads 这个目录拷贝到/lamp/apache/htdocs目录下

然后修改配置[root@localhost lamp]# vim apache/conf/httpd.conf

# Virtual hosts
#Include conf/extra/httpd-vhosts.conf 此行之前的#号去掉                           让支持虚拟主机大约在392行
然后去配置[root@localhost lamp]# vim apache/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/lamp/apache/htdocs/uploads"
    ServerName www.lifeng.com
    ServerAlias www.dummy-host.example.com         此行为别名,可以不用管
    ErrorLog "/lamp/apache/htdocs/uploads/log/error_log"
    CustomLog "/lamp/apache/htdocs/uploads/log/access_log" common
</VirtualHost>
注:有关于最后两行的日志文件我们要建立相应的目录和文件这里不再说明,        

如有疑问请参考上一篇文章。

设置uploads目录的权限,因为这是cms建站需要往这里面写出一些文件信息,         

所以我们这里就要给uploads这个目录权限这里我就给他777最大权限。

[root@localhost htdocs]# chmod 777 uploads -R

之后我们就可以重启apache服务然后在客户端打开网站进行编辑了。

[root@localhost apache]# bin/apachectl stop
[root@localhost apache]# bin/apachectl start

没有提示错误,说明配置文件都是对的,

在客户端测试,因为是用主机头发布的网站所以需要DNS支持,                               

或者在客户端的hosts文件里添加一些记录信息,                                                        (这个你看了我的上一篇博客你懂的)

我在hosts文件里添加了

192.168.8.8  www.lifeng.com              这条记录之后就可以在浏览器里打开

就可以看到安装织梦的页面:

 

 这里我们点同意此协议点继续,会看到环境检测,下面的读写应该都可以

才能顺利的完成安装,如果有不可读写的部分说明你刚才赋于的权限不够

然后点继续,让我们输入数据库名,密码表前缀等信息,如实填写就好,

  最后一行安装初始化数据进行体验我们不勾,(你体验不到,呵呵)  

 注意这里数据库文件会在mysql里自动创建,不需要我们手工在mysql里创建。

密码就是给数据库用户root设置的密码redcock你自己设置的密码你自己知道

点继续就可以看到完成后的界面了:你可以登录前台和后台进行设置。

2,发布Wordpress

首先我们下载所需要的软件:http://cn.wordpress.org/也可以从网上搜索。

本次实验所需要的版本为:wordpress-3.2.1-zh_CN.tar.gz

我们解压软件包:[root@localhost software]# tar -zxvf wordpress-3.2.1-zh_CN.tar.gz
然后复制到/lamp/apache/htdocs目录下:(也可以一次性解压)

[root@localhost software]# tar -zxvf wordpress-3.2.1-zh_CN.tar.gz -C /lamp/apache/htdocs
 

当然为了下一步操作我们还要在wordpress目录里建立相应的日志文件

[root@localhost htdocs]# mkdir wordpress/log
[root@localhost htdocs]# touch wordpress/log/error_log
[root@localhost htdocs]# touch wordpress/log/access_log

然后我们更改wordpress目录的权限,因为这是CMS安装系统要往里写东西

[root@localhost htdocs]# chmod 777 wordpress -R

然后我们配置apache的配置文件来发布这个虚拟主机

[root@localhost apache]# vim conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/lamp/apache/htdocs/wordpress"
    ServerName www.hellolifeng.com
    ErrorLog "/lamp/apache/htdocs/wordpress/log/error_log"
    CustomLog "/lamp/apache/htdocs/wordpress/log/access_log" common
</VirtualHost>

然后重启我们的网络服务

[root@localhost apache]# bin/apachectl stop
[root@localhost apache]# bin/apachectl start

在客户端测试:

在客户端计算机hosts文件里添加

192.168.8.8  www.hellolifeng.com这一行

打开浏览器输入www.hellolifeng.com就可以看到

 

 点击 试试创建一个配置文件

 接着他让我们做一些准备工作,

 

我们点现在就提示:让我们输入一些数据的信息,这里要看好!

 

 当我们点提交就会出现一个错误:

 这里我们需要在数据里事先创建一个数据库名字为wordpress

[root@localhost mysql]# bin/mysql -u root -p
Enter password:    (输入密码redcock)
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 51
Server version: 5.1.14-beta-log MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database wordpress;
Query OK, 1 row affected (0.00 sec)

mysql>


数据库建立完之后我们重试会看到:

点击进行安装会看到欢迎信息让你输入站点信息,

 

 

接着:

点击登录

输入你的用户名和密码就可以登录了

 

重新打开www.hellolifeng.com我们就可以看到

 

这样我们分别打开 www.lifeng.comwww.hellolifeng.com就可以看到不同的页面

这样我们就在一台linux上搭建LAMP环境发布了两个虚拟主机,

有关用FTP服务上传更新网站内容的实验我会在我接下来的文章里写到。

提示:

在配置本实验的时候我们要注意apache,mysql和php的目录之间的关系,

尤其是在编译php的时候apache和mysql的安装目录在什么地方要搞清楚