用Apache Server配置php,cgi服务器

 更新时间:2016年11月25日 16:15  点击:1483
  现在有越来越多的个人主页站长需要了解如何如何在windows系统下配置自己的php,cgi服务器,以方便本地调试cgi和php的程序。
  我们可以用Apache(windows版)来一次搞定:以下由我自己整理的关于在单机Windows环境下的安装和配置 Apache Server 的文章。如果您正在 Windows 单机环境下测试自己的网站,建议您参考一下。
  主要包括:安装和配置 Apache Server;使用 Perl CGI 脚本;使用 PHP 脚本。
 
--部分内容参考《Apache Server 系统管理员手册》。
 
  一、Windows 下的安装
  当然,你首先得要有Apache的安装程序。不妨先到http://www.apache.org/dist看看。在这里有世界范围的Apache镜像站点列表,找到离你最近的那个。如果在国内,这里建议你到软件屋去看看。A pache的安装程序一般的文件名是apache_1_3_x.win32.exe。把它当到你机器里,运行它。
  安装程序会提示你修改Apache安装的缺省目录位置C:Program FilesApache GroupApache。为了方便以后的配置和维护,建议你安装在根目录下,比方C:Apache。之后,你会被提示选择安装类型,建议你选择Cus tom(定制),这样,你将知道安装了些什么。具体项目有Application File(应用程序文件)、Source Code(源代码)、Apache Manual(Apache 手册)、Additional Modules(附加模块)、Icons(图标)、Repuired Directories(必须目录)。你可以根据你的情况来决定如何安装。
  一切顺利的话(此时不应该有什么问题了),安装很快就会完成。Apache会自动的完成一些基本配置,你可以用UltraEdit-32(或者是其他的文本编辑软件)打开c onfhttpd.conf文件大致了解一下。
  二、配置 Apache Server
  这里首先进行的是基本的配置,以便你的Apache Server以你的意愿运行起来。
  用UltraEdit-32(或者是其他的文本编辑软件)打开confhttpd.conf文件。
  1、寻找到ServerName。这里定义你的域名。这样,当Apache Server运行时,你可以在浏览器中访问自己的站点。如果前面有#,记得删除它,这是conf的注释标记。
  2、寻找到ServerAdmin。这里输入你的E-Mail地址。如果你仅仅是单机使用,改不改没什么关系。
  3、寻找到。向下有一句Options,去掉后面所有的参数,加一个All(注意区分大小写!下同。);接着还有一句Allow Override,也同样去掉后面所有的参数,加一个All。
  大家知道,php是一种PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页。当用户打开php页面时,服务端便执行PHP的命令并将执行结果发送至用户的浏览器中,这类似于ASP和CoildFusion,PHP可以运行在WINDOWS和多种版本的UNIX上。除了能够操作您的页面外,PHP还能发送HTTP的标题。您可以设置cookie,管理数字签名和重定向用户,而且它提供了极好的连通性到其它数据库(还有ODBC),集成各种外部库来做用PDF文档解析XML的任何事情。那你还知道可以用php的强大功能做点别的东西吗?
  在以独立的cgi方式运行时,需要一个php可执行程序,他有很多命令行参数的,有些可以用作很好玩的用途,下面是全部的php命令行参数,其中[]表示可有可无的,<&gt;表是一定要的。
