Win7+Apache2.4.3+phpMyAdmin3.5.2.2+ZF2.0.0

编程入门 行业动态 更新时间:2024-10-26 18:28:10

PHP5.4.6配置教程

(Win7+Apache2.4.3+phpMyAdmin3.5.2.2+ZF2.0.0)

By 霡霂(盟军特战队)

我的微博:

http://t.qq/maimuf 

http://weibo/maimuf(你懂的,点击收听。)

解释:原来的那一份被我删除了,这一份是我略微修改的版本。

删除的原因:由于使用百度的文档更新功能后,文档管理混乱,被我误删了,无论如何都无法恢复数据,只能重新上传。对于百度文库的开发团队真是失望,本人推荐使用新浪爱问和新浪微盘。

系统环境:Windows 7

PHP版本:PHP5.4.6(推荐而已)

Apache2.4.3(with openssl 1.0.1c,Zip包安装)

MySQL(GA)5.5.7

phpMyAdmin3.5.2.2

Zend Framework2.0.0(新版本,新特性,新用法)

Zend Studio 9.0.X

为不同的项目配置不同的虚拟主机,为phpMyAdmin配置虚拟主机

PS:

另附

Zend Server便捷开发配置(预告)

Zend Studio9.0.X相关内容。

PHP中文配置教程,新颖、前卫,进取,与时俱进。

声明:

1、本文所有软件安装配置均由本人,亲自,多次测试。力求做到版本兼容。

2、本教程的创作区别于现有国产PHP书籍和教材写作时,在老版本书籍中盲目东摘西抄,不知对错和所以然的不负责任的恶心行为。

3、教程中所有配置命令,均来自于Apache手册、Zend Server(CE)自动配置文件、或Fedora 17下PHP环境配置。但是经过测试,绝对为Windows 7开发环境定制。

4、本教程版权所有,严禁任何人以任何形式进行摘抄和用于商业出版。违者必追究法律责任。欢迎出版社洽谈,出版书籍事宜。

5、任何网络转载,请注明出处。违者追究责任。

6、本文,仅在百度文库、百度Fedora吧、以及新浪共享同步更新,敬请期待。

7、阅读时,请认真仔细,切忌心焦气躁。

8、本文请勿用于生产环境,任何未经过专门优化的运行环境都是危险的。

目录

目录

一.配置安装 3

1.软件相关信息列表和说明 3

2.软件下载地址 3

3.Zend Studio9.0.x安装和简单配置 4

4.解压phpMyAdmin-3.5.2.2Zend Framework2.0.0 5

5.apache的安装和启动 6

6.apache2.4.3配置 8

7.PHP5.4.6安装配置 13

8.安装MySQL,简单耐心 17

9.使用Zend Studio9.0.X新建项目的配置 19

10.可视化开启phpMyAdmin的功能配置和高级配置 22

11.安装Zend Framework2.0.0 28

12关于端口和端口冲突 31

13下次教程预告 32

二.软件知识必知 34

1.Apache版本多多 34

2.Apache For PHP On Windows——Apache lounge 35

3.PHP版本繁多 37

一.配置安装

1.软件相关信息列表和说明

Apache 2.4.3 httpd-2.4.3-win32.zip

PHP5.4.6php-5.4.6-Win32-VC9-x86.zip

ApachePHP扩展模块:php5apache2_4.dll-php-5.4-win32.zip(该文件只支持到PHP5.4.6,而最新的PHP5.4.7及以上还有待更新。)

MySQLGA5.5.7mysql-5.5.27-win32.msi

phpMyAdmin3.5.2.2:phpMyAdmin-3.5.2.2-all-languages.7z

Zend Framework2.0.0:ZendFramework-2.0.0.zip

Zend Studio 9.0.3:ZendStudio-9.0.3.msi

2.软件下载地址

以下链接都是最新版本的页面地址,当你打开时最新的版本可能已经更新了。您可以根据第二章的软件知识必知,有目的的下载最新的版本。

如果觉得会造成不必要的困扰,我也准备好了

迅雷快传的下载地址(如果你信得过我的话)

http://kuai.xunlei/d/RUIZPMTOFAHO

官方地址

httpd-2.4.3-win32.zip: 

http://www.apachelounge/download/

php-5.4.6-Win32-VC9-x86.zip:

  http://cn2.php/releases/

  http://museum.php/

  http://windows.php/downloads/releases/archives/

php5apache2_4.dll-php-5.4-win32.zip:

http://www.apachelounge/download/

mysql-5.5.27-win32.msi:

  http://www.mysql/downloads/

  http://dev.mysql/

phpMyAdmin-3.5.2.2-all-languages.7z:

  http://www.phpmyadmin/home_page/downloads.php

ZendFramework-2.0.0.zip:

  http://framework.zend/downloads/latest

ZendStudio-9.0.3.msi

http://downloads.zend/studio-eclipse/9.0.3/ZendStudio-9.0.3.msi

