惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
D
DataBreaches.Net
Microsoft Azure Blog
Microsoft Azure Blog
大猫的无限游戏
大猫的无限游戏
雷峰网
雷峰网
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy & Cybersecurity Law Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
L
LINUX DO - 最新话题
L
LangChain Blog
量子位
P
Palo Alto Networks Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
L
Lohrmann on Cybersecurity
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
Y
Y Combinator Blog
MongoDB | Blog
MongoDB | Blog
PCI Perspectives
PCI Perspectives
S
SegmentFault 最新的问题
O
OpenAI News
S
Securelist
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
Cybersecurity and Infrastructure Security Agency CISA
AWS News Blog
AWS News Blog
G
Google Developers Blog
博客园 - 叶小钗
C
Check Point Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Cisco Talos Blog
Cisco Talos Blog
罗磊的独立博客
V2EX - 技术
V2EX - 技术
小众软件
小众软件
IT之家
IT之家
Engineering at Meta
Engineering at Meta
Hacker News - Newest:
Hacker News - Newest: "LLM"
M
MIT News - Artificial intelligence
T
Threat Research - Cisco Blogs
Vercel News
Vercel News
酷 壳 – CoolShell
酷 壳 – CoolShell
A
About on SuperTechFans
Recorded Future
Recorded Future
N
News and Events Feed by Topic
Cloudbric
Cloudbric
W
WeLiveSecurity
T
The Exploit Database - CXSecurity.com
Martin Fowler
Martin Fowler
C
CXSECURITY Database RSS Feed - CXSecurity.com
The Cloudflare Blog
宝玉的分享
宝玉的分享

博客园 - xin478

使用nfs共享session文件导致 session_start异常缓慢问题 linux下抓取网页截图 nginx proxy_pass末尾神奇的/ 在php中使用SMTP通过密抄批量发送邮件续:修正 无聊闲做,从使用PHP数组实现约瑟夫环问题谈性能 在php中使用SMTP通过密抄批量发送邮件 使用VisualStudio开发php mysql常用的hint[转] php垃圾代码优化那档子事 惨啊!mp4固件升级惊魂 用PHP实现POP3邮件的收取 希捷酷鱼12 500G的确有问题,好惨啊 解决IE6下PNG透明问题,支持平铺背景图片 VS.PHP with VS2008 in windows7 windows7蓝屏啦 mysql使用rand随机查询记录效率测试 特殊字符的html编码转化 - xin478 - 博客园 asp.net页面事件执行顺序 在visual studio中随意更改中文字体的方法
配置windows下php+apache+mysql环境
xin478 · 2010-05-07 · via 博客园 - xin478

其实windows下php的安装配置是比linux下容易多了,加之三兄弟都是绿色的,重装系统的时候只需解压注册一下相应的服务就可以了,本方法适合初学者参考。

第一次使用的

对于php,直接到php官网下载并解压就可以了。这里假定解压在d:\php5\

找到d:\php5\下的php.ini文件,如果没有的话,可以用php.ini-xxxxxxx的文件(php.ini-development是开发时的配置,php.ini-produciton是部署的,php.ini-recommended是官方推荐的),将其重命名为php.ini。打开php.ini,找到 extension_dir = “xxxxxxx",修改extension_dir = "d:/php5/ext"。

extension=xxxxxx.dll的,都是对应的扩展。前面的;是注释符,将;去掉的话,就将启用该扩展,通常情况下,php_mysql.dll,php_gd2.dll是需要开启的,即
;extension=php_mysql.dll改为

extension=php_mysql.dll。改好php.ini后保存。

再来就是apache,没有的话可以到官网下载安装,假设安装在D:\Program Files\Apache2.2\,打开D:\Program Files\Apache2.2\conf\,找到文件httpd.conf。

打开编辑,编辑LoadModule php5_module "d:/php5/php5apache2_2_filter.dll"(因为我提供的是apache2.2的下载连接,所以这里使用php5apache2_2_filter.dll,如果是apache2的话,就用php5apache2_filter.dll,这两个文件在php安装目录下是应该有的)。

接着查找PHPIniDir ,没有的话添加一行 PHPIniDir "d:\php5",有的话修改一下路径,使之与php的安装目录路径一致。这个主要是让apache使用指定的php.ini文件,就不要拷贝php.ini到c:/windows/下了,省得重装系统后还要拷贝。查找一下<IfModule mime_module>节点,在<IfModule mime_module>...</IfModule mime_module>之间添加一条    AddType application/x-httpd-php .php,没有这条的话,访问的php文件可能会变成下载。

Listen 80 这个是监听端口,有IIS的朋友可以设置成8080等,免得冲突。

ServerRoot 是apache的安装路径

DocumentRoot 是web主目录路径,这个文件夹要是已经存在的文件夹

参考最简的配置如下

ThreadsPerChild 250 
MaxRequestsPerChild  0 

ServerRoot "D:/Program Files/Apache2.2" 

Listen 8080 

