Web服务器搭建手册(Apache+PHP+Mysql)

目录

Web服务器搭建手册之Apache+PHP+MySQL篇 3

一、Apache服务器软件的搭建 3

步骤一:官网下载Apache及运行库 3

步骤二:解压下载的文件(httpd-2.4.41-win64-VS16.zip) 4

步骤三:Apache服务器的配置 5

步骤四:安装Apache服务(设定成系统服务) 7

二、PHP环境搭建 8

步骤一:下载PHP 8

步骤二:解压文件 9

步骤三: 添加系统变量Path值: 10

步骤四:查看设置是否成功 11

步骤五:php.ini的设置 11

步骤六:在Apache中添加对PHP7的支持 13

步骤七:测试PHP安装配置是否成功。 14

三、MySQL的搭建 15

步骤一:下载MySQL 15

步骤二:解压文件并设定系统变量 16

步骤三:添加my.ini配置文件 17

步骤四:安装mysql系统服务 19

实用技巧 22

问题一:如果在安装过程中出现下面的错误提示: 22

问题二:MySQL管理工具Navicat如何安装使用 23

问题三:Apache+PHP+Mysql设定好后,局域网电脑不能通过IP访问Web服务器的解决方法 26

问题四:Apache如何升级 30

Web服务器搭建手册之Apache+PHP+MySQL篇

一、Apache服务器软件的搭建

步骤一:官网下载Apache及运行库

  1. 网址:https://www.apachelounge.com/download/,如下图所示,根据自己电脑的系统是64位还是32位选择对应的版本下载:

2. 下载 Visual C++ Redistributable for Visual Studio 2015-2019运行库vc_redist_x64 或者 vc_redist_x86,网址如下:

注意针对操作系统版本下载对应的运行库:

https://aka.ms/vs/16/release/VC_redist.x64.exe(64位系统用)

https://aka.ms/vs/16/release/VC_redist.x86.exe(32位系统用)

注:新版本的需要下载Visual C++ Redistributable for Visual Studio 2015-2022运行库。

以64位系统为例,下载后直接运行并安装即可:

※建议安装完成Microsoft Visual C++ 2015-2019后重新启动计算机,以使安装的运行库生效。

3. 下载Notepad++

主要作用是:用来编辑Apache、PHP、Mysql的配置文件

下载网址:https://notepad-plus.en.softonic.com/download

如下图所示,点击下载即可;

下载后安装NotePad++。

步骤二:解压下载的文件(httpd-2.4.41-win64-VS16.zip)

  1. 将下载的Apache(httpd-2.4.41-win64-VS16.zip)解压到D盘

注意:只解压Apache24这个文件夹就可以了,如下图:

2. 打开D盘,找到Apache24,改名为:Apache,如下图所示:

3. 添加系统变量Path值:D:\\Apache;D:\\Apache\\bin

4. 进入Apache文件夹,在这个文件夹下会有很多子文件夹,像bin、conf等,每个文件夹都有它各自的用途,如下图所示:

步骤三:Apache服务器的配置

一、httpd.conf主配置文件的修改

  • Apache的绝对安装目录的修改
  1. 用NotePad++打开conf\\httpd.conf主配置文件,如下图所示:

2. 搜索定位“Define SRVROOT”,将SRVROOT目录修改成Apache安装目录,如下图所示:

3. 搜索定位“DocumentRoot”,将其修改为如下图所示的内容:

  • 修改服务器名称

搜索定位“#ServerName”,将其修改为如下图所示的内容,注意:去掉#号:

  • 修改网站索引页

搜索定位“DirectoryIndex”,添加如下图所示的内容:

最后,保存并退出,即可完成对httpd.conf文件的配置。

二、Mime.types的修改

在相同文件夹下找到并打开Mime.types文件,查找定位:application/x-msdownload,在其后添加要下载的文件类型(扩展名),目的是增加可下载的文件类型:

保存修改,退出文件,至此,两个配置文件修改完成。

