手把手教你利用mysql,php,httpd源码包实现建站
说明:1:需要特别说明的是:本版主添加了大量的注释,说明信息。其实步骤很简单了,主要考虑到有些刚接触这一块,对有些不太熟悉。
有关的命令的用法还是希望大家利用网络,书籍查看一下,了解一下架站基本概念,关于数据库的编辑等等。也难免有些错误,
希望大家踊跃点评。
2:&&&&现在有流行的CMS,像drupal,joomla,都是用php开发的。它们都是建站工具啦,可以很方便的帮你把网站建起来
3:安装mysql时注意:
解压出的位置必须是/usr/local ,并且名字就叫mysql。
cd /usr/local 下,建议用连接
ln –sv mysql-5.5.15-linux2.6-i686 mysql
cd mysql
默认情况下数据存放在 mysql/data目录下。建议为data建立一个分区,并且要能够动态变化,因为数据库的数据肯定在变化这正是LVM的特征。
做了LVM后我们可以在为数据库做备份时 ,以用快照的功能。
4:对于mysql来讲,它需要在一个特定用户身份上运行。像apatche一样用apatche用户运行。Mysql一般用mysql用户运行。
mysql用户肯定不存在,所以要添加mysql用户。
5:你如果把数据放在/mydata目录下,意味着你把数据直接放在磁盘的根目录下,以后对你管理数据不是特别方便的。 对于mysql来讲,它会把每一个目录识别成一个数据库的,不管有没有这个数据库,你只要建立一个目录它就会识别成一个数据库,假设你的mydata不是完全给mysql存放数据库的,你只在mydata里创建一个目录,mysql都会认为是一个数据库,而且在里面还会显示出来,这是错的。明白否?所以你如果打算还在这个分区上存放其它数据的话,你就在/mydata下创建一个目录来为数据库存放数据。
6:/mydata/data 的属主必须是mysql用户,因为我们运行mysql数据库是靠mysql用户来运行的。
7:mysql启动时,默认情况下会到它的安装目录下找data目录作为它的数据目录的。
8:&&# ./configure
这个步骤就是建立Makefile这个文件。通常程序开发者会写一个script来检查你的Linux系统,相关的软件
属性等,这个步骤相当重要。因为将来你的安装信息都是这一步骤完成的。
#make clean
make 会读取makefile中关于clean的工作。这个步骤不一定要有,但希望执行一下,因为它可以除去目标文件。
因为谁也确定不了源码里面到底有没有包含上次编译过的目标文件(*.o)存在,所以清除下比较好。至少等一下
新编译出来的执行文件我们可以确定是使用自己的机器所编译完成的。
# make
编译
# makeinstall
安装
9:我在本文中的所采用的压缩包文件,你们都可以自己到相关的软件网站进行下载。
《好啦!让我们进入主题吧》
第一步:查看下你的系统环境
先查看下httpd,php,mysql,mysql-server是否安装
# rpm –q httpd mysql php mysql-server 命令查看
# setenforce 0 &&:关闭selinux
# getenfoce &&:查看下
第二步:
安装4个开发包组,以确保后面的过程不会出现故障。
(1) 先编辑一个yum源的包
# cd /etc/yum.repos.d
# vim server.repo
[base]
name=Server
baseurl=http://172.16.0.1/yum/Server
gpgcheck=0
(2) 查看那四个开发组包
# yum grouplist 查看功能,找到所需要的四个软件包组
分别为:“Development Libraries” ”Development Tools” “Legacy Software Development” “X Software Development”
# yum –y groupinstall “Development Libraries” “Development Tools” “Legacy Software” “X Software Development”
这个命令来安装4个开发组包
第三步:
(1) 下载httpd,php,mysql及libmcrypt几个软件包
libmcrypt-2.5.8.tar.bz2 这个软件包实现php数据传输时实现数据加密的(并非必要的)
# lftp 172.16.0.1
# cd pub/Sources/new_lamp
# ls
# mget httpd-2.2.19.tar.bz2 libmcrypt-2.5.8.tar.bz2 mysql-5.5.15-linux2.6-i686.tar.gz php-5.3.6.tar.bz2
(1) 解压缩,编译,安装
########安装libmcrypt
# tar xf libmcrypt-2.5.8.tar.bz2
# cd libmcrypt-2.5.8
# ./configure
#
make clean
#
make
#
make install
#### 安装mysql
#
cd
#
fdisk /dev/sda
#
n
#
e
#
#
#
n
#
#
+10G
#
t
#
5
#
8e
#
p
#
w &&:(以上实现分区,创建一个标志位为8e的LVM分区,这只是我的分区情况,大家可以根据实际情况调整。)
#
partprobe /dev/sda &&:让系统重新认识分区表
#
pvcreate /dev/sda5 &&:创建物理卷
#
vgcreate myvg /dev/sda5 &&: 创建卷组
#
lvcreate –L 2G –n mydata myvg &&:: 创建逻辑卷
#
mke2fs -j -L MYDATA /dev/myvg/mydata &&: 格式化
#
mkdir /mydata &&:创建目录
#
vim /etc/fstab &&:实现开机挂载
#
LABLE=MYDATA /mydata ext3 defaults 0 0 &&在/etc/fstab文件中添加这一行
#
mount -a &&:把逻辑卷挂上
#
mount &&:查看一下
#
cd /mydata
#
mkdir data &&:创建一个目录专门存放数据库的
# groupadd –g 3306 mysql
#
useradd –u 3306 –g mysql -M –s /sbin/nologin mysql &&添加用户,没有家目录。
#
id mysql &&:检验创建的结果
#
chown -R mysql:mysql /mydata &&:实现/mydata/data的属主,属组都是mysql
#
ll -d /mydata &&:验证
#
cd
#
tar xf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local &&:解压mysql
#
cd /usr/local
#
ln -sv mysql-5.5.15-linux2.6-i686 mysql &&:创建连接
#
cd mysql
# chown -R mysql:mysql .
&&:实现当前目录属主,属组都是mysql
#
scripts/mysql_install_db --user=mysql --datadir=/mydata/data/ &&:初始化mysql,安装。现在mysql尚且没法启动。
#
chown –R root . &&:把当前目录属主改回root
#
cp support-files/mysql.server /etc/init.d/mysqld &&:给mysql准备启动的服务的脚本
#
chkconfig --add mysqld &&:加入到服务队列
#
chkconfig mysqld on &&:开机自动启动
#
cp support-files/my-large.cnf /etc/my.cnf &&:准备主配置文件
#
vim /etc/my.cnf &&:编辑这个文件,给它一个datadir目录
#
datadir = /mydata/data &&:在【mysqld】字段添加。随便一行既可。
#
service mysqld start &&:mysql正常启动
**********开始编译头文件,库文件,PATH环境变量,并不是必须的,主要是为将来安装一个软件,用到mysql的头文件,库文件。如果你没有做相应的导出,系统就会报错,尤其是系统自带的那些软件,它会到标准路径下mysql的开发文档的,如果找不到,就会报错。*********
*************导出库文件
#
vim /etc/ld.so.conf.d/mysql.conf
#
/usr/local/mysql/lib &&:加入这一行既可
#
ldconfig &&:重新载入
*************导出头文件
#
ln –sv /usr/local/mysql/include /usr/local/mysql
#
ll !$
*************导出PATH环境变量
#
vim /etc/profile
#
PATH=$PATH:/usr/local/mysql/bin &&:在export字段上面添加这一行,在那其实无所谓。
#
source !$ &&:引用这个文件
#
mysql &&:验证下mysql安装是否成功。在命令提示符后写\q退出。
#######安装httpd
#
cd
#
tar xf httpd-2.2.19.tar.bz2
#
cd httpd-2.2.19
# ./configure --prefix=/usr/local/apache --enable-ssl --enable-so --sysconfdir=/etc/httpd --enable-modules=most --enable-mods-shared=most
&&:这个./configure可以根据自己的需求添加选项。
#
make && make install &&:编译与安装
#
cd
*********给httpd准备一个服务脚本,有两种方法,我们采用从另一个系统账号拷贝一份服务脚本。先登录其它账号。版主是用xhell的所以在开两个系统下,直接开启另一个账号既可。其实你可以完全写一份,只是前者更加简单些。
#
scp /etc/init.d/httpd 192.168.0.141:/root &&:这是在另一个系统上拷贝到本机上,后面的IP是本主机。
#
vim httpd &&:回到本主机上来
#
把check13的部分删除
#
把#Path to the apachectl scripts,server binary, and short-form for message.下面的部分修改如下:
apachectl=/usr/local/apache/bin/apachetcl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/usr/local/apache/logs/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL=0
STOP_TIMEOUT=${STOP_TIMEOUT-10}
&&&&保存退出
# cp httpd /etc/init.d/ &&:把它保存到/etc/init.d
# checkconfig --add httpd &&:加到服务列表中来
# checkconfig httpd on
# service httpd start &&:启动下这个服务
# service httpd restart &&:在此确保下
&&&&此时你可以在我的电脑地址栏中输入 http://192.168.0.141
验证下你的httpd的服务。出现It works!表示成功。
&&&&配置两台虚拟主机,基于主机名的。
# cd /etc/httpd/
# cp httpd.conf httpd.conf.2 &&:记住先备份一份,以防你编辑出错,要记住哦!
# vim httpd.conf
&&&&&将Virtual hosts下面的一行的#好去掉。即开启虚拟主机这个选项。
# #Include /etc/httpd/extra/httpd-vhosts.conf &&:这一行前得#号去掉。大约在435行
&&&&&注释,取消中心主机。
# DocumentRoot “/usr/local/apache/htdocs” &&:在此行前加#号。记住了!大约在151行
&&&&&保存退出既可。
# vim extra/httpd-vhosts.conf &&:配置虚拟主机的配置文件
&&&&&将<VirtualHost *:80>与</VirtualHost>之间的部分替换成如下部分。就是本文件的末尾部分。
<VirtualHost*:80>
ServerName wp.a.org &&:服务器的名字
DocumentRoot “/web/wordpress”
&&:在什么位置 这个目录不存在,一会创建。
ErrorLog “logs/wp.a.org.err” &&:错误日志存放的位置
CustomLog “logs/wp.a.org.access” combined &&:访问日志存放的位置,格式是混合格式combined.
<Directory “/web/wordpress”> &&:给/web/wordpress网页定义一个子容器。
Options FollowSymLinks
AllowOverride None &&:不允许任何人覆盖
Order allow,deny
Allow from all &&:允许任何IP访问
</Directory>
</VirtualHost>
<VirtualHost*:80>
ServerName dp.a.org &&:服务器的名字
DocumentRoot “/web/drupal”
&&:在什么位置 这个目录不存在,一会创建。
ErrorLog “logs/dp.a.org.err” &&:错误日志存放的位置
CustomLog “logs/dp.a.org.access” combined &&:访问日志存放的位置,格式是混合格式combined.
<Directory “/web/drupal”> &&:给/web/wordpress网页定义一个子容器。
Options FollowSymLinks
AllowOverride None &&:不允许任何人覆盖
Order allow,deny
Allow from all &&:允许任何IP访问
</Directory>
</VirtualHost>
&&&&保存退出既可。
# mkdir –pv /web/{drupal,wordpress}
&&:创建这两个目录不要忘了啊。
#
vim /etc/profile
&&&&&添加httpd命令的路径
#
PATH=$PATH:/usr/local/mysql/bin &&:在本行后添加:/usr/local/apache/bin 这个路径。
变成如下:
#
PATH=$PATH:/usr/local/mysql/bin:/usr/local/apache/bin
********保存退出
#
source !$ &&:读一下这个文件
#
httpd -t &&:测试一下
#
service httpd restart
&&&&安装php
#
cd
#
tar xf php-5.3.6.tar.bz2
#
cd php-5.3.6
#
./configure --help | less &&:查看./configure后可跟的选项
# ./configure
--prefix=/usr/local/php5 --sysconfdir=/etc/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --enable-mbstring --with-zlib --with-gd --with-bz2 --with-pdo-mysql=/usr/local/mysql --with-mcrypt
&&&&上面的选项依然可以根据自己的选择。
#
make && make install
&&&&接下来我们拷贝一个配置文件,配置一下apache的主配置文件,让它能够识别php格式的网页, 定义它能够识别主页面的文件的文字。
#
cd /etc/httpd/
#
vim httpd.conf &&:编辑一下apache的主配置文件
&&&&找到AddType这两行,在下面添加如下:大约在355行左右
#
AddType application/x-httpd-php.php
#
AddType application/x-httpd-php-source.phps &&:让它能够识别php格式的网页的类型。
&&&&找到DirectoryIndex
大约在213行
#
DirectoryIndex index.html 这一行加上index.php变成如下:
#
DirectoryIndex index.php index.html
&&&&保存退出
# cd
#
cd php-5.3.6
#
cp php.ini-production /usr/local/php5/lib/php.ini
# service httpd restart
&&:重启一下apache
#
cd /web/wordpress &&:切换到一个虚拟主机中去。
#
vim index.php
&&&&添加如下内容:
#
<?pjp
#
phpinfo();
#
?>
&&&&保存退出
&&&&可以到我的电脑地址栏中输入 http://192.168.0.141 验证一下你这个php。
&&&&假设你想安装drupal这个网站工具的话,如下:
#
cd
#
lftp 172.16.0.1
#
cd /pub/Sources/new_lamp
#
ls
#
mget drupal-7.7.*
#
ls
#
tar xf drupal-7.7.tar.gz –C /web
#
cd /web
#
ls
#
rm -rf drupal
#
mv drupal-7.7/ drupal
#
ls
#
cd drupal/
#
ls &&: 这是安装前得信息
#
cp /root/drupal-7.7.zh-hans.po profiles/standard/translations/ &&: 把支持drupal的中文语言包拷贝过来。
#
cd sites/
#
ls
#
chmod 777 default/ &&:该其权限因为我们安装过程中要用到它创建某些文件。
#
cd default/
#
ls
#
cp default.settings.php settings.php &&这是它的网站配置脚本
#
vim settings.php &&:给它指定它的数据库是谁
&&&&:大约在180行左右,$databases =array();哪一行替换成如下
#
$databases = array(
#
‘driver’ => ‘mysql’,
#
‘database’ => ‘drupal’, &&设置它的数据库是drupal,还未创建。
#
‘username’ => ‘root’,
#
‘passwd’ => ‘’, &&:密码为空
#
‘host’=> ‘localhost’,
#
‘port’ => ‘3306’,
#
‘prefix’ => ‘myprefix_’,
#
‘collation’ => ‘utf8_general_ci’,
#
);
&&&&保存退出
#
chmod 666 settings.php
#
mysql &&:建立数据库
#
CREATE DATABASE drupal;
&&:mysql>提示符后输入这一行的内容。就是创建一个drupal数据库,别忘了加分号;
#
\q &&:退出
#
cd /usr/local/php5
#
ls # 找到我们的php5 的头文件include
#
ln –sv /usr/include/php5/include /usr/include/php5
#
vim /etc/ld.so.conf.d/php5.conf
&&&&把你的php的库文件的路径放进去添加/usr/local/php5/lib/php
&&&&保存退出既可
#
ldconfig -v
&&&&&&OK
&&&&OK让我们使用http://dp.a.org/install.ph来访问我们的服务器网站drupal。
# 打开后选择 Save and continue
# 到下一面选着简体中文 Save and continu
# 到下一面填写基本信息:数据库名称:drupal
数据库用户名: root
密码:为空
点击:保存并继续
# 就开始初始化了,安装你的模块,帮你导入数据库的
# 你可以查看下用如下命令
#
mysql
#
use drupal;
#
show tables
# 你可以看到一堆的数据表文件
# 初始化完成以后继续填写信息
# 用户名: admin
# 密码:
redhat
# 确认密码 redhat
# 然后点击 保存并继续
# 好啦,恭喜你装好啦。点击 访问你的新网站 既可。
# 然后你就可以发挥你的才智啦,任意添加内容啦!!!
好啦!!!大功告成!!!!!!休息会吧!!!