0

0

先做点好事,转点东东来,用PHP和MySQL构建一个数据库驱动的网站(-)

php中文网

php中文网

发布时间:2016-06-21 09:10:33

|

1303人浏览过

|

来源于php中文网

原创

mysql|数据|数据库

摘要

  在这篇文章中,我们会着手解决在构建一个数据库驱动的网站的过程中将会遇到的问题。而我们只会使用两个新的工具,PHP和MySQL。如果你的Web主机支持PHP/MySQL,那么你会省掉不少麻烦。如果不是这样,你也不用提心,我们也会学习如何在Unix和Windows下安装相应程序。

  这篇文章是提供给那些有可能学会服务器端程序开发的中高级的网页设计者的。我们会认为我们的读者熟悉HTML,所以我们在使用HTML时不会给出什么解释。另外,在有些地方我们可能还会用到少量的JavaScript,但是我们会尽量保证这即使对于未入门者也是足够简单的。

(2002-08-29 14:10:35)

--------------------------------------------------------------------------------
By Wing, 出处:Linuxaid

原著:Kevin Yank 翻译:处处
  对于今天的Web来说,内容是最重要的。当你熟练掌握了HTML,而且也学到了一些JavaScript和DHTML的小决窍后,你现在也许可能设计一个漂亮的能让人“一见钟情”的网站了。下一步的工作是向网页中添加一些真实的信息。许多站点不得不通过不断地更新来成功地吸引回头客。在传统的网站建设中,这意味着不断地更新众多的HTML文件。

  现在问题出来了,在更多的情况下,提供内容给站点的人并不是设计网页的人。内容的提供者甚至还不知道HTML。那么内容的提供者怎么把内容添加到网站中去呢?不是所有的公司都有一个全职的Webmaster的,而且,让一个Webmasters整天忙着将Word文件拷贝到HTML模板中也实在是一种浪费。

  要唯护一个文本驱动的站点实在是件很痛苦的事。许多站点(是不是也包括你的站点?)被过时的信息所困扰。因为要保证信息的正常更新,你将不得不重写数以百计的HTML文件。服务器端包含技术(SSI:HTML文件中,可以通过注释行调用的命令或指针)也许能稍微减轻一些麻烦。但是你还是得面对数以百计的HTML文件,即使你只是想对你的站点作一些基本的变动。

  解决这些头疼问题是设计一个数据库的站点。通过把你的站点的内容和设置完全分开,你可以对其中的一项进行处理,而不会对另一项发生影响。你将不再需要为每一条信息写一个HTML页面,你只需要为一类信息写一个HTML页面就足够了。你再也不需要不断地添加新的内容到你的页面中去了,你现在所要做的只是建立一个简单的信息管理系统,通过这个系统,作者可以不通过HTML就自行添加新的内容。

  在这篇文章中,我们会着手解决在构建一个数据库驱动的网站的过程中将会遇到的问题。而我们只会使用两个新的工具,PHP和MySQL。如果你的Web主机支持PHP/MySQL,那么你会省掉不少麻烦。如果不是这样,你也不用提心,我们也会学习如何在Unix和Windows下安装相应程序。

  这篇文章是提供给那些有可能学会服务器端程序开发的中高级的网页设计者的。我们会认为我们的读者熟悉HTML,所以我们在使用HTML时不会给出什么解释。另外,在有些地方我们可能还会用到少量的JavaScript,但是我们会尽量保证这即使对于未入门者也是足够简单的。

  在读完这篇文章后,你应该已经领会了如何构建一个数据库驱动的网站,你也应该基本上学会了PHP和SQL。最重要的是,你会学到如何开始构建你自己的数据库驱动的网站。

第一章:安装