步骤四:安装Apache服务(设定成系统服务)

运行CMD,在CMD窗口中输入如下命令:

httpd -t(回车)

//检测配置文件是否有语法错误;

httpd -k install -n Apache(回车)

//-k install安装系统服务,-n命名为Apache

net start Apache(回车)

//启动新建的Apache服务

删除Apache服务(建议在删除Apache安装目录时使用):

Net stop Apache(回车)

Sc delete Apache(回车)

※ 注:后续还要添加对PHP的支持…

如果重新安装了系统,则Apache、PHP、Mysql目录都存在的情况下,仅需要创建Apache和Mysql服务即可。

二、PHP环境搭建

步骤一:下载PHP

打开网址:https://windows.php.net/download,选择“Thread Safe”,点击下面的Zip下载

扩展:PHP Non Thread Safe和Thread Safe区别

None Thread Safe就是非线程安全,在执行时不进行线程(thread)安全检查。

Thread Safe就是线程安全,执行时会进行线程(thread)安全检查,以防止有新要求就启动新线程,耗尽系统资源。

为了与外部交换数据,PHP提供了一种叫SAPI的接口。

SAPI是一个中间过程,提供了一个和外部通信的接口,有点类似于socket。

SAPI使得PHP可以和其他应用进行交互数据(如Apache、Nginx等)。

PHP默认提供了很多种SAPI,常见的提供给Apache、Nginx、IIS6/7的FastCGI,单独给IIS的ISAPI,以及Shell的CLI。

FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率。而线程安全检查是为ISAPI方式的PHP准备的,也就是为IIS准备的,因为有许多php模块都不是线程安全的,所以需要使用Thread Safe的PHP。

所以,如果是以 FastCGI 执行 PHP ,都建议用Non Thread Safe的 PHP (zip安装包)。

步骤二:解压文件

将下载的文件php-7.3.9-Win32-VC15-x64(Thread Safe).zip解压到D:\\PHP文件夹下

如下图所示:

步骤三: 添加系统变量Path值:

作用:方便后序命令操作

添加系统变量Path值:D:\\PHP

步骤四:查看设置是否成功

※使设置的路径不用重启计算机就可生效:

方法一:命令窗口设定路径法

方法二:结束explorer.exe(Windows图形壳)方法:

运行CMD,再运行php -v查看是否设置成功,如下图:

步骤五:php.ini的设置

1. 将D:\\php.ini-development改名为php.ini;

2. 用NotePad++打开php.ini,找到[;extension_dir = \”ext\”],替换成“D:\\PHP\\ext”

注:关于目录之间的分隔符,可用”\\”或”/”,即D:\\PHP\\ext和D:/PHP/ext都是可以的。

如下图所示的修改结果:

3. 上传文件的相关设定

(包括:允许上传文件、上传文件临时存放目录、上传文件大小、同时上传文件数的设定)

4. PHP文件请求限定设置:

5. 表单上传值的设定:

说明:步骤3-5的设定可实现大体积文件的上传。

6. 开启mysqli扩展,方便连接mysql数据库

7. 设定时区为国内时区

8. 设定Session文件的存储目录

步骤六:在Apache中添加对PHP7的支持

  1. 用NotePad++打开[D:\\Apache\\conf\\httpd.conf]主配置文件,在其末尾添加:

# php7 support

#加载php模块

LoadModule php7_module \”D:\\php\\php7apache2_4.dll\”

<IfModule php7_module>

#设定.php文件被x-httpd-php服务器处理

AddHandler application/x-httpd-php .php

#添加可执行PHP的文件类型

AddType application/x-httpd-php .php .htm .html

# configure the path to php.ini

PHPIniDir \”D:\\php\”

</IfModule>

添加结果如下图所示:

注:下面是添加新版本PHP8的方法,参考:

# php8 support

#加载php8模块

LoadModule php_module \”D:\\php\\php8apache2_4.dll\”

