php服务器搭建有两种方式
一种是linux+apache+mysql+php方式。
另外一种是windows+IIS+mysql+php方式。
还有一种方式,就是在windows模式下,用apache作为服务器。
这种情况。第一种配置较为复杂。而且一般作为服务器居多,个人电脑测试用,一般以windows为主。
所以下面的配置方式以windows7为例:
首先,你需要去下载php的原始文件,绿色版的,安装版的均可。
1.将下载的php压缩解压。得到如下的目录
、
2.添加IIS,windows7默认情况下是不安装IIS的。
打开控制面板-程序和功能-打开或关闭windows功能。安装好IIS后如下:
3,添加处理程序映射
请求路径设为*.php,模块选择fastCgiModule。在windows+IIS模式下。fastCGI模式比传统的isapi模式效率要高很多。
可执行文件选择刚才解压的目录。文件类型选择.exe,选择对应的文件即可。下面的名称可任意。
然后确定。重启IIS。服务器就好了。另外所谓的MYSQL。直接下载安装版的就行了。
PHP $_SERVER 变量
$_SERVER 是一个包含诸如头信息(header)、路径(path)和脚本位置(script locations)的数组。它是 PHP 中一个超级全局变量,我们可以在 PHP 程序的任何地方直接访问它。
$_SERVER 包含着众多的信息,你可以尝试直接打印它:
print_r($_SERVER);
$_SERVER 数组元素
更多情况下,我们只需要 $_SERVER 数组中的某些元素(数组单元)。$_SERVER 数组包含的元素如下:
页面程序相关
$_SERVER[‘PHP_SELF’]:相对于网站根目录的路径及 PHP 程序名称,与 document root 相关。
$_SERVER[‘HTTP_REFERER’]:链接到当前页面的前一页面的 URL 地址。
$_SERVER[‘SCRIPT_NAME’]:相对于网站根目录的路径及 PHP 程序文件名称 。
$_SERVER[‘REQUEST_URI’]:访问此页面所需的 URI 。
$_SERVER[‘SCRIPT_FILENAME’]:当前运行 PHP 程序的绝对路径及文件名。
$_SERVER[‘PATH_TRANSLATED’]:当前 PHP 程序所在文件系统(不是文档根目录)的基本路径。
$_SERVER[‘QUERY_STRING’]:查询(query)的字符串(URL 中第一个问号 ? 之后的内容但不包括 # 后面的内容)。
$_SERVER[‘argv’]:传递给当前 PHP 程序的参数。
$_SERVER[‘argc’]:命令行模式下,包含传递给程序的命令行参数的个数。
$_SERVER[‘REQUEST_TIME’]:请求开始时的时间戳,从 PHP 5.1.0 起有效。
$_SERVER[‘REQUEST_METHOD’]:访问页面时的请求方法,例如:“GET”、“HEAD”,“POST”或“PUT”。
$_SERVER[‘HTTP_ACCEPT’]:当前请求的 Accept: 头信息的内容。
$_SERVER[‘HTTP_ACCEPT_CHARSET’]:当前请求的 Accept-Charset: 头信息的内容。例如:“iso-8859-1,*,utf-8”。
$_SERVER[‘HTTP_ACCEPT_ENCODING’]:当前请求的 Accept-Encoding: 头信息的内容。例如:“gzip”。
$_SERVER[‘HTTP_ACCEPT_LANGUAGE’]:当前请求的 Accept-Language: 头信息的内容。例如:“zh-cn”。
$_SERVER[‘HTTP_CONNECTION’]:当前请求的 Connection: 头信息的内容。例如:“Keep-Alive”。
$_SERVER[‘HTTP_HOST’]:当前请求的 Host: 头信息的内容。
$_SERVER[‘HTTPS’]:如果 PHP 程序是通过 HTTPS 协议被访问,则被设为一个非空的值。
$_SERVER[‘PHP_AUTH_DIGEST’]:当作为 Apache 模块运行时,进行 HTTP Digest 认证的过程中,此变量被设置成客户端发送的“Authorization”HTTP 头内容(以便作进一步的认证操作)。
$_SERVER[‘PHP_AUTH_USER’]:当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。
$_SERVER[‘PHP_AUTH_PW’]:当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。
$_SERVER[‘AUTH_TYPE’]:当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型。
服务器端相关
$_SERVER[‘DOCUMENT_ROOT’]:当前运行 PHP 程序所在的文档根目录,在服务器配置文件中定义。
$_SERVER[‘GATEWAY_INTERFACE’]:服务器使用的 CGI 规范的版本,例如:“CGI/1.1”。
$_SERVER[‘SERVER_ADDR’]:当前运行 PHP 程序所在的服务器的 IP 地址。
$_SERVER[‘SERVER_NAME’]:当前运行 PHP 程序所在的服务器的名称。
$_SERVER[‘SERVER_ADMIN’]:Apache 服务器配置文件中的 SERVER_ADMIN 参数。
$_SERVER[‘SERVER_PORT’]:服务器所使用的端口。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。
$_SERVER[‘SERVER_SIGNATURE’]:包含服务器版本和虚拟主机名的字符串。
$_SERVER[‘SERVER_SOFTWARE’]:服务器标识的字串,在响应请求时的头信息中给出。
$_SERVER[‘SERVER_PROTOCOL’]:请求页面时通信协议的名称和版本,例如:“HTTP/1.0”。
其他杂项
$_SERVER[‘HTTP_USER_AGENT’]:当前请求的 User-Agent: 头信息的内容,该字符串表明了访问该页面的用户代理的信息。
$_SERVER[‘REMOTE_ADDR’]:正在浏览当前页面用户的 IP 地址。
$_SERVER[‘REMOTE_HOST’]:正在浏览当前页面用户的主机名。
$_SERVER[‘REMOTE_PORT’]:用户连接到服务器时所使用的端口。
注意,如果以命令行方式运行 PHP,上面列出的元素几乎没有有效的(或是没有任何实际意义的)。
PHP $_ENV 变量
$_ENV 是一个包含服务器端环境变量的数组。它是 PHP 中一个超级全局变量,我们可以在 PHP 程序的任何地方直接访问它。
$_ENV 只是被动的接受服务器端的环境变量并把它们转换为数组元素,你可以尝试直接打印它:
print_r($_ENV);
限于篇幅,在此不再列出打印的结果,且不同的服务器上,打印出的结果可能是完全不同的。
$_ENV 数组元素
$_ENV 数组中的元素(数组单元)随服务器环境不同而有较大差异,所以无法像 $_SERVER 那样列出完整的列表。以下是 $_ENV 数组包含的比较通用的元素:
$_SERVER[‘PATH’]:环境变量 PATH 路径。
$_SERVER[‘CLASSPATH’]:系统 CLASSPATH 路径。
$_SERVER[‘LIB’]:系统 LIB 库路径。
$_SERVER[‘INCLUDE’]:系统 Include 路径,注意与 PHP 的包含路径是不一样的。
$_SERVER[‘OS’]:操作系统类型。
$_SERVER[‘LANG’]:系统语言,如 en_US 或 zh_CN。
$_SERVER[‘PWD’]:当前工作目录。
$_SERVER[‘TEMP’]:系统 TEMP 路径。
$_SERVER[‘AP_PARENT_PID’]:当前进程 ID 号。
$_SERVER[‘NUMBER_OF_PROCESSORS’]:系统 CPU 数目。
$_ENV 为空的原因及解决办法
如果打印输出 $_ENV 为空,可以检查一下 php.ini 的配置:
variables_order = "EGPCS"
上述配置表示 PHP 接受的外部变量来源及顺序,EGPCS 是 Environment、Get、Post、Cookies 和 Server 的缩写。如果 variables_order 的配置中缺少 E ,则 PHP 无法接受环境变量,那么 $_ENV 也就为空了。
意思:一般指装有apachephpmysql这三种软件的服务器/电脑。
作用:能够进行PHP网站发布最基本的架构之一。
用处:能让PHP程序/网站运行。
PHP是一种用来制作动态网页的服务器端脚本语言。你通过PHP和HTML创建页面。当访问者打开网页时,服务器端便会处理 PHP 指令,然后把其处理结果送到访问者的浏览器上面,就好像 ASP 或者是 ColdFusion 一样。
然而,PHP 跟 ASP 或 ColdFusion 不一样的地方在于,它是跨平台的开放源代码。PHP 可以在 Windows NT 以及很多不同的 Unix 版本中执行,它也可以被编译为一个 Apache 模块,或者是一个CGI二进制文件。
一、Apache安装
版本解释:openssl是表示带有openssl模块,利用openssl就可以给Apache配置SSL安全链接的,也就是使用https://方式进行访问。
nossl则表示不带OpenSSL模块,无 法用于SSL安全链接,在这里我们下载带OpenSSL的。
选择版本:apache_2.2.14-win32-x86-openssl-0.9.8k.msi
下载地址:
首先我们在D盘(盘符根据实际情况自己选择)新建一个目录,
并且命名为“WAMP”其意义为“Wdindows Apache Mysql PhpMyAdmin” 之后安装的一些内容,也都将安装在该目录下。
1.安装说明:
运行apache安装程序,方法非常简单,弹安装界面后一直“next”
接着会出现一个界面,需要填写3个内容,分别为:Network Domain、Server Name、Administrator’s Email Address 随便填写就好,不影响内容。
在下面还有2个选项,默认选择为80端口,第二个为8080端口,根据个人需求选择,一般为默认80端口。
我们继续安装,选择Custom(自定义安装)-“next”
其中有打着红X的组件,我们单击这个组件容,选择“This feature, and all subfeatures, will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。-“next”
然后选择右下角的“change ”改变安装路径,安装到刚才建立的目录中“D:\WAMP\Apache\”-“next”
安装完毕后,电脑右下角会多出一个图标,双击打开,选择start或restart,能正常运行,至此安装完毕。
2.修改配置:
打开安装录下D:\WAMP\Apache\conf\httpd.conf 文件(修改配置文件时,不建议使用记事本,可能会对其造成影响,推荐使用Notepad++或其他编辑软件打开修改)
打开以后Ctrl+F查找所要修改的内容
在#LoadModule vhost_alias_module modules/mod_vhost_alias.so下添加:
LoadModule php5_module “D:/WAMP/PHP/php5apache2_2.dll”
PHPIniDir “D:/WAMP/PHP”
AddType application/x-httpd-php .php
AddType application/x-httpd-php .htm
AddType application/x-httpd-php .html
DocumentRoot “E:/WAMP/Apache/htdocs”
修改成(这里的路径和IIS中wwwroot目录一样,用于存放网页,自定义或不做修改默认):DocumentRoot “D:/WAMP/www”
修改成(自定义或不做修改默认):
DirectoryIndex index.html
修改成:DirectoryIndex index.php default.php index.html index.htm default.html default.htm
3.测试
在D:/WAMP/www目录下 建立个index.html页面
在浏览器中输入
如果能正常显示,Apache配置完毕,已经正常运行。
二、MySql安装
版本解释:The Essentials Package:不包含 embedded server and benchmark suite,有自动安装程序和配置向导,没有MySQL Documentation。
The Complete Package:包含 embedded server and benchmark suite,有自动安装程序和配置向导,有MySQL Documentation。
The Noinstall Archive:包含 embedded server and benchmark suite,没有自动安装程序和配置向导,有MySQL Documentation。
选择版本:mysql-essential-5.1.44-win32.msi
下载地址:
1.安装说明:
打开安装程序,单击“next”
选择custom,组件为默认选择,我们不做改动-“next”
路径设置为“D:\WAMP\Mysql”-“next”
安装好以后点击“finish”
跟着会出现一个配置向导-“next”
选择“Detailed Configuration(详细配置)”-“next”
这里有3个选项:
Developer Machine,将只用尽量少的内存;
Server Machine,将使用中等数量内存;
Dedicated MySQL Server Machine,这台服务器上面只跑mysql数据库,将占用全部的内存。
可以根据自己需求选择,这里我们选择第二种“Server Machine”-“next”
选择数据库用途,同样有3个选项:
Mutltifunctional Database多功能用途,将把数据库优化成很好的innodb存储类型和高效率的myisam存储类型;
Transactional Database Only只用于事务处理类型,最好的优化innodb,但同时也支持myisam;
Non-Transactional Databse Only非事务处理类型,适合于简单的应用,只有不支持事务的myisam类型是被支持的。
一般选择第一种多功能的,同样我们也是。-“next”
选择InnodDB的数据存放位置,一般默认就行,为了统一我填写了“WAMP/MySQL Datafiles”-“next”
选择mysql允许的最大连接数,第一种是最大20个连接并发数,第二种是最大500个并发连接数,最后一种是自定义,自己可以根据需求选择,我选择第二个-“next”
下面是选择数据库监听的端口,一般默认是3306,如果改成其他端口,以后连接数据库的时候都要记住修改的端口,否则不能连接mysql数据库,比较麻烦,这里不做修改,用mysq的默认端口:3306-“next”
这一步设置mysql的默认编码,我们选择第三个,并在Character Set菜单中,选择“gbk”编码-“next”
(注:如果要用原来数据库的数据,最好能确定原来数据库用的是什么编码,如果这里设置的编码和原来数据库数据的编码不一致,在使用的时候可能会出现乱码。)
这一步是是否要把mysql设置成windows的,一般选择设成服务,这样以后就可以通过服务中启动和关闭mysql数据库。下面的复选框也勾选上,这样,在cmd模式下,不必非到mysql的bin目录下执行命令。也就是把上下2个勾都打上,中间默认-“next”
这一步是设置mysql的超级用户密码,这个超级用户非常重要,对mysql拥有全部的权限,请设置好并牢记超级用户的密码,下面有个复选框是选择是否允许远程机器用root用户连接到你的mysql服务器上面,如果有这个需求,也请勾选。这里我们使用默认选择,在New root password和Confirm中输入密码。“next”
点击“execute”进行配置,稍微等待一会,圆点上的勾全部打上,就代表配置完毕。
2.修改配置:
打开D:\WAMP\MySQL\my.ini
设置datadir为D:/WAMP/MySQL/data/或你所要存放数据位置的目录即可。
三、PHP安装
版本解释:VC9 专门为IIS定值的脚本,使用Visual Studio 2008编译器编译,支持最新的微软组建,从而提高效率。
VC6 是为了其他WEB服务软件提供的脚本 如 Apache。
Thread Safe 现成安全,之星时会进行线程 安全检查,以防止有心要求就启动新线程(Thread)的CGI执行方式而耗尽系统资源。
Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查
选择版本:PHP5.3(5.3.1)中VC6 x86 Thread Safe下 ZIP下载
下载地址:
1.安装说明
由于我们下载的的是ZIP压缩包,只需要将文件解压到“D:\WAMP\PHP”目录下即可
2.修改配置
将E:\WAMP\PHP\php.ini-development 文件修改成php.ini
打开php.ini
; extension_dir = “ext”
修改成:extension_dir = “E:\WAMP\PHP\ext”
将947行下,这些文件前面的“;”去除
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
extension=php_xmlrpc.dll
;date.timezone =
修改成(很多网站没提到这里要修改,默认为美国时间,如果不修改会报错):date.timezone = Asia/Shanghai
3.测试
重启Apache(修改过配置文件 必须重启Apache才会生效)
新建个index.php 页面,代码中输入,保存文件放到“D:\WMAP\www\”目录下
打开浏览器输入: 如果能正常显示,说明PHP配置完毕,可以查看该页面的PHP信息是否正确。
(注:在改文件中输入函数可输出大量的有关PHP当前状态的信息,如PHP版本,服务器信息和环境等。)
(注:)
接着我们测试下,是否能连接到Mysql
再新建个link.php,下代码中输入
$link=mysql_connect(“127.0.0.1″,”root”,”Mysql安装时填写的密码”);
if(!$link) echo “Mysql数据库连接失败!”;
else echo “Mysql数据库连接成功!”;
mysql_close();
?
也保存文件放到“D:\WMAP\www\”目录下
打开浏览器输入: 查看
四、PhpMyAdmin安装
版本解释:phpMyAdmin-3.2.5
选择版本:phpMyAdmin-3.2.5-all-languages.zip
下载地址:
1.安装说明
解压到D:\WAMP\phpMyAdmin
2.修改配置
打开D:\WAMP\phpMyAdmin\libraries\config.default.php
$cfg['PmaAbsoluteUri'] = ”;
修改成(填写访问phpMyAdmin的绝对URL):$cfg['PmaAbsoluteUri'] = ‘’;
$cfg['Servers'][$i]['host'] = ‘localhost’;
修改成(填写服务器地址,通常默认,不需要修改):$cfg['Servers'][$i]['host'] = ‘localhost’;
$cfg['Servers'][$i]['user'] = ‘root’;
修改成(填写Mysql用户名,这里我们默认):$cfg['Servers'][$i]['user'] = ‘root’;
$cfg['Servers'][$i]['password'] = ”;
修改成(填写Mysql密码):$cfg['Servers'][$i]['password'] = ‘Mysql PWD;
$cfg['Servers'][$i]['auth_type'] = ‘cookie’;
修改成(设置认证方法,安全因素考虑,填写成cookie):$cfg['Servers'][$i]['auth_type'] = ‘cookie’;
$cfg['blowfish_secret'] = ”;
修改成(设置短语密码,如果上面设置成cookie,那这里不能留空,不然登陆会提示错误):$cfg['blowfish_secret'] = ‘cookie’;
3.测试
打开浏览器输入: 访问和登陆
PHP服务器是可以运行PHP程序的服务器,PHP是语言,这个语言的执行需要PHP软件,例如PHP.EXE。
下载的PHP包里面都是程序文件,各有各的作用,比如PHP.EXE可以控制台下运行PHP程序文件。
如果你不用UNIX服务器,不需要编译。
PATH不是必须的,可以不用设置。
这个需要根据你服务器环境来说,如果是windows 就去下载WAMP 如果是Luni 就去下载LNMP就可以了都有封装包,但是基本上的搭建方式都大同小异,下面就以windows的搭建方法为例为你详细说明:
在windows下安装apache php mysql
从各官方网站下了APACHE2.050、PHP5、MYSQL4.0.20、PHPMYADMIN2.57
apache_2.0.50-win32-x86-no_ssl.msi
php-5.0.0-Win32.zip
mysql-4.0.20d-win.zip
phpMyAdmin-2.5.7.zip
系统 win2003 系统盘为: D盘
第一步: 安装apache 并配置支持PHP
点击安装文件apache_2.0.50-win32-x86-no_ssl.msi
将apache安装在 D:\apache2 目录(随自己喜好)下
将php-5.0.0-Win32.zip 里内容解压到 D:\php 里
找到 php目录里的 php.ini-dist 重命名为 php.ini 并拷到 windows目录里(win2k 里为winnt)
如我的php.ini是拷到 D:\windows目录
再将php目录里的 php5ts.dll,libmysql.dll 拷到 系统目录(system/system32) 如我的是D:\windows\system里
配置apache里的httpd.conf
打开 D:\Apache2\conf\httpd.conf 这个文件
找到 AddDefaultCharset ISO-8859-1 将其改为 AddDefaultCharset GB2312 (让默认语言编码为简体中文)
找到 DocumentRoot "D:/Apache2/htdocs" 将其改为你的WEB目录(可不改)如我的为 DocumentRoot "D:/website"
找到 DirectoryIndex index.html index.html.var 在后面加入 index.htm index.php
选择安装模式: 模块化模式安装 或 CGI模式安装 (选一样即可)
--------------模块化安装配置------------------------------------
找到 #LoadModule ssl_module modules/mod_ssl.so 这行,在此行后加入一行
LoadModule php5_module d:/php/php5apache2.dll
其中d:/php/php5apache2.dll 为你php目录中php5apache2.dll所在的位置
找到 AddType application/x-gzip .gz .tgz 这行,在此行后加入一行
AddType application/x-httpd-php .php
---------------------------------------------------------------
--------------CGI安装配置--------------------------------------
找到 AddType application/x-gzip .gz .tgz 这行,加入如下即可
ScriptAlias /php/ "d:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php-cgi.exe"
---------------------------------------------------------------
此时PHP环境基本已经配置成功
在WEB根目录(如我的D:\website)里建一个名为test.php的文件内容如下
? echo phpinfo(); ?
重新启动apache服务
用浏览器打开
如果可以看到php配置输出信息就OK了