前言
  首先,感谢你阅读这个教程!在下面的几个月里,我会带着你实现从客户端设计的HTML和JavaScript的世界中的超越。目前文本驱动的网站是如此的成功,而我们在这里所要学的是如果解决维护这个难题。

  在我们开始前,我们有必要先了解一下我们的工作所需要的两个工具。在第一章内,我们会学习下载并安装我们将会用到的两个软件包:PHP和MySQL。

  PHP是一个服务器端的脚本语言。你可以将其理解成“插件”,通过这个“插件”,你的Web服务器可以在接到浏览器的请求后不再仅仅发出一个文本的Web页面。安装了PHP后,你的Web服务器可以阅读一种新的类型的文件(PHP脚本),通过这种文件,服务器可以在响应浏览器的请求之前从数据库中读取实时的信息并将其加入到Web页面中去。PHP是完全免费的,你可以自由地下载和使用。

  要从一个数据库中获取信息,你首先需要拥有一个数据库,这时我们就得提到MySQL了。MySQL是一个关系型数据库管理系统(RDBMS)。它到底扮演了一个什么样的角色以及它是如果工作的,我们将在下面进行具体地讲解。基本上,它是一个软件包,这个软件包可以很好地组织和管理大量的数据。MySQL也使得我们可以很容易地通过象PHP这样的服务器端脚本语言来获取信息。MySQL的for Unix-based平台(例如Linux)的非商业应用是免费的。

  如果你足够幸运的话,你的Web主机可能已经为你安装了MySQL和PHP。如果是这种情况,有一些章节对你来说就没有作用了,你可以直接跳到如果你的Web主机提供PHP和MySQL。

  我们在本教程中所讨论的大多数内容都适用于Windows-based或者Unix-based的服务器。但是根据你使用的服务器类型的不同,安装过程会不一样下一节讲解如何在Windows-based的Web 服务器上安装。再下面的一节讲解如何在Linux(以及其他Unix-based的平台)下安装。如果你不是特别对安装过程感兴趣,你只需要选择阅读适合你的那一节。

在Windows下的安装

  你可以到http://www.mysql.com/(或者在http://www.mysql.com/mirrors.html列出的镜像站点之一)并选择Downloads for Windows MySQL related software->Downloads->Register and download shareware version of MySQL-Win32,下载完文件后,将其解压并运行其中的setup.exe。

  当你安装好之后,MySQL已经可以使用了(不包括我们不久将要执行的一些配置)。象你的Web服务一样,MySQL也是一个可以在后台运行的服务,所以它可以在任何时候响应对信息的请求。这个服务程序,你可以在你安装MySQL目录下的bin子目录下找到。如果你使用的是一个共享的版本,这个服务被称之为mysqld-shareware.exe。在执行前,将其改名为 mysqld.exe。在MS-DOS提示符下,通过如下命令开启这个服务:

C:mysqlin> mysqld


  要确保在Windows启动时就开启这个服务,你需要建立一个快捷方式,并将其加入到启动程序组中。此外,你还可以通过这个命令作为Windows NT/2000的一个服务安装:

C:mysqlin> mysqld-nt --install


  如果你在Windows NT/2000下运行共享版本有问题,你可以试试用单机模式运行这个服务:

C:mysqlin> mysqld --standalone


  下一步是安装PHP。在写这本教程的时候,PHP 4.0已经基本上成熟了。我自己就试过PHP 4.0-RC2,并没有遇到任何问题。估计最终的稳定版很快将会发布(可能到时候我们这个教程还没写完),我建议你安装最新的版本,这样当正式版出来时你将不需要做任何变动。

  PHP可以从http://www.php.net/ (或者在http://www.php.net/mirrors.php列出的镜像站点之一)免费地下载。你需要“binaries for Win32”软件包。你可以从以下地址获得一个很好的PHP 3.0 for Windows的安装指南:http://www.umesd.k12.or.us/php/win32install.html。 当PHP 4.0发布最终版时,你可能需要升级,但是4.0的安装基本上与3.0一样。你不会因为所选择的版本不同而遇到什么麻烦。

  MySQL和PHP安装好之后,你可以进入安装配置了。