<IfModule php_module>

#设定.php文件被x-httpd-php服务器处理

AddHandler application/x-httpd-php .php

#添加可执行PHP的文件类型

AddType application/x-httpd-php .php .htm .html

# configure the path to php.ini

PHPIniDir \”D:\\php\”

</IfModule>

  1. 用命令 httpd -t来测试添加的内容是否有错误,之后停止和启动Apache服务,目的是让PHP模块正常工作

注:除了用httpd -t检测外,我们也可用httpd -M命令来查看PHP模块是否加载成功:

步骤七:测试PHP安装配置是否成功。

1. 新建phpinfo.php文件,输入如下内容:

2. 在浏览器中打开网址:http://localhost/phpinfo.php,如果返回如下图所示的页面内容则表示PHP安装配置成功:

三、MySQL的搭建

步骤一:下载MySQL

1. 打开网址:https://dev.mysql.com/downloads/mysql/(该页面是MySQL免费版,即我们所说的社区版)

点击下载按钮:

2. 在弹出的新页面,点击“No thanks, just start my download.”开始下载

步骤二:解压文件并设定系统变量

1. 解压下载的文件(mysql-8.0.17-winx64.zip)到D:\\MySQL

2. Path变量添加:D:\\Mysql;D:\\Mysql\\bin

步骤三:添加my.ini配置文件

在Mysql安装目录下新建my.ini文件,保存编码为ANSI,如下图:

添加内容如下:

[client]

host = localhost

# 设置数据库端口,默认的端口是3306

port = 3306

# 设置登录密码

# 在这里设置了password参数值后就可以在登录时不用输入密码直接进入

# password = \”\”

# 设置默认的客户端字符集,建议设置成utf8

default-character-set = utf8mb4

[mysql]

# 设置mysql客户端默认字符集

default-character-set=utf8

[mysqld]

# mysql服务端默认监听(listen on)的TCP/IP端口

port = 3306

# 基准路径(即MySQL的安装路径),其他路径都相对于这个路径

basedir = \”D:/mysql\”

# MySQL数据库文件存放目录

datadir = \”D:/mysql/data\”

# 服务器端使用的默认字符集(8比特编码的utf-8字符集)

character-set-server = utf8mb4

# log

log-error = \”D:/mysql/log/error.log\”

slow_query_log_file = \”D:/mysql/log/slow.log\”

# 创建新表时将使用的默认存储引擎

default-storage-engine = INNODB

innodb_data_file_path=ibdata1:128M;ibdata2:128M:autoextend

# mysql服务器支持的最大并发连接数(用户数)。

# 但总会预留其中的一个连接给管理员使用超级权限登录

max_connections = 100

# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统

max_connect_errors=10

# 服务端使用的字符集默认

# 查询缓存大小,用于缓存SELECT查询结果。

# 如果有许多返回相同查询结果的SELECT查询,并且很少改变表,

# 可以设置query_cache_size大于0,可以极大改善查询效率。

# 而如果表数据频繁变化,就不要使用这个,会适得其反。

#query_cache_size = 0

# 内存中的每个临时表允许的最大大小。如果临时表大小超过该值,

# 临时表将自动转为基于磁盘的表(Disk Based Table)。

tmp_table_size=20M

# 指定表高速缓存的大小

table_open_cache=256

# Key Buffer大小,用于缓存MyISAM表的索引块。决定数据库索引处理的速度(尤其是索引读)

key_buffer_size=8M

thread_cache_size=8

步骤四:安装mysql系统服务

1. 运行CMD,进入D:\\MySQL\\Bin目录下,然后运行如下命令:

Mysqld –initialize-insecure –console

//执行完这条命令后,MySQL会创建一个data文件夹,并且建好默认数据库,登录的用户名为root,密码为空,(如果不想产生一个随机密码,则不加-insecure)如下图:

Mysqld -install

//安装系统服务,服务名称为默认的mysql