3.Zend Studio9.0.x安装和简单配置

ZS的安装比较简单,请在安装时将安装路径改为D盘,其余默认即可。动不动就默认安装到C盘的孩子,傻的可爱。安装后破解,请百度。

此时,ZS的工作空间应该为C:\Users\maimu(我的用户名)\Zend\workspaces\DefaultWorkspace .请不要急于修改成别的路径,等下霡霂教你通过配置apache虚拟机而在默认工作空间开发PHP。你只需要一步步按我说的来,不要急于按你的想法修改,等你掌握了我的方法,你就可以随心所欲的修改了。

下图中,可以看出,在我的工作空间下,有两个项目在开发,而两个项目使用的是不同的配置。 

4.解压phpMyAdmin-3.5.2.2和Zend Framework2.0.0

由于后面章节需要在apache和PHP的配置文件中指定phpMyAdmin和Zend Framework的的安装路径和部分配置选项,因此,先安装好这两个软件。由于是简单的压缩包,直接解压后放置到相关路径中:

D:\Program Files\phpMyAdmin-3.5.2.2

如何开启phpMyAdmin的高级功能和选项,期待下文。

D:\Program Files\ZendFramework\ZendFramework-2.0.0

在ZendFramework的文件夹下放置不同版本的Zend Framework.

5.apache的安装和启动

windows下启动apacheLinux平台没有什么大的区别:命令启动和以系统服务启动。前提是你的配置文件的配置正确无误,所以请阅读完具体配置后再运行本节的命令。

①在DProgram Files文件夹下新建apachelounge文件夹用来存放apachelounge下载的不同版本的apache,如apache22apache24.

httpd-2.4.3-win32.zip解压后,放到apachelounge,如图。找到apache24文件夹下的conf文件夹,它的路径应该是D:\Program Files\apachelounge\Apache24\conf 。

③启动apache或者安装为系统服务

以霡霂的环境为例,以下为具体的命令

如果配置文件没有什么错误和引起警告的地方,那么是没有什么输出的。觉得输入长串的路径很麻烦,可以将apache的可执行程序的文件夹bin加入到系统path中,以供系统搜索。但是,如果你的系统中安装了两个及以上个apache服务器的话,那么只将经常用的那个的路径加入到path中就好。因为,系统在path中搜索httpd命令的存放路径时,将会使用path中最靠前的那个。

Httpd.exe(httpd)只是启动apache程序的命令,将apache安装为 系统服务,需要使用下面的命令

httpd.exe –k install –n “ServiceName”

ServiceName是你要安装的apache服务的名称。

这条命令需要以管理员身份运行命令提示符。

安装成功后有提示信息。

使用下面的命令卸载你安装的apache服务:

httpd.exe -k uninstall -n "MyServiceName"

6.apache2.4.3配置

(注意文件路径问题,为了避免不必要的麻烦,最好是按照霡霂的安装路径来,因为我的安排还是比较科学的。)

①使用记事本打开httpd.conf,这是apache启动时读取的配置文件。

②下面开始配置。为了便于查找,从上到下一次的顺序依次配置。

查找ServerRoot "c:/Apache24" ,修改为:

ServerRoot "D:\Program Files\apachelounge\Apache24" 。

这是apache web服务器的根目录,也就是apache配置文件夹(conf)所在目录,Linux上为 /etc/httpd,在Linux/etc 目录是所有配置文件的总目录,而/etc/httpd是apache的配置文件目录。

查找以下模块(Module),一次去掉前面的#号:(最好不要多,也不要少,如果对于2.4的模块比较了解,可以自己增减。每个模块的具体作用,自己查看apache的文档。)

LoadModule cache_module modules/mod_cache.so

LoadModule filter_module modules/mod_filter.so

LoadModule headers_module modules/mod_headers.so

LoadModule imagemap_module modules/mod_imagemap.so

LoadModule info_module modules/mod_info.so

LoadModule mime_magic_module modules/mod_mime_magic.so

LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

LoadModule rewrite_module modules/mod_rewrite.so

LoadModule session_module modules/mod_session.so

LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

LoadModule socache_dbm_module modules/mod_socache_dbm.so

LoadModule socache_memcache_module modules/mod_socache_memcache.so

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