在Linux下的安装

  这一节所讲述的是在RedHat Linux下安装PHP和MySQL的过程。如果你使用的是Linux的不同版本,或者是使用的是其它Unix-based的操作系统,这些步骤也是非常相似的,即使不是完全相同的。

  作为RedHat Linux的用户,你可能会对下载和安装PHP和MySQL的RPM发布感兴趣。RPM的确是优秀的,预打包的软件的安装非常容易。不幸的是,它们也会限制你选择怎么配置软件。因为这个原因,我认为使用PHP和MySQL的RPM版本所带来的麻烦要比其实际价值来得更多。

  因为有些RedHat Linux的默认配置会自动替你安装PHP,所以第一步就是从你的系统删除旧版本的PHP和MySQL。你需要以超级用户的身份登录来执行下面的命令。注意在下面的命令中,“%”表示shell的提示符,是不需要你输入的。


% rpm -e mysql
% rpm -e php



  如果这两个命令或其中一个显示程序没安装,不要担心。如果第二个命令成功执行(也就是说,不显示任何信息),那就证明的确安装了老版本的PHP,你必须完全删除它。用你所习惯的文本编辑器打开Apache的配置文件(通常是/etc/httpd/conf/httpd.conf),寻找下面的这两行内容。这两行通常是分在文件的不同地方,所以如果这两行不在一起,那实在没什么好担心的。