Net start mysql

//启动mysql系统服务

这是最新版本的截图:

要想删除mysql服务,需要先停止服务,再删除服务(删除mysql时最好这样做)。

Net stop mysql //停止系统服务

Sc delete mysql //删除系统服务

注:安装时一定要进入安装目录下运行安装命令,否则有可能导致无法正常启动服务的情况,如下图所示的情况(默认目录文件是C:\\Program Files\\MySQL\\MySQL Server 8.0\\mysqld):

这是正确的安装(D:\\MySQL\\bin\\mysqld):

注:我们可以创建一个log文件夹,用来查看日志,帮助排错。这个文件夹的名字要跟前面所说的配置my.ini里面的相对应:

# log

log-error = \”D:/mysql/log/error.log\”

我们也可直接用mysqld –console命令查看日志。

至此,Aapceh+PHP+Mysql已全部安装完成!

实用技巧

问题一:如果在安装过程中出现下面的错误提示:

则是因为保存的INI文件编码格式不对,修改为:ANSI即可:

问题二:MySQL管理工具Navicat如何安装使用

1.安装MySQL,并运行:

2. 进入数据库服务器,点击“用户”

3. 将密码验证规则改为如下图所示的规则:

4. 新建数据库

5. 可通过备份功能还原先前做的备份数据

问题三:Apache设定好后,局域网电脑不能通过IP访问Web服务器的解决方法

新添加入站规则(适应Win2019 Server, Windows7):

具体操作步骤:

1. 新建防火墙入站规则即可,步骤如下图:

2.选择“端口”,点“下一步”:

3. 在“特定本地端口”处输入80,点下一步:

4. 此处无需操作(默认即可),直接点下一步

5. 直接点下一步

6. 在名称处输入:Web(注:此处可自定义名称,名称是为了描述其功能)

点完成按钮就完创建了新的规则。输入IP地址访问就可以了。

问题四:Apache如何升级

1. 进入命令窗口,输入httpd -v查看Apache当前版本号

2. 到官网查看并下载新版本,如下图:

3. 为避免出现意外,可先直接备份一下整个Apache文件夹

4. 删除D:\\Apache文件下所有内容,并将新下载的Apache压缩包中的所有文件及文件夹复制到Apache文件夹中:

5. 将备份文件夹中的httpd.conf复制到Apache文件夹中并替换:

6. 运行ApacheMonitor.exe并点击start

7. 命令窗口执行httpd -v 再次查看当前版本号:

注:以上内容为个人整理,参考网络内容,难免有不足之处,请指正。

手把手带你搭建一个自己的云服务器并部署Web程序

  1. 我选择的是阿里云的服务器,学生价9.5元一个月,百度直接搜索阿里云,然后点击右上角登录,推荐大家用支付宝扫码登录,方便快捷。阿里云官网的东西比较多,登录后我找了很久也没有找到学生服务器在哪里卖,购买的时候需要进行学生认证,按照他的要求一步步来就好,认证大概需要几个小时。如果你不是学生那就直接购买ecs服务器就好,首页就可以看到ecs服务器的购买地址,但是要比学生服务器贵不少。 在这里要说一下预装环境的选择,因为大部分服务器都是linux系统,linux中centos的使用又是最多的,所以推荐大家也选择centos系统,然后是应用镜像的选择,应用镜像的作用主要就是帮你预装服务器的环境,比如mysql,apache,tomcat这些,有的还会给你提供管理服务器的面板,方便对服务器的操作。应用镜像可用可不用,如果你只是想快速的配置好服务器,推荐大家安装宝塔linux面板,使用起来很方便,如果你想了解或者已经了解一些linux的使用,就可以忽略应用镜像。如果是用来学习的话地域的选择是无所谓的,可以选择一个离自己近的。

2.服务器购买成功之后在阿里云的首页右上角进入控制台,控制台的侧边栏中有esc服务器或者轻量级服务器也就是学生服务器,点击进入后你就可以看到自己购买的服务器,右下角就是你服务器的ip地址,接下来要用到。

