手把手教你利用mysql,php,httpd源码包实现建站

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:
           手把手教你利用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                  &&:在此确保下
    

 

&&&&配置两台虚拟主机,基于主机名的。
#   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>
          ServerAdmin wordpress@a.org          &&:第一个虚拟主机做给谁。
          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>
          ServerAdmin drupal@a.org          &&:第一个虚拟主机做给谁。
          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
# 你可以看到一堆的数据表文件
# 初始化完成以后继续填写信息
# 网站电子邮箱: dp@a.org
# 用户名: admin
# 密码:    redhat
# 确认密码 redhat
# 然后点击 保存并继续
# 好啦,恭喜你装好啦。点击 访问你的新网站 既可。
# 然后你就可以发挥你的才智啦,任意添加内容啦!!!

 

 

好啦!!!大功告成!!!!!!休息会吧!!!










本文转自 kuchuli 51CTO博客,原文链接:http://blog.51cto.com/lgdvsehome/638904,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
关系型数据库 MySQL 数据库连接
关于MySQL-ODBC的zip包安装方法
关于MySQL-ODBC的zip包安装方法
|
2月前
|
安全 关系型数据库 MySQL
PHP手术麻醉临床信息管理系统源码 术前、术中、术后全流程管理
麻醉文书是用于管理患者手术全过程的文书。 麻醉同意:医院麻醉知情同意书的填写和编辑; 病案查询:可以通过搜索框搜索患者查询病案; 申请手术:手术申请单的填写和打印; 风险评估:医院手术风险评估表的书写和编辑。
43 0
|
2月前
|
监控 数据可视化 关系型数据库
微服务架构+Java+Spring Cloud +UniApp +MySql智慧工地系统源码
项目管理:项目名称、施工单位名称、项目地址、项目地址、总造价、总面积、施工准可证、开工日期、计划竣工日期、项目状态等。
307 6
|
2月前
|
安全 前端开发 JavaScript
PHP医院信息化B/S手麻系统源码
开发语言:PHP、 js 技术架构:mysql+laravel+vue2 开发工具:oh-storm 前端框架:vue2 element 后端框架:laravel 数 据 库:mysql 8.0
25 0
PHP医院信息化B/S手麻系统源码
|
1月前
|
分布式计算 关系型数据库 MySQL
Sqoop【部署 01】CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
【2月更文挑战第8天】Sqoop CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
99 1
|
3月前
|
关系型数据库 MySQL PHP
|
6天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
9天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
|
14天前
|
监控 数据可视化 安全
智慧工地SaaS可视化平台源码,PC端+APP端,支持二开,项目使用,微服务+Java++vue+mysql
环境实时数据、动态监测报警,实时监控施工环境状态,有针对性地预防施工过程中的环境污染问题,打造文明生态施工,创造绿色的生态环境。
12 0
智慧工地SaaS可视化平台源码,PC端+APP端,支持二开,项目使用,微服务+Java++vue+mysql
|
14天前
|
监控 安全 关系型数据库
基于vue2 + element +mysql医院不良事件上报系统源码
不良事件管理系统从时间上报、PDCA分析、事件整改、评估效果实行闭环管理和分析,满足医院追根溯源,全流程闭环管理,提高不良事件上报率,减少同类不良事件发生,提高医疗安全。通过报告不良事件,及时发现潜在的不安全因素
19 1