用法 php [-q] [-h] [-s] [-v] [-i] [-f ] | { [args...]}
  -q 安静模式。不输出HTTP头。
  -s 将php程序文件用转化为彩色格式的HTML(比如保留字用绿色,函数和变量为蓝色,注释为黄色而字串则是红色等等。
  -f 读入并解释指明的文件。
  -c 在中读入php.ini文件
  -a 交互式运行
  -d foo[=bar] 定义ini中的输入项 foo 的值为 bar
  -e 输出额外信息以便调试和性能分析
  -z 调入Zend扩展文件
  -i php的相关信息
  -h help本身。
哈,知道如何利用它了吗?
对了,
1.用php -q 文件名.php 方式把php程序当shell程序来用,
2.用 -s把自己的php程序html化。这样是不是很省心?
3.利用php的odbc功能可以在shell命令中对数据库进行操作。
还有很多,就看你的创意了。哦,别忘了告诉我一声。


一.概述:
Zend引擎的名称由Zeev Suraski和Andi Gutmans二位在PHP担任核心开发工作的资深设计师的名字合体.开发的目的师为了研发新的脚本执行机制,而PHP4就是这套崭新的Zend引擎的第一个实作产品。在一些特殊测试环境下,Zend(PHP$)的执行速度比PHP3及ASP快了几倍到几百倍之多,这也意味着网站的后端CGI界面的统一者非PHP4 Zend莫属了。(当然,技术是不断进步的,说不定哪一天又出现了新的引擎。)
Zend引擎在研发二年多之后,已经变成类似VBA功能的广义程式环境,它不但有传统的PHP函数功能,更增加了分散式物件(COM)的功能,并且能够在不同的操作平台上执行。以这种潜力发展下去,VBA的终结者非Zend莫属。
 
Zend在PHP4上实作时更针对了PHP3之前最大缺憾的session做了最完整的承诺,同时加入了一些未来的功能,如CyberCash...等等。
 
在opensource社群中,唯一能保持声势,却又尚未被微软公司视为竞争对手的,PHP/Zend是最好的例子。它已经完全地将ASP丢到了身后,正往VBA的环境发展。而微软只全力对付Linux,没有注意到来自PHP/Zend的威胁。
 
Web服务器发觉是PHP的要求,需要PHP引擎解析(根据文件的扩展名),于是将它送到PHP4的Zend引擎上。
 
Zend引擎将文件从硬盘上读取,送到Zend线上编译器(Run-time Compiler),进行程序直译工作。(或许日后的Zend Compiler出来以后可以省略线上编译工作。)
Zend引擎的线上执行单元(Excutor)执行编译过的PHP程序。并在需要时找相关的模组执行协力动作(如XML,IMAP,ODBC...等等)。
 
Zend将执行后的结果整理成HTML文件,送给Web服务器。
 
Web服务器将结果通过网络,传回使用者的浏览器。
 
目前的Zend产品有下列四种:
Zend Engine:Zend引擎 Zend引擎目前只做出PHP4一种产品,提供类似微软的VBA及跨平台的功能。而目前在网络上的流行,也为Zend引擎作了最佳的见证。在Zend的四大产品中,这是目前唯一成熟的产品。
 
Zend Optimizer:Zend极限器 将PHP的核心重新调整,让PHP程序执行的效率更高。主要能加快PHP代码的执行速度及降低CPU的负担,将潜伏时间减少。
 
Zend Cache:Zend快取 将PHP程序快取到Web服务器的记忆体中,让系统不用再一直从硬盘读取PHP程序,可大幅度缩短系统的反应时间,降低网络的负荷。存在Cache的资料甚至可以不用再直译过,减少处理的资源。
 
Zend Compiler:Zend编译器 这恐怕是Zend的最终极武器,它可让PHP的程序代码经过编译后,以Zend中间码(ZIC,Zend Intermediate Code)的形式存在。
 
可以保护PHP的源代码,不让使用者看到,让PHP的源代码有安全保障。预料本产品出现之后,将对整个网络产生不小的影响,PHP码的物件库,将会到处可见,软件业也会提供相关的函数库或物件库给PHP编程者。届时,可能会有PHP大战Java的情形。
在学习PHP过程中可能要同时用到PHP4和PHP5,网上也有不少关于二者共存的安装方法,大多是一个安装在IIS下,一个安装在Apache下。下面介绍一下本人的安装方法,自认为比较优化,而且非常方便升级。
  
为了方便介绍,先介绍一下本人的安装环境:Windows XP Pro SP2,Apache 2.0.55和PHP4.4.1、PHP5.1.1,都安装在D:(即D区上有以下文件夹d:apache2、d:php4、d:php5),网卡配置两个IP地址192.168.0.2和192.168.0.3(至于如何配置多个IP地址,不是本文介绍重点)。下面以Apache的模块式安装方法为例进行介绍:
1、安装配置Apache 2.0.55服务器。在同意许可协议后会有填写服务器信息的页面,本地调试,前面两个输入 localhost 。编辑httpd.conf 文件,分别定位到ServerName localhost:80和Listen 80,都在前面加#关闭其设置。
2、准备PHP。分别解压下载的PHP压缩包(例如php-5.1.1-Win32.zip),放置到d:php4和d:php5。
3、分别配置php.ini。因为有两个版本的PHP,所以要分别配置。分别复制一份php.ini-recommended后重命名为php.in,就放在原路径。
题外话:过时方法要这样处理,复制php.ini文件至x:winnt(x:windows)或apache的安装文件夹,并且copy x: phpphp5ts.dll、php4ts.dll等dll文件到winnt(windows)、或winntsystem32或apache的安装文件夹下。本人强烈推荐你不要这么做,以后升级比较麻烦,下面将给出理由。
4、修改windows path变量。加入
d:php4;d:php5
到path环境变量中,即告诉系统到哪里去查找php5ts.dll等动态链接库文件,所以我们也没有必要将这些dll文件复制到%windir%,所以升级PHP也方便很多,不用去一一删除原来那些文件。至于怎样修改path路径,你可以查看这里。
5、分别修改php.ini。主要修改一下extension_dir和extension_dir。分别在php.ini中找到上面的变量,加入适当的路径。我是这样修改的,PHP4的php.ini中
extension_dir = "D:php4extensions"

include_path = "d:php4pear;d:php4includes"
PHP5的php.ini中
extension_dir = D:php5ext

include_path = "D:php5PEAR;D:php5"
其实一般来说还需要修改php.ini中的其他不少参数值,例如文件上传临时路径、Session临时路径、邮件设置、扩展模块配置(PHP5中为了支持mysql要去掉以下代码中的;号)
;extension=php_mysql.dll
但由于不是本文的重点,所以不详细介绍。
(1)echo,print,printf,sprintf
前两个函数是输出字符串.字符串中如果有变量名则被替换成其值.
后两个函数类似于C的同名函数.
(2)strchr,strlen,strtok,strrchr,strrev,strstr,strtolower,
strtoupper,substr,ucfirst
这些是常用的字符串操作函数,有些和C中的同名函数意义完全一致.
strrev是把一个字符串翻转.
strtolower和strtoupper的意思应该不用解释了.
ucfirst是把字符串的第一个字符变成大写.
substr是返回字符串的一个子串,用法是:substr(字符串,头,长度).
头位置是 从0算起的.如果是负数,则是从尾部向前数的意思.
(3)Chr,Ord
类似于C的同名函数.
(4)explode,implode,join
这些是和数组有关的函数.
explode(字符串,分割符)返回一个将字符串在分割符处分开所产生的数组.
implode(数组,分割符)返回一个将数组各元素之间插上分割符而成的字符串.
join与implode意义相同.
(5)Chop
去掉字符串尾部的空白.
(6)htmlspecialchars
将字符串中的HTML特殊字符换成它们的名字,例如"<"变成"<".
(7)nl2br
在字符串中的每一个回车前面加上"<BR>".
(8)AddSlashes,StripSlashes
分别给字符串中需要加上""才能用于数据库查询的字符加上和去掉"".
(9)parse_str
将"name1=value1&name2=value2&..."类型的字符串分析成一些变量.
例如:
parse_str("a=1&b=2");
生成$a与$b两个变量,值分别为1,2.
如果有两对名字/值的名字部分相同,则后一个的值覆盖前一个的.
如果这两对的名字尾部都有"[]",例如"a[]=1&a[]=2",则生成数组$a,两个元素分别为1,2
[!--infotagslink--]

相关文章

  • 分享一段php获取linux服务器状态的代码

    简单的php获取linux服务器状态的代码,不多说-直接上函数:复制代码 代码如下:function get_used_status(){ $fp = popen('top -b -n 2 | grep -E "^(Cpu|Mem|Tasks)"',"r");//获取某一时刻系统cpu和内存使用情况 $rs =...2014-05-31
  • Springboot+TCP监听服务器搭建过程图解

    这篇文章主要介绍了Springboot+TCP监听服务器搭建过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-10-28
  • 服务器 UDP端口占用几千个的解决办法

    前一段时间使用NetStat命令查看服务器端口时,发现服务器udp端口开放了好多,最少在1000个以上,当时事情比较多,没有管它,今天终于有点时间,仔细检查了一下,排除了这个问题. ...2016-01-27
  • PHP连接公司内部服务器的MYSQL数据库的简单实例

    “主机,用户名,密码”得到连接、“数据库,sql,连接”得到结果,最后是结果的处理显示。当然,数据库连接是扩展库为我们完成的,我们能做的仅仅是处理结果而已。...2013-09-29
  • 解决HttpPost+json请求---服务器中文乱码及其他问题

    这篇文章主要介绍了解决HttpPost+json请求---服务器中文乱码及其他问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-22
  • Apache启动报错No space left on device: AH00023该怎么解决

    Apache启动报错No space left on device: AH00023错误可能是进程导致了,虽然小编不知道什么原因但网上提供的解决办法确实是可以解决我们的问题,下面来看看。对于这类错误是因为linux系统的ipc信号量造成的,apache启动时...2015-10-21
  • apache配置黑名单和白名单及账户权限控制

    本文我们将分享apache配置黑名单和白名单,apache层的账户权限控制,以及apache黑名单白名单过滤功能,apache rewrite规则实现白名单。 apache配置黑名单和白名单的两...2016-09-14
  • Hyper-V尝试连接到服务器出错无效类的解决方法

    这篇文章主要介绍了Hyper-V尝试连接到服务器出错无效类的解决方法,需要的朋友可以参考下...2016-09-28
  • mac使用Shell(终端)SSH连接远程服务器的方法

    这篇文章主要介绍了mac使用Shell(终端)SSH连接远程服务器的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-11
  • js实现上传图片到服务器

    这篇文章主要为大家详细介绍了js实现上传图片到服务器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-04-11
  • apache开启gzip详解教程

    今天在用百度工具检测时发,发现有个提示如下 原来可以开启gzip啊,因为我的是apache所以和iis不同,经过网站搜索开启方法如下 一,找到你的httpd.conf文件,打开找到如下 ...2016-01-28
  • c# HttpWebRequest通过代理服务器抓取网页内容应用介绍

    在C#项目开发过程中可能会有些特殊的需求比如:用HttpWebRequest通过代理服务器验证后抓取网页内容,要想实现此方法并不容易,本文整理了一下,有需求的朋友可以参考下...2020-06-25
  • 解决PHPstudy Apache无法启动的问题【亲测有效】

    这篇文章主要介绍了PHPstudy Apache无法启动的问题及解决方法【亲测有效】,本文给大家总结了三种方法供大家参考,需要的朋友可以参考下...2020-10-30
  • 图文详解本地Windows 7/8上IIS服务器搭建教程

    这篇文章主要以图文结合的方式详细介绍了本地Windows 78上IIS服务器搭建教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 ...2017-07-06
  • apache http server遇到了一个问题,需要关闭

    重装系统后,重新安装了xamp,最近启动的时候经常报apache http server遇到了一个问题,需要关闭,显示如图: 解决方法:查看szModName报错的模块,然后把PHP安装目录下对应的模块...2016-01-28
  • uploader秒传图片到服务器完整代码

    这篇文章主要为大家详细介绍了uploader秒传图片到服务器的完整代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-04-27
  • Windows Server 2016 上配置 APACHE+SSL+PHP+perl的教程详解

    Windows Server 2016 上配置 APACHE+SSL+PHP+perl怎么配置?小编推荐了一篇介绍Windows Server 2016 上配置 APACHE+SSL+PHP+perl的教程,有需要的同学快来看看吧! ...2017-07-06
  • Linux环境下nginx搭建简易图片服务器

    这篇文章主要介绍了Linux环境下nginx搭建简易图片服务器,需要的朋友可以参考下...2016-01-27
  • Windows 2016 服务器安全设置

    最近公司的网站升级Windows 2016服务器,选择安装了最新版的Windows 2016,以前使用Windows服务器还是Windows 2003系统,发现变化还是挺多的,依次记录下来以备后面查阅...2020-10-05
  • 使用node-media-server搭建一个简易的流媒体服务器

    这篇文章主要介绍了使用node-media-server搭建一个简易的流媒体服务器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-20