1.首先点击远程连接中的设置root密码,这是连接服务器要用到的。

2.然后在防火墙中点击添加规则开放端口,为了方便我开启了如图中的端口。你也可以只开启21,22,443,8080这几个端口,如果你使用的是宝塔linux,则还需要打开8888端口。

现在服务器已经有了,该怎么使用呢?如果要使用命令行手动搭建环境,最好大家要对linux命令有一些了解,如果你不想使用linux命令来快速搭建环境,且安装了宝塔linux面板,请直接看第四部分。

  1. 工具准备我们需要两款软件来连接到服务器,一个叫Xshell,用来操控服务器,另一个叫Xftp,用来进行服务器和自己电脑之间的文件传输。直接百度或者在360宝库中就可以下载到这两款软件。

2.Xshell的连接Xshell的使用很方便,首先输入自己服务器的IP地址,在阿里云服务器列表的右下角就有你服务器的IP地址,点击连接,然后用户名输入root,密码输入你在前面设置的root密码,当屏幕显示welcome to alibaba cloud时,说明你连接成功了。

3.Xftp的连接Xftp的登录和Xshell类似,输入服务器IP,用户输入root,然后输入root密码,登录成功后,左边框为你自己电脑上的文件,右边为服务器上的文件,左右拖动来进行文件的上传和下载。

4.JDK的安装这两个软件安装好之后我们便可以开始服务器环境的搭建,因为是学习用的简单环境,并发不高,所以并没有使用nginx,apache或者redis这些,使用的java环境为简单的tomcat+mysql,环境搭建我们需要使用Xshell来完成。在安装tomcat之前我们首先要进行jdk的安装,linux系统上jdk的安装十分简单,我使用的是1.8版本的jdk,运行命令 yum -y install java-1.8.0-openjdk.x86_64,屏幕上出现Complete时,说明安装成功了。接着你可以运行java -version,显示出当前java版本说明没有问题。

5.Tomcat的安装接下来是tomcat的安装,yum上没有tomcat的源,所以需要wget的方式来下载,首先通过cd /opt来切换到opt目录下。

运行命令wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gzsrc=\”https://yqfile.alicdn.com/ac733c3534aaa8aedbfb616ce5d0603cc01eaf56.png\” alt=\”image\” title=\”image\”>

执行完毕之后我们已经将tomcat压缩包下载到了opt目录下,然后我们运行命令 tar xzf apache-tomcat-8.5.32.tar.gz 来解压这个压缩包。

现在我们在Xftp中是可以看到这两个文件的,我们可以单击解压后的文件按F2来重命名为tomcat8.5,方便我们使用命令行来对他进行操作。

执行命令/opt//tomcat8.5/bin/startup.sh运行tomcat,显示tomcat started,说明启动成功了

我们也可以输入netstat -anp|grep 8080来查看8080端口

这个时候我们已经可以从外网访问了,在你的浏览器上直接访问你的服务器ip地址加端口号,例如http://39.107.104.52:8080/,如果访问成功说明我们的tomcat已经配置好了。

6.mysql的安装yum上mysql的资源有问题,所以不能仅仅之用yum。在使用yum之前还需要用其他命令获取mysql社区版,执行命令wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm。

这时候我们就可以通过yum进行安装了,执yum install mysql mysql-server mysql-devel -y,最后显示complete则说明安装成功。

安装成功后,我们通过systemctl start mysql.service来启动mysql服务器,然后我们依旧可以执行netstat -anp|grep 3306命令来查看mysql是否启动。

通过yum安装的mysql的管理员账户是没有密码的,这里通过命令设置其密码为 admin ,大家也可以设为其他,执行命令mysqladmin -u root password admin。

注: Warning信息并非提示设置失败,而是告诉大家密码露出来了,当心背后有人。

