Windows下的Web前后端开发准备

Posted jiangwei0512

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows下的Web前后端开发准备相关的知识,希望对你有一定的参考价值。

环境准备

使用Apache作为Web服务器,如何使用可以参考如下网页的说明:Apache Windows下Apache安装步骤,这里简单说明具体的步骤。

首先下载在http://httpd.apache.org/download.cgi下载Windows版本的绿色Apache程序,对应下图中的红框部分:

具体的版本可以根据实际的情况选择,这里最终下载到的是一个压缩包httpd-2.4.48-lre333-x64-vs16.zip,将其解压并重命名(非必须)放到某目录下:

之后修改配置文件httpd\\Apache24\\conf\\htpd.conf,要改的选项如下:

Define SRVROOT "F:\\httpd\\Apache24"
ServerName www.example.com:80

第一行的SRVROOT的值就是上一个图中的位置,注意最后不能有斜杠,否则会报奇怪的错误,很难从这里推测到问题的原因,所以需要非常注意:

httpd: Syntax error on line 75 of D:/Program Files/Apache Software Foundation/Apache24/conf/httpd.conf: Cannot load modules/mod_actions.so into server: \\xd5\\xd2\\xb2\\xbb\\xb5\\xbd\\xd6\\xb8\\xb6\\xa8\\xb5\\xc4\\xc4\\xa3\\xbf\\xe9\\xa1\\xa3

第二行的ServerName如果不修改会报一个告警,不过似乎影响不大。

修改配置文件之后,通过“httpd\\Apache24\\bin\\httpd.exe -t”来查看配置是否有问题,如果没有则继续执行“httpd\\Apache24\\bin\\httpd.exe -k install -n Apache”来安装Apache服务。正常安装之后(会报一个错“Errors reported here must be corrected before the service can be started.”,但是没有影响),通过“计算机管理”可以查看到服务:

如果不常用该服务,可以选择手动启动,然后点击这里的启动来开启服务,或者使用httpd\\Apache24\\bin\\ApacheMonitor.exe来开启服务:

之后就可以使用Apache了,在Web上输入localhost来打开Apache默认的网页:

这个网页对应的Apache目录在httpd\\Apache24\\htdocs,就是一个index.html文件,这也是因为在配置文件中默认的入口就是这个:

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

以上就是Apache的基本配置。

Apache使用CGI

首先需要确认httpd\\Apache24\\conf\\htpd.conf中的配置项:

LoadModule cgi_module modules/mod_cgi.so
ScriptAlias /cgi-bin/ "${SRVROOT}/cgi-bin/"
AddHandler cgi-script .cgi

上述的三个配置需要被打开(就是前面没有#)。

之后编写一个CGI,使用的是C++语言,代码如下:

#include <iostream>

using namespace std;

int main ()
{
   cout << "Content-type:text/html\\r\\n\\r\\n";
   cout << "<html>\\n";
   cout << "<head>\\n";
   cout << "<title>Hello World</title>\\n";
   cout << "</head>\\n";
   cout << "<body>\\n";
   cout << "<h2>Hello World! I am a CGI</h2>\\n";
   cout << "</body>\\n";
   cout << "</html>\\n";

   return 0;
}

将它编译成一个CGI,就是普通的编译,-o的时候设置文件名称为helloworld.cgi即可,之后在网页中输入http://localhost/cgi-bin/helloworld.cgi,显示的结果:

这只是一个测试,正常情况下是不会这样直接使用CGI的,之后的示例会更加符合实际的情况。这里修改httpd\\Apache24\\htdocs下的index.html文件:

<body>
  <form name="form1" action="/cgi-bin/helloworld.cgi">
    <table>
      <tr>
        <td><input type="submit" value="ClickMe"></td>
      </tr>
    </table>
  </form>
</body>

然后再输入localhost打开网页:

点击该按钮,就会执行helloworld.cgi,得到跟上面示例一样的结果。以上是使用C++的例子,其实还可以使用其它的语言,比如Python,作为脚本语言会更方便,不过需要修改配置:

AddHandler cgi-script .cgi .py

就是增加了“.py”以表示支持Python。下面是一个示例:

#!C:\\Python27\\python.exe
print ("Content-type:text/html")
print ('')
print ('<html>')
print ('<head>')
print ('<title>Hello World</title>')
print ('</head>')
print ('<body>')
print ('<h2>Hello World! I am a python CGI!</h2>')
print ('</body>')
print ('</html>')

注意这里的第一句话是必须的,这是Python程序所在位置,需要根据实际的情况调整,最终的结果如下:

这里需要修改index.html中的如下代码,就可以启动Python的CGI了:

<form name="form1" action="/cgi-bin/helloworld.py">

以上就是使用CGI的一些方式,当然也还可以使用其它语言。这里的重点在于需要打印HTML规范的信息来作为显示。

以上是关于Windows下的Web前后端开发准备的主要内容,如果未能解决你的问题,请参考以下文章

怎样才能实现前后端分离,提高开发工作效率?

浅谈前后端分离。

前后端分离,是为了彼此更好

前后端分离全栈开发项目师徒开启,VUE+koa+MongoDB!

当准备做前后端分离时,我们在考虑什么?

当我们准备做前后端分离项目时,我们在考虑什么?