LoadModule php3_module modules/libphp3.so
AddModule mod_php3.c



  这两行是用来告诉Apache将PHP作为plug-in模块装入的。当你卸载了这个模块,你还需要删除这两行以保证Apache正常工作。你也可以在这两行的开头加(#)使其成为注释。

  为了确保Apache还在正常工作,你现在必须在没有PHP插件的情况下重启它:


% /etc/rc.d/init.d/httpd stop
% /etc/rc.d/init.d/httpd start



  一切安排妥当后,你可以准备下载安装MySQL和PHP了。

在Linux下安装MySQL

  MySQL for Linux的版本是免费的,你可以从http://www.mysql.com/(或http://www.mysql.com/downloads/mirrors.html中列出的镜像站点之一)下载最后的稳定版(列在下载页的“recommended”中)。你应该获取“tarball source download”的版本,其文件名是mysql-version.tar.gz。

  下载完文件后,你必须确保以超级用户的身份登录进行安装,除非你只想在你自己的home目录下安装MySQL。开始解开下载的文件并进入刚建立的目录中:


% tar xfz mysql-version.tar.gz
% cd mysql-version



  下面你需要配置MySQL的安装。除非你有绝对的把握,否则你需要指定安装的目录。我推荐使用 /usr/local/mysql:

% ./configure --prefix=/usr/local/mysql


  在对显示器和显示器配置进行过检测之后,你最终将返回到命令提示符下。现在你可以编译MySQL了:

% make


  在编译后,你会重新返回到命令提示符下。现在你可以安装你新编译的程序了:

% make install


  现在MySQL已经安装好了,但是在使用前,你还得安装它的数据库文件。在你的开始安装的目录下,输入下面命令:

% scripts/mysql_install_db


  一切都做好后,你可以删除你正在其中工作的目录了,在这个目录中仅仅包括了源程序和安装的临时文件。如果你可能还需要重新安装,你只需要重新解开mysql-version.tar.gz 文件。

  当MySQL安装完成并且可以存储数据后,剩下的工作就是在你的计算机中运行这个服务了。你可以用超级用户或者你自己的用户(如果你是将这个服务安装在你自己的home目录下),但是,最好的方法是设置一个特殊的用户,这个用户只能启动MySQL服务。这会防止有人通过MySQL服务侵占你的系统。你可以使用以下命令建立一个特殊的MySQL用户:


% /usr/sbin/groupadd mysqlgrp
% /usr/sbin/useradd -g mysqlgrp mysqlusr


  
  在默认情况下,MySQL的所有数据库信息都存储在你安装的目录的var子目录下。我们想设置这个目录只有我们的新的MySQL用户能访问。下面的这个命令能完成这个工作(我假定你将MySQL安装到/usr/local/mysql目录):


% cd /usr/local/mysql
% chown -R mysqlusr.mysqlgrp var
% chmod -R go-rwx var



  现在一切都安排好了。在MySQL目录下,输入以下命令:

% bin/safe_mysqld --user=mysqlusr &


  现在MySQL服务已经被MySQL用户开启,除非你关闭你的计算机,这个服务将一直运行下去(就象Web和FTP服务一样)。要测试这个服务是不是正常运行,输入以下命令:

% bin/mysqladmin -u root status


  现在应该会显示MySQL服务的一些简单的统计信息。如果你看到的是一个错误信息,那就是出错了。你可以试一下重新安装。

  如果你想让你的MySQL服务在你的系统启动时自动运行(就象你的Web服务那样),你需要作相应设置。在MySQL目录的share/mysql子目录下,你会发现一个叫mysql.server的脚本,将它添加到你的系统的启动事务中就行了。

  如果你已经设定了一个特殊的MySQL用户来启动MySQL服务,你需要编辑mysql.server脚本。用你熟悉的文本编辑器打开它并改变mysql_daemon_user设定,使其指向你上面创建的用户:

mysql_daemon_user=mysqlusr
 



PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python 序列化
Python 序列化

本专题整合了python序列化、反序列化相关内容,阅读专题下面的文章了解更多详细内容。

12

2026.02.02

AO3官网入口与中文阅读设置 AO3网页版使用与访问
AO3官网入口与中文阅读设置 AO3网页版使用与访问

本专题围绕 Archive of Our Own(AO3)官网入口展开,系统整理 AO3 最新可用官网地址、网页版访问方式、正确打开链接的方法,并详细讲解 AO3 中文界面设置、阅读语言切换及基础使用流程,帮助用户稳定访问 AO3 官网,高效完成中文阅读与作品浏览。

200

2026.02.02

主流快递单号查询入口 实时物流进度一站式追踪专题
主流快递单号查询入口 实时物流进度一站式追踪专题

本专题聚合极兔快递、京东快递、中通快递、圆通快递、韵达快递等主流物流平台的单号查询与运单追踪内容,重点解决单号查询、手机号查物流、官网入口直达、包裹进度实时追踪等高频问题,帮助用户快速获取最新物流状态,提升查件效率与使用体验。

98

2026.02.02

Golang WebAssembly(WASM)开发入门
Golang WebAssembly(WASM)开发入门

本专题系统讲解 Golang 在 WebAssembly(WASM)开发中的实践方法,涵盖 WASM 基础原理、Go 编译到 WASM 的流程、与 JavaScript 的交互方式、性能与体积优化,以及典型应用场景(如前端计算、跨平台模块)。帮助开发者掌握 Go 在新一代 Web 技术栈中的应用能力。

15

2026.02.02

PHP Swoole 高性能服务开发
PHP Swoole 高性能服务开发

本专题聚焦 PHP Swoole 扩展在高性能服务端开发中的应用,系统讲解协程模型、异步IO、TCP/HTTP/WebSocket服务器、进程与任务管理、常驻内存架构设计。通过实战案例,帮助开发者掌握 使用 PHP 构建高并发、低延迟服务端应用的工程化能力。

16

2026.02.02

Java JNI 与本地代码交互实战
Java JNI 与本地代码交互实战

本专题系统讲解 Java 通过 JNI 调用 C/C++ 本地代码的核心机制,涵盖 JNI 基本原理、数据类型映射、内存管理、异常处理、性能优化策略以及典型应用场景(如高性能计算、底层库封装)。通过实战示例,帮助开发者掌握 Java 与本地代码混合开发的完整流程。

9

2026.02.02

go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

62

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

56

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

28

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 2.1万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 821人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号