7.项目和数据库的上传我们通过mysql -uroot -padmin命令来登录数据库,admin是密码,如果你设置成了其他密码在这里请更换为自己设置的,通过CREATE DATABASE xxx DEFAULT CHARACTER SET utf8;命令来创建数据库,记得在进入数据库后执行的命令后要加分号,xxx为数据库名,在创建时改为你要创建的数据库名,创建后执行show databases;,即可看到你所创建的数据库。很多时候数据库都是我们本地创建好后导入至服务器,我们首先需要使用Xftp将数据库文件传输到服务器上,我们可以通过mysql -u root -padmin –default-character-set=utf8 xxx < /home/xxx.sql命令来导入数据库,xxx即为数据库名,/home/xxx.sql为数据文件的路径。导入操作完成后,我们再次通过mysql -uroot -padmin命令来登录数据库,执行use xxx; ,然后show tables;,查看导入的数据库。

项目的上传就较为简单了,我们只需将项目直接放入tomcat的webapps目录中即可,或者将项目打包成war文件后放入,重启tomcat后war文件会被自动解析。关闭tomcat的命令为/opt/tomcat8.5/bin/shutdown.sh,关闭后再打开完成重启。

这时候你就可以在外网访问到你的项目了,例如http://39.107.104.52:8080/shop/

到这里服务器搭建就算完成了,如果你还想对你的服务器做进一步的优化,提高网站的访问速度和服务器的性能,请看第五部分——Nginx的使用,使用nginx还有一个好处就是可以在不备份的情况下去掉8080端口(正常情况下我们不备份网站是无法去掉端口号的去使用网站默认的80端口的),比如可以将http://39.107.104.52:8080/shop变为http://39.107.104.52/shop

  1. 宝塔面板登录宝塔面板的使用较为简单,首先从控制台进入服务器管理页面,然后进入应用详情,点击复制

然后远程连接,连接成功后右键将复制的内容粘贴,回车运行,会显示出宝塔面板的密码,把它复制下来。

退出远程连接,点击面板首页地址。

用户名为admin,密码为刚刚远程连接后复制的密码。

  1. 软件安装和配置登录成功后在侧边栏找到软件管理

安装tomcat和mysql,我安装的tomcat版本为8.5,mysql版本为5.7。

在等待安装的这段时间里,我们先开放端口,点击侧边栏中的安全,放行8080端口。

安装完成后,我们这时已经可以从外网访问到tomcat页面。访问如http://39.107.104.52:8080/,IP地址要换成你自己服务器的IP地址。

上传数据库

从侧边栏进入数据库,点击添加数据库,密码可以随机生成,也可以自己设置。

添加成功后点击导入,即可将本地的sql数据库文件上传到服务器。

上传项目

在软件管理中点击tomcat的文件位置,进入tomcat。

打开tomcat的webapps文件夹,点击左上角的上传,将项目文件或者项目的war包放入后重启tomcat即可。

这时候你就可以在外网访问到你的项目了,例如http://39.107.104.52:8080/shop/

到这里服务器搭建就算完成了,如果你还想对你的服务器做进一步的优化,提高网站的访问速度和服务器的性能,请看第五部分——Nginx的使用,使用nginx还有一个好处就是可以在不备份的情况下去掉8080端口(正常情况下我们不备份网站是无法去掉端口号的去使用网站默认的80端口的),比如可以将http://39.107.104.52:8080/shop变为http://39.107.104.52/shop

Nginx是一个反向代理服务器,使用nginx可以实现动静分离和负载均衡,动静分离是指在处理用户请求时,由nginx处理静态请求,tomcat处理动态请求,降低了tomcat的负载,让tomcat可以专注处理动态请求。负载均衡是指nginx可以同时连接多个tomcat即tomcat集群,将用户的动态请求均衡的转发给各个tomcat。那么,Nginx该如何使用呢?

1.使用宝塔面板安装配置Nginx在软件管理中找到Nginx点击安装,在这里我安装的是1.14版本。