LoadModule ssl_module modules/mod_ssl.so(虽然开启的SSl支持模块,但是下文并没有做出相关的配置。SSl功能是无法使用的。

LoadModule status_module modules/mod_status.so

LoadModule userdir_module modules/mod_userdir.so

LoadModule version_module modules/mod_version.so

LoadModule vhost_alias_module modules/mod_vhost_alias.so

LoadModule watchdog_module modules/mod_watchdog.so

不要漏下了。

查找到  #ServerName www.example:80  修改为

ServerName localhost

查找

<Directory />

    AllowOverride none

    Require all denied

</Directory>

修改为:

<Directory />

    Options FollowSymLinks

    AllowOverride none

    #Require all denied

    Order deny,allow

    Deny from all

</Directory>

这段容器配置指令是为了设置Apache 服务器根(ServerRoot)的访问权限:Options FollowSymLinks表示允许允许符号链接跟随,访问不在本目录下的连接文件;AllowOverride none表示禁止读取.htaccess 配置文件中的配置来覆盖该容器中的配置,也就是说,禁止其他用户对于ServerRoot文件夹访问权限的更改;Order deny,allow和Deny from all表示先拒绝(deny)所有访问,再允许allow定义的IP或者用户的访问(如果你定义了的话。)

关于Order,deny,allow三者如何定义访问权限的详细内容,请查看apache手册。

查找 DocumentRoot "c:/Apache24/htdocs"  修改为:

DocumentRoot "D:\Program Files\apachelounge\Apache24/htdocs"

这个定义了网站(非虚拟机)的文档根目录,也就是一般用来存放脚本程序的目录。下文还要讲解使用虚拟主机和路径别名,将其他文件

查找 <Directory "c:/Apache24/htdocs">  修改为

<Directory "D:\Program Files\apachelounge\Apache24/htdocs">

该容器段是用来对网站文档根目录进行访问控制的。

还要继续修改

本容器段的最后的Require all granted行注释掉(行前加#号),并在下面添加:

    Order allow,deny

Allow from all

查找 DirectoryIndex index.html 修改为

DirectoryIndex index.php index.html  (注意空格问题)

查找 

<Files ".ht*">

    Require all denied

</Files>

全部注释掉,并在其下添加

<FilesMatch "^\.ht">

    Order allow,deny

    Deny from all

    Satisfy All

</FilesMatch>

这是控制以.ht 开头的配置文件的访问权限,主要是针对.htaccess文件。Satisfy配合allow指令使用,具体含义请查看手册。

查找 ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/" 修改为

ScriptAlias /cgi-bin/ "D:\Program Files\apachelounge\Apache24/cgi-bin/"

查找 <Directory "c:/Apache24/cgi-bin"> 修改为

<Directory "D:\Program Files\apachelounge\Apache24/cgi-bin">

并将该容器段中的配置 Require all granted 注释掉,并在该行下添加:

    Order allow,deny

     Allow from all

虚拟主机配置

也许你在开发时不想使用默认的网站文档根目录,而是另有安排,比如,配合Zend Studio或者Eclipse的工作空间的目录等等,请认真阅读本教程,你会如愿以偿。 

apache的官方文档认为:如果你想在现有的web服务器上增加虚拟主机,你必须也为现存的主机(非虚拟主机,也就是默认的网站根目录代表的主机)建造一个<VirtualHost>定义块。这个虚拟主机中ServerNameDocumentRoot所包含的内容应该与全局的ServerNameDocumentRoot保持一致。还要把这个虚拟主机放在配置文件的最前面,来让它扮演默认主机的角色。这一步的配置的目的就是取消中心主机。

因此,在文档的最后位置,添加如下配置内容:

<VirtualHost *:80>

   DocumentRoot "D:\Program Files\apachelounge\Apache24/htdocs"

   SetEnv APPLICATION_ENV development

   <Directory "D:\Program Files\apachelounge\Apache24/htdocs">

       Options Indexes MultiViews FollowSymLinks

       AllowOverride All

       Order allow,deny

       Allow from all

   </Directory>

</VirtualHost>

由于开发者一般不会连接DNS服务器,随时查询IP和域名的映射,所以本文所有的虚拟主机都是基于IP的(计算机内网地址,127.0.0.1127.0.0.2……,*号表示监听所有内网IP。)

此时在浏览器地址栏输入http://localhost/就可以访问默认的虚拟主机了。

7.PHP5.4.6安装配置

在上一小节中的httpd.conf文件的最后,也就是默认虚拟主机后,添加如下配置:

Include "conf/myproject.conf"

Include "conf/php.conf"

①在D:\Program Files下新建php文件夹用来放置PHP的不同版本

php-5.4.6-Win32-VC9-x86.zip解压后放置到php文件夹下,最终路径应该为D:\Program Files\php\php-5.4.6-Win32-VC9-x86。

②php5apache2_4.dll-php-5.4-win32.zip解压后找到php5apache2_4.dll文件放到D:\Program Files\php\php-5.4.6-Win32-VC9-x86下

③找到php.ini-development文件复制后改名为php.ini。作为PHP的配置文件。

④在conf文件夹下新建文本文档,改名为myproject.conf(注意开启已知文件扩展名可见),该文件专门用来放置你开发的网站程序的配置。

conf文件夹下新建文本文档,改名为php.conf,该文件专门用于存放PHP相关的配置内容,如加载PHP扩展模块等。

这样做的目的是为了分工明确,当你升级apache的版本时,不会对php.confmyproject.conf造成影响,只需要在新的httpd文件末尾添加

Include "conf/myproject.conf"

Include "conf/php.conf"

即可。

⑤打开php.conf配置文件,添加以下配置

SSLSessionCache        "shmcb:D:\Program Files\apachelounge\Apache24\logs/ssl_scache(512000)"

<Location /server-info>

    SetHandler server-info

    Order deny,allow

    Deny from all

    Allow from 127.0.0.1

</Location>

<Location /server-status>

    SetHandler server-status

    Order deny,allow

    Deny from all

    Allow from 127.0.0.1

</Location> 

LoadModule php5_module "D:\Program Files\php\php-5.4.6-Win32-VC9-x86\php5apache2_4.dll"

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

PHPIniDir "D:\Program Files\php\php-5.4.6-Win32-VC9-x86"

<Location /phpMyAdmin>

  Order deny,allow

  Allow from all

</Location>

Alias /phpMyAdmin "D:\Program Files\phpMyAdmin-3.5.2.2"

其中

SSLSessionCache配置指令用来指出SSL SessionCache文件的位置(SSL配置选项)

<Location /server-info>和<Location /server-status>两个容器是为了配置服务器信息和服务器状态的访问控制。

LoadModule php5_module是加载apachePHP模块文件

PHPIniDir指令在apache的官方文档中并没有记载,但是却可以使用。它指明了PHP配置文件的配置文件的路径。

PHP的官方文档中,windows下的php搜索php.ini文件的搜索路径如下(按顺序):

· SAPI 模块所指定的位置(Apache 2 中的 PHPIniDir 指令,CGI 和 CLI 中的 -c 命令行选项,NSAPI 中的 php_ini 参数,THTTPD 中的 PHP_INI _PATH 环境变量) 

· HKEY_LOCAL_MACHINE\SOFTWARE\ PHP \IniFilePath(Windows 注册表位置) 

· PHPRC 环境变量 

· 当前工作目录(对于 CLI) 

· web 服务器目录(对于 SAPI 模块)或 PHP所在目录(Windows 下其它情况) 

· Windows 目录(C:\windows 或 C:\winnt),或 --with-config-file-path 编译时选项指定的位置 

具体如何使用方法请查看PHP官方文档。

<Location /phpMyAdmin>

  Order deny,allow

  Allow from all

</Location>

Alias /phpMyAdmin "D:\Program Files\phpMyAdmin-3.5.2.2"

是默认虚拟主机的phpMyAdmin的配置,再次注意路径问题

Alias指令使你不需要将phpMyAdmin的程序放置在默认虚拟主机指明的路径中,而是做了一个别名指向。

在后面的章节我们会介绍如何开启phpMyAdmin的高级功能。

php.ini文件的配置

打开上文提到的php.ini文件,在文件末尾添加下列命令:

其中,include_path指令用于添加Zend FrameworkVersion<2.0.0

include_path = ".;D:\Program Files\ZendFramework\ZendFramework-1.12.0\library"

realpath_cache_size=256k

extension_dir = "D:\Program Files\php\php-5.4.6-Win32-VC9-x86/ext"

extension=php_bz2.dll

extension=php_mbstring.dll

extension=php_mysql.dll

extension=php_mysqli.dll

extension=php_openssl.dll

extension=php_pdo_mysql.dll

extension=php_pdo_pgsql.dll

extension=php_pgsql.dll

extension=php_soap.dll

extension=php_sqlite3.dll

extension=php_xmlrpc.dll

extension=php_xsl.dll

extension=php_zip.dll

post_max_size=100M

upload_max_filesize=100M

date.timezone = Etc/GMT-8

session.save_handler = files

session.save_path = " D:\Program Files\php \tmp "

本文开启的php extension,都是比较常用的,而且经过测试,没有出现依赖的dll文件缺失的问题,如果读者需要开启其他的extension,可能会出现依赖dll文件缺失的错误。

这些配置指令读者可以在配置文件中查找,然后修改,也可以在文件末尾添加,这样便于管理。

8.安装MySQL,简单耐心

mysql-5.5.27-win32.msi是自解压缩安装文件,所以安装上比较简单。网上也能找到相关的教程,不再详细的描述。

安装路径推荐更改为D盘的Program Files,这样相关的路径如下:

①MySQL的安装路径为:D:\Program Files\MySQL\MySQL Server 5.5

②数据库文件夹为:D:\Program Files\MySQL\MySQL Server 5.5\data

InnoDB数据表空间存放文件夹选项选择默认的Installation Path(安装路径),也就是:D:\Program Files\MySQL\MySQL Server 5.5\data

数据库监听的端口为3306,出现端口冲突问题,请阅读后面的章节,可以解决。

9.使用Zend Studio9.0.X新建项目的配置

至此,PHP基本的开发环境搭建配置已经完成,至于phpMyAdmin的配置,请您稍安勿躁,片刻就好。

开始使用Zend Studio时需要指明当前的工作空间(Eclipse系的软件的特点,大概继承自Unix/Linuxsell的当前目录)

很多教程和书籍,教读者搭建开发环境时,要求将DocumentRoot的值更改为当前PHP程序所在的目录,以实现程序的读取和执行。这种做法固然简单,但是却是不合理的。使用这种做法只能说明图书的作者不懂apache的基本的配置规则和运行的原理。听霡霂慢慢道来。

一般apache都带有默认的中心主机,它放置网站程序的目录就是htdocs。我安装的apache2.4的中心的主机的配置如下

DocumentRoot "D:\Program Files\apachelounge\Apache24/htdocs"

ServerName localhost

<Directory "D:\Program Files\apachelounge\Apache24/htdocs">

……

……

</Directory>

但是默认的中心主机有几个弊端:

第一、在中心主机的文档根目录中放置不同的网站程序时,不便于分别对每个网站程序进行访问控制(不是不能,而是有些麻烦。)而且有很大的安全隐患。

第二、如果你准备开启一个监听 *80的虚拟主机时,如果该虚拟主机的DocumentRoot 指向别的目录(而非htdocs),那么htdocs下的程序将无法访问了。

第三、当你想安装一些别的程序的时候(如:phpMyAdmin),总不能老是把这些程序放在htdocs目录下吧。

所以,我们使用了默认的虚拟主机,并将其DocumentRoot指向中心的D:\Program Files\apachelounge\Apache24/htdocs 。关于取消中心主机的配置,前面已经详细的介绍了,不打算累述。

下面开始讲解新建项目的配置,使这些项目的运行基于默认的虚拟主机。

①在Zend Studio9中,新建一个名为myWeb的普通PHP项目(file->new->PHP Local Project,如果你没有更改工作空间的话,他的路径应该为类似于C:\Users\maimu\Zend\workspaces\DefaultWorkspace\myWeb

②打开上文中提到的myproject.conf文件,这个文件用来集中管理你不同项目的配置。

添加如下指令:

<Directory "C:/Users/maimu/Zend/workspaces/DefaultWorkspace/myWeb">

    Options Indexes MultiViews FollowSymLinks

    AllowOverride All

    Order allow,deny

    Allow from all

</Directory>

<Location /myWeb>

  Order deny,allow

  Allow from all

</Location>

Alias /myWeb "C:\Users\maimu\Zend\workspaces\DefaultWorkspace\myWeb"

Zend Framework项目配置。

新建ZF项目myBlog 

开发Zend Framework项目时,要求用户可以访问的目录为项目目录下的public目录,而且还需要开启虚拟主机的AllowOverride All指令。

请在myproject.conf文件下添加如下指令:

<Directory "C:/Users/maimu/Zend/workspaces/DefaultWorkspace/myBlog/public">

    Options Indexes MultiViews FollowSymLinks

    AllowOverride All

    Order allow,deny

    Allow from all

</Directory>

<Location /myBlog>

  Order deny,allow

  Allow from all

</Location>

Alias /myBlog "C:/Users/maimu/Zend/workspaces/DefaultWorkspace/myBlog/public"

由于我们配置了默认的虚拟主机,所以,对于这些程序的访问,都会转发到默认的虚拟主机上处理。因此我们在默认虚拟主机中开启的AllowOverride All指令对于myBlog程序同样有效。

这就是我们通过Alias指令和<Directory>、<Location>等容器指令,将虚拟主机中的程序放置在不同的文件夹。

10.可视化开启phpMyAdmin的功能配置和高级配置

这一节是重中之重,不同于以往的完全的更改配置文件的配置。

希望你已经仔细的阅读,并实践了前面的apache配置:

在php.conf中加入phpMyAdmin的支持,详见第7节的第⑤步。

此时如果已经安装了MySQL,并开启了服务,那么通过以下地址就可以访问phpMyAdmin了:http://localhost/phpMyAdmin

①进入D:\Program Files\phpMyAdmin-3.5.2.2目录下(phpMyAdmin根目录),新建文件夹config。

②以root身份登录phpMyAdmin如上图。此时会有提示:

phpMyAdmin的高级功能需要为它新建一个数据库,用来存放配置信息,而且需要新建一个用户,并获得管理控制这个数据库的权限。然后就能使用安装脚本启用相关的功能了。

③点击页面上的导入选项后,点击选择文件按钮,选择D:\Program Files\phpMyAdmin-3.5.2.2\examples\create_tables.sql 。

点击执行后,就会创建名为phpmyadmin的数据库。

④点击 用户->添加用户,在添加用户的界面,填写用户信息,并为该用户赋予所有权限(ALL PRIVILEGES,也就是下面的权限框全部选中。)点击“添加用户”按钮后,就会创建一个拥有全部权限的用户。

⑤点击左上角的主页按钮,进入主页后点击“更多配置”:

然后点击最下面的“安装脚本”的连接:

安装脚本的首页:

⑥点击“新建服务器”,填写服务器名称、主机名等信息,端口和套接字留空使用默认的就好。不要启用SSL连接,因为我们没有设置监听443端口的默认虚拟机,更没有设置服务器连接密钥等信息。

开始时创建数据库和用户的就是目的,就是为了能够在里配置高级功能选项。

控制主机可以留空,只需要填写控制用户和密码。其余内容,只需要点击后面的“铅笔符号”就可以自动填写了。

其余的选项的可以根据自己的需要,有选择的开启。但是,一定不要开启SSL连接。

配置好服务器后,点击下面的按钮保存设置。该保存操作并没有写入文件,只是放在了某个临时的文件或者内存区域里(大概以表单的形式传递给超全局数组保存了),要想保存在配置文件中,应该使用安装脚本主页的保存按钮。请看下图:

在这个页面中点击保存后,文件会别保存在config文件夹中,并且会被自动的命名为config.inc.php

⑦还可以通过左上角的导航,开启其他一些特性选项。

其中最有用的就是就是功能SQL查询

功能->开发选项中,可以开启一些开发设置,如显示错误,调试错误,调试SQL等功能。

SQl查询,提供SQL查询的选项,更有助于你的SQL开发。

⑧设置完成后,请确保按照第⑥步所述,进行了保存和文件保存。

⑨此时自己喜好的配置已经被保存在了config\config.inc.php文件中了。将config.inc.php移到phpMyAdmin的根目录下, config文件夹就可以删掉了。

重新登录phpMyAdmin,就可以看到效果了。如果登录失败#1043,大概是启动了SSl链接强制登录的配置的缘故。

11.安装Zend Framework2.0.0

安装Zend Framework2.0和1.X没有什么区别。

Zend Framework就是一组类库,使用ZF,和你创建自己的类库,然后调用它一样。只是ZF这组类库,功能更多更强大,代码也更好!

想要你的Zend Framework2.0正确且正常的工作,那么必须让你的PHP程序找到它。

虽然将ZF的放置在当前程序的目录里可用户代码可以访问到,但是当开发的程序很多时,这样做就显得愚蠢了。

正确的做法是将ZF文件夹的library包含进PHP的php.ini文件定义的include_path变量中,然后就可以在用户代码中方便的使用include_once或者include语句包含类库文件了。这种这种配置放法在Zend Framework 1.X的应用中比较常见。

Zend FrameWork 1.2与Zend Framework 2.0共存

include_path在只使用一个版本的ZF时是比较方便的,但是单1.X和2.X共存时,就会略显麻烦了,你懂的。

面对这种情况,霡霂认真阅读学习了ZendFramework-2.0.0的英文版文档。在文档中,虽然推荐使用include_path指令外,但是在其后介绍的项目中(一个简单的体验程序项目)使用却是另外一个apache的服务器变量ZF2_PATH。专门供ZF2使用。

为了使广大用户尽快的Getting Started with Zend Framework 2,在ZendFramework-2.0.0的英文文档中,简单介绍了一个基于ZF2的小的项目(ZendSkeletonApplication)的安装,并在之后的文章中详解了其代码的原理,也就是ZF2的简单使用。霡霂,将在下面详解其原理和安装:

①在php.conf文件中PHPIniDir……下面添加如下内容

SetEnv ZF2_PATH "D:\Program Files\ZendFramework\ZendFramework-2.0.0\library"

ZendFramework 2.0已经在本章第4节解压到D:\Program Files\ZendFramework中了。在原文档中是添加在httpd.conf中,但是我们推荐在php.conf文件中,该文件中内容都是关于php的配置,在不同版本的apache的配置文件中直接使用include命令直接引用就好。

②在httpd.conf文件中配置的中心虚拟主机的权限设置中增加

AllowOverride  All

指令,这一条已经在中心虚拟主机的配置中详细说明,具体配置请参考前面的章节。

③点击ZendSkeletonApplication进入下载页面,下载zip软件包。

④解压压缩包到D:\Program Files\ZendFramework中,并重命名为zf2-tutorial。如图:

⑤在php.conf文件最后添加如下指令:

<Directory "D:\Program Files\ZendFramework\zf2-tutorial\public">

    DirectoryIndex index.php

    AllowOverride All

    Order allow,deny

    Allow from all

</Directory>

<Location /zf2-tutorial>

  Order deny,allow

  Allow from all

</Location>

Alias /zf2-tutorial "D:\Program Files\ZendFramework\zf2-tutorial\public"

public文件夹,便是该文件的公共代码,用于用户直接访问。

⑥如果其他文件配置都正确,正确启动apache服务器后,在浏览器中输入http://localhost/zf2-tutorial/便可以访问了该项目了。

说明

zf2-tutorial的解压后放置的路径是随意的,因为只需要更改相应的配置文件中的路径就好。

如没设置ZF2_PATH,那么访问http://localhost/zf2-tutorial/就会出现如下的错误:

这种错误提示说的很明确:使用php composer.phar install命令行命令安装Zend Framwork 2.0或者为已经下载解压后的ZF2设置ZF2_PATH服务器变量。而两者只需要选择一个就可。

使用php composer.phar install命令后,它会自动的下载ZF2,并安装到了D:\Program Files\ZendFramework\zf2-tutorial\vendor\ZF2中,如下图:

12关于端口和端口冲突

在apache的安装时,通常会遇到端口冲突的问题。这些问题经常会让新手头疼。

端口就是操作系统中数据交换和监听的出入口。如apache,启动时会读取自己的配置文件,其中就有定义开启监听80端口的指令。这就是说,如果apache不启动,那么80端口就没有被监听(其他程序也没有监听80端口)。如果有某个程序已经监听了80端口,那么此时再启动apache就会出现端口冲突的错误。解决方法就是停止占用80端口的程序或者服务。而直接使用kill命令杀死占用80端口的程序,是愚蠢的方法,难道每次apache程序时都使用kill命令吗?最好的解决方法就是找到占用80端口的 程序,使其不开机启动。

霡霂的windows 7中安装了众多的服务器,apache2.2、apache2.4、apache2.2-zend、tomcat各种版本、nginx、jboss的各种版本、IIS的几个版本,而我在进行web开发的时候,只开启相应的服务即可:开发php5.4.X应用时,开启apache2.4,在使用zend server CE开发php应用时,开启apache2.2-zend这个apache服务。而开发Asp4.0是,不需要开启IIS,因为Visual Studio2010自带了内置的web服务器,而该服务器监听的不是80端口,而且在同时测试两个asp程序时,监听的端口是不同的,这是微软编程时解决端口冲突的方案。霡霂认为,由于本文章中apache的配置使用了中心虚拟主机,以及基于目录和基于URL的访问控制,可以在同一端口的虚拟主机中运行几个不同的项目,而项目之间也不会相互影响。所以一般不会产生端口冲突的问题。如果你非常想同时运行两个不同版本apache服务器,那么就监听不同的端口吧。

也可以为不同的项目配置不同的虚拟主机,基于IP或者基于域名的虚拟主机,由于我们无法在开发时为自己的环境配置不同的域名,只能为不同的虚拟主机监听不同的内网IP:127.0.0.X:80。如果使用了很多内网地址,那么localhost就可能就会失效,因为你此时输入localhost时,系统不知道把请求发送到哪个内网IP中。

我们在中心虚机主机的定义中,我们监听所有内网IP的80端口(*:80,*号在正则表达式中代表匹配任意字符)。如果你想专门为某个应用新定义一个虚机主机可以监听其他端口,如 *:8080 。

13下次教程预告

复杂的配置总是会使新手头疼,也总会有那么几个读者,忽视霡霂的忠告,随意的在学习阶段更改安装路径,请允许霡霂称呼这些人为SB,霡霂一而再,再而三的强调一些问题,并为此花了一个星期总结出这篇教程,就是为了纠正你们不好的习惯,但是仍然不听劝告!你不是SB是什么。

霡霂很耐心的总结,方便大家学习,没有采用国产图书惯用的教条的罗列内容的方法,而是使用详细叙述的方法详解内容。也是为了让大家不仅会做,而且知道为什么这么做。所以也需要每一位读者认真的阅读,不要图什么方便简洁,丢三落四。应注意前后的连贯性。

如果你只图方便快捷,注重表面工作,不注重内在原理和基础知识,做事不经思考,做事不认真,不尊重他人劳动成果,那么说明你并不适合计算机的工作,还是做别的工作吧,但是哪个行业不需要认真和严谨的态度呢,所以你还是去死吧,你这种人不适合活着!!!!!!!!

上天有好生之德,霡霂也想帮助任何一个需要帮助的人,所以即使没有认真的对待霡霂的劳动成果也不为难你,而是准备了更为低级、简单、基础的教程:

使用Zend Server CE配合Zend Studio 9.X开发PHP应用,但是仍然会用到一些本教程介绍的知识,如为不同的项目配置同一个虚拟主机或者配置不用虚拟主机。敬请关注我的微博更新。

二.软件知识必知

如果您对于apache的软件包足够了解,可以忽略本节。但是如果不心有疑问,阅读一下,可以省去很多麻烦,比如版本问题带来的疑惑。

1.Apache版本多多

Apache官方版本,是由APACHE基金会(apache)管理和发布的版本。而且还有专门面向PHP On Windows的版本Apache lounge。

1.1 版本号区分的版本

Stable Release -Latest Version

2.4这是httpd的最新稳定版本。大的版本号为2.4。该版本在性能上应该是最好的,据说超越以往所有的版本。而且加入了更多的新鲜特性。

Stable Release - 2.2 Branch

2.2.23这是httpd的稳定版本的2.2分支,在很多Linux上使用广泛。正因为如此,该版本一直更新维护至今。而且在更长的时间里不会被终止。

Legacy Release – 老兵不死

2.0.64最新的遗留版本,虽然是遗留版本,是因为在很多的Unix系统(Unix的血缘分支)上,仍然广泛使用。所以仍然提供更新支持。但是既然被称为Legacy Release,那么终止计划已经被提上议程。

1.2 和系统相关的版本

Unix Source,是tar.gz(或者tar.bz2)包,这是一个源码级别安装包,下载者需要进行编译安装。虽然可能因为环境依赖软件问题而安装失败,但是总体上来说,安装还是比较简单的。最为重要的是,在自己的计算机中编译并安装后的,能够获得最优的性能。特别是对于高手来说,经过修改后,得到随心所欲的性能提升。当然,该版本同样适用于Linux安装(完全没必要,几乎所有的Linux发行版均带有软件包管理器,软件包管理器提供在线下载,从而使得软件安装更方便)

Win32 Source,这是Windows 32位的源码包,2.4官方版本不提供Win32 Source包的下载。

Win32 Binary,这是Windows 32位的编译好的二进制安装包,2.0和2.2windows版本的编译都是在VC++6完成的。而2.4版本不提供相关的下载

NetWare Binary,这个是面向网络操作系统NetWare的,由于受到硬件和资源的限制,霡霂我也没有尝试使用。

2.Apache For PHP On Windows——Apache lounge

Apache基金会不提供2.4.X的Win32安装包,而www.php不提供Windows平台上的apache2.4.X的PHP5.4.X模块(php5apache2_4.dll,这个文件在PHP5.4.6的官方包中是没有的,只有php5apache2_2.dll和php5apache2_3.dll)。但是,要使PHP5.4.X作为apache的扩展模块加载而运行,这个文件必不可少。

所以Apache lounge应运而生。Apache lounge是类似于apache基金会的软件维护和开发组织,主要提供针对Win32的apache2.4.X以及相关模块提供软件包下载。

相关的软件包有:

Apache 2.4 win32 binaries

Apache 2.4 win32 modules (各种2.4的相关模块,其中就有我们需要的PHP模块)

Apache 2.2 win32 binaries

Apache 2.2 win32 modules(不包括Apache的PHP扩展模块了,因为在www.php提供的windows编译好压缩包中,已经有了。)

提示:Apache lounge提供的Windows软件包都是在X86 VC9或者VC10环境下编译的。

Apache基金会提供的apache有SSL和no_ssl版本的区别。而Apache lounge提供apache win32都是自带有SSL。使用SSL安全连接时,httpd服务监听的是443端口,对收发的信息进行加密。配置上比单纯的监听80端口复杂,所以虽然本文使用了的Apache带有SSL模块,而且加载了相关的模块,但是并不打算介绍SSL的具体配置情况。

3.PHP版本繁多

在 PHP 官网上新版的PHP,For Windows 的一共给了四个版本:

VC9 x86 Non Thread Safe、

VC9 x86 Thread Safe、

VC6 x86 Non Thread Safe、

VC6 x86 Thread Safe

3.1 VC6和VC9的区别

如何选择版本呢,在http://windows.php/download/页面的左侧,有英文的说明。大致意思是:

①.如果您使用的apache是apache下载的,那么轻使用VC6版本的。(PS:PHP5.3.X和5.4.X均不提供VC6版本的,只能使用PHP5.2.X了。)

②.如果您使用的web服务器是IIS,那么应该使用VC9版本的

③.VC6版本是使用Visual Studio 6编译的。

④.VC9 版本是使用Visual Studio 2008编译的,以提升性能和稳定性。

⑤.使用VC9版本,需要安装Microsoft 2008 C++ Runtime (x86) 或者 the Microsoft 2008 C++ Runtime (x64)。也就是程序运行时。

⑥.不要将VC9版本的PHP和apache的apache一起使用。(因为apache的apache是使用VC6编译的)。

⑦.VC9版本的PHP(5.4/5.3)可以和Apache lounge的apache一起工作。php使用Apache lounge的编译的文件作为PHP5.4/5.3的SAPI(也就是apache的PHP扩展模块,上文中提到的php5apache2_2.dll和php5apache2_3.dll)

3.2 Thread Safe和Non Thread Safe

先从字面意思上理解,Thread Safe 是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式而耗尽系统资源。Non Thread Safe 是非线程安全,在执行时不进行线程(Thread)安全检查。

再来看 PHP 的两种执行方式:ISAPI 和 FastCGI。

ISAPI 执行方式是以 DLL 动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以 ISAPI 来执行 PHP,建议选择 Thread Safe 版本;

而 FastCGI 执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以 FastCGI(无论搭配 IIS 6 或 IIS 7)执行 PHP,都建议下载、执行non-thread safe 的 PHP(PHP 的二进包有两种:msi 、zip,请下载 zip 套件)。

本文的安装的是PHP5.4的Thread Safe版本,并且将PHP作为apache的SAPI安装(扩展模块)。这种安装方式更为安全。

如有问题,以PHP官方文档为准,如果发现本文中的不当之处,可以联系我。

更多推荐

Win7+Apache2.4.3+phpMyAdmin3.5.2.2+ZF2.0.0

本文发布于:2023-06-14 04:24:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1437368.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!