LoadModule actions_module modules/mod_actions.so 
LoadModule alias_module modules/mod_alias.so 
LoadModule asis_module modules/mod_asis.so 
LoadModule auth_basic_module modules/mod_auth_basic.so 
LoadModule authn_default_module modules/mod_authn_default.so 
LoadModule authn_file_module modules/mod_authn_file.so 
LoadModule authz_default_module modules/mod_authz_default.so 
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so 
LoadModule authz_host_module modules/mod_authz_host.so 
LoadModule authz_user_module modules/mod_authz_user.so 
LoadModule autoindex_module modules/mod_autoindex.so 
LoadModule cgi_module modules/mod_cgi.so 
LoadModule dir_module modules/mod_dir.so 
LoadModule env_module modules/mod_env.so 
LoadModule imagemap_module modules/mod_imagemap.so 
LoadModule include_module modules/mod_include.so 
LoadModule isapi_module modules/mod_isapi.so 
LoadModule log_config_module modules/mod_log_config.so 
LoadModule mime_module modules/mod_mime.so 
LoadModule negotiation_module modules/mod_negotiation.so 
LoadModule setenvif_module modules/mod_setenvif.so 
LoadModule userdir_module modules/mod_userdir.so 
LoadModule rewrite_module modules/mod_rewrite.so 
LoadModule vhost_alias_module modules/mod_vhost_alias.so 
LoadModule php5_module "d:/php5/php5apache2_2_filter.dll"

PHPIniDir "d:\php5" 
ServerAdmin xin478@126.com 

ServerName 192.168.1.26:8080 

DocumentRoot "f:/phpwwwroot" 

DefaultType text/plain 
ErrorLog logs/error.log
LogLevel warn 

<Directory /> 
    Options FollowSymLinks 
    AllowOverride None 
    Order deny,allow 
    Deny from all 
    Satisfy all 
</Directory> 

<Directory "f:/phpwwwroot"> 
    Options Indexes FollowSymLinks 
    AllowOverride all 
    Order allow,deny 
    Allow from all 
</Directory> 

<Files *.php> 
AcceptPathInfo On 
</Files>

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

<FilesMatch "^\.ht"> 
    Order allow,deny 
    Deny from all 
</FilesMatch> 

<IfModule log_config_module> 

    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 
    LogFormat "%h %l %u %t \"%r\" %>s %b" common 

    <IfModule logio_module> 
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio 
    </IfModule> 

    CustomLog logs/access.log common 

</IfModule> 

<IfModule alias_module> 
    ScriptAlias /cgi-bin/ "D:/Program Files/Apache2.2/cgi-bin/" 
</IfModule> 

<Directory "D:/Program Files/Apache2.2/cgi-bin"> 
    AllowOverride all 
    Options None 
    Order allow,deny 
    Allow from all 
</Directory> 

<IfModule mime_module> 

    AddType application/x-compress .Z 
    AddType application/x-gzip .gz .tgz 
    AddType application/x-httpd-php .php 

</IfModule>

ThreadsPerChild 250
MaxRequestsPerChild
0

ServerRoot

"D:/Program Files/Apache2.2"

Listen

8080

LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule imagemap_module modules/mod_imagemap.so
LoadModule include_module modules/mod_include.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule php5_module

"d:/php5/php5apache2_2_filter.dll"

PHPIniDir

"d:\php5"
ServerAdmin xin478@
126.com

ServerName

192.168.1.26:8080

DocumentRoot

"f:/phpwwwroot"

DefaultType text/plain
ErrorLog logs/error.log
LogLevel warn

<Directory />
Options FollowSymLinks
AllowOverride None
Order deny

,allow
Deny from all
Satisfy all
</Directory>

<Directory

"f:/phpwwwroot">
Options Indexes FollowSymLinks
AllowOverride all
Order allow
,deny
Allow from all
</Directory>

<Files *.php>
AcceptPathInfo On
</Files>

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

<FilesMatch

"^\.ht">
Order allow
,deny
Deny from all
</FilesMatch>

<IfModule log_config_module>

LogFormat

"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat
"%h %l %u %t \"%r\" %>s %b" common

<IfModule logio_module>
LogFormat

"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>

CustomLog logs/access.log common

</IfModule>

<IfModule alias_module>
ScriptAlias /cgi-bin/

"D:/Program Files/Apache2.2/cgi-bin/"
</IfModule>

<Directory

"D:/Program Files/Apache2.2/cgi-bin">
AllowOverride all
Options None
Order allow
,deny
Allow from all
</Directory>

<IfModule mime_module>

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php

</IfModule>

以上,红色的地方都是路径,都要根据自己的情况改一下

最后就是mysql了,这个的话,也是下载一份,一路next安装,安装完毕后,到php安装文件夹下的libmysql.dll到c:/windows/system32/ 下。就可以了。自此,三个就全好了。

对于重装系统后,只要配置没有大体的变动,只要再次拷贝 d:/php5/libmysql.dl l到c:/windows/system32/ 下。再运行cmd ,进入apache目录下的bin目录,运行httpd.exe –k install 就可以注册apache的服务。如图

image

系统会注册名为apache的服务,并将其设置为自动运行。

php方面,由于先前设置了php.ini在安装目录,所以没有什么要更改或拷贝的。

mysql的话,可以选择重装。不想重装的,先到mysql目录的data目录下查找*.err,删除掉,否则有时候会出现无法配置成功的情况。运行mysql安装目录下的bin\MySQLInstanceConfig.exe来重新配置。运行execute的时候,提示找不到my-template.cnf, 其实此文机是以ini文件的形式存储在mysql的根目录下(所有*.cnf文件在windows 下, 就是*.ini文件),mysql查找路径不对而已,我们可以在安装mysql的根目录看到my-template.ini文件.

具体如下:修改注册表

“HKEY_LOCAL_MACHINE/Software/Mysql AB/Mysql server 5/location”

把后面的地址改为”D:\Program Files\MySQL\MySQL Server 5.0\〃修改为my-template.ini所在目录路径即可(如:D:\Program Files\MySQL)。

如果安装的时候,mysql提示注册服务失败,不要紧张,开始->运行->services.msc,看看是不是已经有了名为MySql的服务,有的话就可以了。