安装完成后需要对nginx进行配置,点击nginx的设置,进入设置页面,点击配置修改,将原本的配置文件全部删除,改成如下内容:

events

http

upstream tomcats{

}

server

location / {

location ~ .(gif|jpg|png)$ {

include /www/server/panel/vhost/nginx/*.conf;}

这个配置文件中,我们必须要了解的内容有两部分,文件中的 upstream tomcats中就是我们的tomcat地址,也就是nginx接收到动态请求后要转发的地址,在这里我除了宝塔安装的tomcat外,又手动安装了一个tomcat,分别在8080和8081端口,手动安装tomcat请参考第三部分中的tomcat安装,如果你不想手动安装,在这里可以只写一个,将另一个删掉,让Nginx只做动静分离,ip_hash是指绑定用户IP,防止出现更换tomcat后session的问题,每个ip只能访问到其中的一个tomcat,删除掉这句话后刷新几次页面你会发现你会访问不同的tomcat。server中的 root /www/server/myadmin 指的就是我们存放静态文件的根目录,当有静态请求时nginx将在这个目录下寻找文件。 location ~ .(gif|jpg|png)$指的是当请求以.gif|.jpg|.png结尾时判定其为静态文件,直接去根目录寻找,其他请求则转发至tomcat,当然你也可以把css,js等文件判定为静态文件,只需将.js,.css加在里面即可。配置完毕后,就可以去访问项目了,例如http://39.107.104.52:8080/shop/可以修改为http://39.107.104.52/shop/进行访问了,这时你会发现项目中的图片不见了,因为所有的以.gif|.jpg|.png结尾的文件请求都被nginx拦截了,我们需要将这些文件放在nginx的根目录下,同时更改项目中的图片路径,例如路径/picture/1.png指的就是/www/server/myadmin/picture/1.png。

2.手动安装Nginx因为我使用的是宝塔linux安装的Nginx,并未亲自操作手动安装Nginx,所以推荐给大家另一篇博客https://www.cnblogs.com/taiyonghai/p/6728707.html,手动安装Nginx较为复杂,有兴趣的朋友们可以去看看。关于Nginx的配置,可以参考我上面写的。

博客到这里就结束啦,希望可以帮到大家,最后还要跟大家说的一件事就是在使用阿里云服务器时,出现任何问题都可以在控制台提交工单,让阿里的程序员们来帮你解决问题,但是工单的回复速度可能会比较慢。

1个C文件就写出Web服务器!这个60岁程序员大有来头

杨净 明敏 发自 凹非寺量子位 报道 | 公众号 QbitAI

一个C文件,就写出一个Web服务器。

最近这个软件,在圈里很火。Hackernews上热度高达700+

有网友直接问:他GitHub账号是哪个?

但也有网友质疑说,这个源文件得有几万行代码吧。

No,No,No!

只有2592行,而且完全开源!于是就有旁友打算回去抄代码。

当然,到处还流淌着各种对大佬的仰慕,在这就不一一列举了。(手动狗头)

究竟是谁打造了这一“精品”,背后到底是何方神圣?

Richard Hipp,一个已经60岁的技术大牛。

你没有听过他的名字,但你当前使用的手机,一定有几十甚至上千个他开发的数据库——SQLite。比如,微信的聊天记录就存在那里面。

可以说,它是世界上装机最多的数据库,没有之一。

以至于最新的Web服务器一出,就有网友高呼:大神写个淘宝吧。

说到Richard Hipp,就不得不提他的成名作:SQLite。

SQLite是一款轻型的数据库,最初版本的大小只有900KB左右。

它最大的特点就是嵌入式,支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口。

所以,SQLite可以应用在非常多产品中,除了手机APP、电脑浏览器,甚至连电视机顶盒中也有它的身影。

并且,与同类数据库Mysql、PostgreSQL相比,它的运行速度也更快。

如此强大的数据库,Richard Hipp是怎么设计出来的呢?

这还要追溯到20多年前,他接下国防公司通用动力的一个项目说起。

当时,他要解决如何在导弹的小型计算机上安装数据库的问题。

美国海军所使用的Informix数据库体积太大、无法安装,而且它是一个单独运行的进程,即使想方设法安装成功,运行的效率也不高,甚至还要耗费大量人力来操控。

由此,Richard想:“为什么不能直接从磁盘上读取数据呢?”

这样既能提高运行效率,也能减小数据库大小。

于是,他用C语言写了一个小文件,它可以被嵌入到任何程序中,并且大小只有900KB左右!

所以,你就能Get为啥这个新服务器,只有一个C文件了吧。(一直都很Richard风格)

假设要启动导弹上一个GPS程序,这个文件只需在其内部创建一个小数据库,就能来管理相应的数据。

第一版SQLite就这样诞生了。

之后,Richard对SQLite进行过多次更新。

2001年刚发布第二版后不久,摩托罗拉就给他打来合作的电话,希望把SQLite应用在他们的手机上。

2005年,Richard直接开源了SQLite,并于同年获得Google O’Reilly 开源奖。

而他最新发布的网络服务器Althttpd,其实从2004年就开始运行SQLite官网了。

官网上介绍,Althttpd的处理能力还可以。

截至到2018年,Althttpd在SQLite官网每天处理约50万个HTTP请求(每秒5、6个),每天能够提供50GB的内容(约4.6兆比特/秒)。

他学习编程的缘起,还要从中学说起。

大概是在70年代左右,当时Richard在读9年级。一次偶然的经历,让他看到电传打字机,背后都连着一个大型计算机。

大概是这个样子。

他被震撼到了,于是下定决心说:必须要学会编程。

执行力超强的他,立马就去学校图书馆,将所有关于计算机的书都借出来。

实际上,只有三本。那天晚上,他就将三本书看完了,还开启了学习用BASIC编程的旅途。

随后不久,Apple II出来了。

不太富裕的他,只买了一个主板,然后自己搭建键盘、电源,并将它们全部焊接起来。

这当中还发生了一个小插曲。

第一个主板不能用,他就电话给苹果。联合创始人史蒂夫·沃兹尼亚克就给他寄了另一个主板。

组装成功之后,他就试图在4K的内存中编写程序,这里面还包括视频内存。

当时还因为没有显示器,他就调制射频,将它挂在电视机的天线上。

虽然分辨率感人,整个屏幕只有40个字符宽,24行高。

直到现在,他仍然表示:

It was the most amazing thing in the world.

这样的创造因子,是从他父亲那里继承而来。

Richard这样形容他的父亲:“他是那种最原始的制造者,比如内燃机什么的”。

而Richard则将同样的想法——从零开始创造事物,放在了抽象的东西上。

接触到计算机之后,Richard喜欢上了编程,原因很简单:不需要用任何具象的材料,就能构建一个完全不同的世界。

事实上,他也一直在付诸实践。

SQLite之后,他接着写了分布式版本控制系统Fossil、Bug追踪系统 CVSTrac,以及解析器生成器Lemon。

每次都是因为遇到了一个问题,然后就自己去编写。

因此就有网友戏称:真·轮子哥。

不过也有网友为他解释:自己写的工具确实更顺手。

不过,对于这位大佬来说,还有比编程更难的事情。

那就是让他的妻子Ginger Wyrick嫁给他。(手动狗头)

甚至在结婚之后,公司也改名了 ,Hipp, Wyrick & Company

并将所有股份转让给她。

Richard在接受采访时调侃,有时候一度不得不从她那购买一半的股票。

参考链接:[1]https://sqlite.org/althttpd/doc/trunk/althttpd.md[2]https://changelog.com/podcast/201[3]https://hackernoon.com/the-story-of-dwayne-richard-hipp-and-the-development-of-sqlite-in-1999-yc4v356q

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。