php开发环境配置记录


Posted in PHP onJanuary 14, 2011

【apache安装】

httpd.exe -k install -n "apache2.2.15" 
httpd.exe -k start -n "apache2.2.15"

【apache卸载】
httpd.exe -k stop -n "apache2.2.15" 
httpd.exe -k uninstall -n "apache2.2.15"

【httpd.conf配置关键】
ServerRoot "D:/APM/Apache2.2.15" 
Listen 80 
# 压缩发送给客户端的内容 gzip支持 
#LoadModule deflate_module modules/mod_deflate.so 
# LoadModule cgi_module modules/mod_cgi.so 
# fastcgi 
LoadModule fcgid_module modules/mod_fcgid.so 
LoadModule rewrite_module modules/mod_rewrite.so 
DocumentRoot "D:/APM/Apache2.2.15/htdocs" 
# 支持 php 脚本 
# fastcgi模式将此行注释 
# 直接在虚拟主机中可配置每个站点使用不同版本的php 或者不同的cgi 
#Include conf/extra/httpd-php.conf 
# Fancy directory listings 华丽的目录清单 
Include conf/extra/httpd-autoindex.conf 
# Virtual hosts 虚拟主机 
#Include conf/extra/httpd-vhosts.conf 
# fastcgi模式虚拟主机 
Include conf/extra/httpd-vhosts-fcgid.conf 
# Various default settings 页脚显示版本信息AccessFileName .htaccess 
Include conf/extra/httpd-default.conf

【httpd-php.conf参考】
# 
# 查找 /APM/php-5.2.12-Win32 替换 
# 
SetEnv PHPRC "/APM/php-5.2.12-Win32" 
SetEnv TMP "/tmp" 
# UnsetEnv PERL5LIB 
# 加载dll省去在PATH中添加php路径 
#LoadFile "/APM/php-5.2.12-Win32/libpq.dll" 
LoadFile "/APM/php-5.2.12-Win32/libmysql.dll" 
LoadFile "/APM/php-5.2.12-Win32/libmcrypt.dll" 
LoadFile "/APM/php-5.2.12-Win32/libmhash.dll" 
LoadFile "/APM/php-5.2.12-Win32/libeay32.dll" 
LoadFile /APM/php-5.2.12-Win32/ssleay32.dll 
# 
# PHP-Module setup 
# 
LoadFile "/APM/php-5.2.12-Win32/php5ts.dll" 
LoadModule php5_module "/APM/php-5.2.12-Win32/php5apache2_2.dll" 
SetHandler application/x-httpd-php 
SetHandler application/x-httpd-php-source 
# Load php.ini File Dir 
PHPIniDir "/APM/php-5.2.12-Win32" 
AddType text/html .php .phps

【httpd-vhosts.conf参考】
NameVirtualHost *:80 
#文档目录 
DocumentRoot "/vhosts/localhost" 
#名字 如www.php.net 
ServerName localhost 
#别名 如php.net 
ServerAlias 127.0.0.1 
#错误日志文件 
ErrorLog "logs/dummy-host.localhost-error_log" 
#目录访问规则 
Options Indexes FollowSymLinks 
AllowOverride All 
Order allow,deny 
Allow from all 
#目录索引文件 
DirectoryIndex index.html index.htm index.php 
[html] 
【httpd-vhosts-fcgid.conf参考】 
[code] 
#FcgidInitialEnv PHPRC "/APM/php5210" 
#FcgidInitialEnv PATH "/APM/php5210;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;" 
#FcgidInitialEnv SystemRoot "C:/Windows" 
#FcgidInitialEnv SystemDrive "C:" 
#FcgidInitialEnv TEMP "C:/WINDOWS/Temp" 
#FcgidInitialEnv TMP "C:/WINDOWS/Temp" 
#FcgidInitialEnv windir "C:/WINDOWS" 
FcgidIOTimeout 64 
FcgidConnectTimeout 16 
FcgidMaxRequestsPerProcess 500 
NameVirtualHost *:80 
DocumentRoot "/vhosts/localhost" 
ServerName localhost 
ServerAlias 127.0.0.1 
ErrorLog "logs/dummy-host.localhost-error_log" 
Options Indexes FollowSymLinks ExecCGI 
#Options +ExecCGI 
AllowOverride All 
#AddHandler fcgid-script .php 
#FCGIWrapper /APM/php5210/php-cgi.exe .php 
#" 
AddHandler fcgid-script .php 
FcgidWrapper "/APM/php-5.2.13-nts-Win32/php-cgi.exe" .php 
#FcgidWrapper "/APM/php-5.3.2-nts-Win32-VC6-x86/php-cgi.exe" .php 
# 
Order allow,deny 
Allow from all 
DirectoryIndex index.html index.htm index.php

【Mysql安装】
mysqld-nt.exe --install MySQL5.0.45-community-nt --defaults-file=D:\APM\mysql5.0.45\my.ini 
net start MySQL5.0.45-community-nt

【Mysql卸载】
net stop MySQL5.0.45-community-nt 
mysqld-nt.exe --remove MySQL5.0.45-community-nt

【my.ini参考】
[mysqld] 
basedir="D:\APM\mysql5.0.45\" 
datadir="D:\APM\mysql5.0.45\Data\" 
tmpdir="D:\APM\mysql5.0.45\tmp\" 
# log="D:\APM\mysql5.0.45\tmp\mysql.log" 
default-character-set=utf8 
port=3306 
interactive_timeout=5 
wait_timeout=5 
skip-locking 
skip-innodb 
skip-bdb 
ft_min_word_len=1 
[mysqld] 
port=3306 
basedir="D:/mysql/" 
datadir="D:/mysql/Data/" 
tmpdir="d:/mysql/tmp/" 
default-character-set=utf8 
default-storage-engine=MYISAM 
skip-bdb 
skip-innodb 
skip-locking 
key_buffer=16M 
max_allowed_packet=1M 
table_cache=128 
thread_cache=8 
join_buffer_size=512K 
sort_buffer=512K 
record_buffer=512K 
max_connections=500 
wait_timeout=120 
interactive_timeout=120 
max_connect_errors=3000 
long_query_time=1 
max_heap_table_size=16M 
tmp_table_size=8M 
thread_concurrency=8 
myisam_sort_buffer_size=8M 
myisam_sort_buffer_size=4M 
low_priority_updates=1 
ft_min_word_len=1

【php.ini配置参考】
output_buffering = On 
disable_functions = system,passthru,shell_exec,exec,popen,proc_open 
enable_dl = Off upload_tmp_dir = "D:/tmp/uploadtemp/" 
session.save_path = "d:/tmp/sessiondata/" 
date.timezone = "Etc/GMT-8" ;表示的是 GMT+8 
mbstring.language = Neutral ; Set default language to Neutral(UTF-8) (default) 
mbstring.internal_encoding = UTF-8 ; Set internal encoding to UTF-8 
cgi.force_redirect = 0 
cgi.fix_pathinfo = 1 
fastcgi.impersonate = 1 
[eaccelerator] 
;zend_extension="/APM/ext/eAccelerator_v0_9_6_for_v5_2_13-VC6/eAccelerator.dll" 
;zend_extension="/APM/ext/eAccelerator_v1_0_svn412_for_v5_2_13-VC6/eAccelerator.dll" 
eaccelerator.shm_size="16" 
eaccelerator.cache_dir="/tmp/eaccelerator" 
eaccelerator.enable="1" 
eaccelerator.optimizer="1" 
eaccelerator.check_mtime="1" 
eaccelerator.debug="0" 
;eaccelerator.log_file="/var/log/httpd/eaccelerator_log" 
eaccelerator.filter="" 
eaccelerator.shm_max="0" 
eaccelerator.shm_ttl="300" 
eaccelerator.shm_prune_period="0" 
eaccelerator.shm_only="0" 
eaccelerator.compress="1" 
eaccelerator.compress_level="9" 
[Zend] 
zend_optimizer.optimization_level=15 
zend_optimizer.encoder_loader=0 
;zend_extension_ts="/APM/ext/ZendOptimizer-3.3.0/lib/Optimizer-3.3.0/php-5.2.x/ZendOptimizer.dll" 
;zend_extension="/APM/ext/ZendOptimizer_nts.dll" 
;zend_extension="/APM/ext/ZendOptimizerPlus.dll" 
; 下面是使用ZendExtensionManager.dll的参考配置 
;zend_extension_manager.optimizer_ts="/APM/Zend/ZendOptimizer-3.3.0/lib/Optimizer-3.3.0" 
;zend_extension_ts="/APM/Zend/ZendOptimizer-3.3.0/lib/ZendExtensionManager.dll" 
;zend_extension_manager.debug_server_ts="/APM/Zend/ZendOptimizer-3.3.0/lib/ZendDebugger-5.2.13-cygwin_nt-i386" 
;zend_debugger.expose_remotely=always 
;zend_debugger.allow_hosts=127.0.0.1/32 
;zend_debugger.allow_tunnel=127.0.0.1/32 
[ZendDebugger] 
; 放到后边可以和zend_optimizer同时加载 
;zend_extension_ts="/APM/ext/ZendDebugger-5.2.15RC1-cygwin_nt-i386/php-5.2.x/ZendDebugger.dll" 
[xcache-common] 
;zend_extension="D:/APM/ext/XCache-1.3.0-php-5.2.10-nts-Win32-VC6-x86/php_xcache.dll" 
; extension = php_xcache.dll 
[xcache.admin] 
xcache.admin.enable_auth = Off 
xcache.admin.user = "mOo" 
; xcache.admin.pass = md5($您的密码) 
xcache.admin.pass = "" 
[xcache] 
; 这里的多数选项仅在 ini 里可以修改, 这里列出的都是默认值, 除非另外说明 
; select low level shm/allocator scheme implemenation 
xcache.shm_scheme = "mmap" 
; 禁用: xcache.size=0 
; 启用: xcache.size=64M 之类 (任意>0的值) 同时请注意您的系统 mmap 上限 
xcache.size = 0 
; 建议设置为 cpu 数 (cat /proc/cpuinfo |grep -c processor) 
xcache.count = 1 
; 只是个参考值, 您可以放心地存储多于此数量的项目(php脚本/变量) 
xcache.slots = 8K 
; 缓存项目的 ttl, 0=永久 
xcache.ttl = 0 
; 扫描过期项目的时间间隔, 0=不扫描, 其他值以秒为单位 
xcache.gc_interval = 60 
; 同上, 只是针对变量缓存设置 
xcache.var_size = 1M 
xcache.var_count = 1 
xcache.var_slots = 8K 
; 默认, 允许 ini_set() 
xcache.var_ttl = 0 
; 最大ttl值 
xcache.var_maxttl = 0 
xcache.var_gc_interval = 300 
; 仅测试用 
xcache.test = Off 
; /dev/zero 时无效 
xcache.readonly_protection = Off 
; 对于 *nix 系统, xcache.mmap_path 是文件路径而不是目录, (可以不存在 但是必须能创建). 
; 如果您期望启用 ReadonlyProtection, 可以使用类似 "/tmp/xcache" 
; 2 个 php 组不会共享同一个 /tmp/xcache 
; 对于 Win32 系统, xcache.mmap_path=匿名MAP名字, 不是文件路径. 建议使用 XCache 字眼避免跟其他软件冲突 
xcache.mmap_path = "XCache" 
; 仅用于 *nix 系统 
; 设置为空(禁用) 或者类似 "/tmp/phpcore/" 
; 注意该目录应该能被 php 写入文件 (跟 open_basedir 无关) 
xcache.coredump_directory = "" 
xcache.cacher = On 
xcache.stat = On 
xcache.optimizer = Off 
[xcache.coverager] 
; 如果 xcache.coveragedump_directory 设置为空则本设置自动为 Off 
xcache.coverager = Off 
; 请确保本目录能被 coverage viewer 脚本读取 (注意 open_basedir) 
; 依赖于 xcache.coverager=On 
xcache.coveragedump_directory = "" 
[Xdebug] 
xdebug.var_display_max_depth = 10 
;xdebug.remote_autostart = 1 
;xdebug.remote_enable=1 
;xdebug.remote_handler=dbgp 
;xdebug.remote_host=127.0.0.1 
;xdebug.remote_mode=req 
;xdebug.idekey=default 
;xdebug.remote_log="/xdebug.log" 
;xdebug.remote_port=9000 
xdebug.auto_trace=off 
;xdebug.collect_params=on 
;xdebug.collect_return=on 
xdebug.trace_output_dir="/tmp/xdebug" 
xdebug.profiler_enable=off 
xdebug.profiler_output_dir="/tmp/xdebug" 
;zend_extension_ts="/APM/ext/xdebug/php_xdebug-2.0.5-5.2.dll" 
;zend_extension="/APM/ext/xdebug/php_xdebug-2.0.5-5.2-nts.dll" 
zend_extension="/APM/ext/xdebug/php_xdebug-2.1.0beta3-5.2-vc6-nts.dll"

【IIS ISAPI】
添加环境变量 PHPRC=D:\PHP 这个是通知iis读取php.ini文件的路径。 
在PATH中加入 D:\PHP 能读取相关动态链接库。 
添加一个新的web服务扩展 php d:\php\php5isapi.dll 
添加应用程序扩展名映射 可执行文件 d:\php\php5isapi.dll 扩展名.php 
重启IIS php就可以用了。

【IIS FastCGI PHP】
这个不用添加环境变量和修改PATH变量。 
先安装FastCGI,安装程序会自动添加 
Web 服务扩展 - FastCGI Handler 
c:\windows\system32\inetsrv\fcgiext.dll 
并设置为允许。 
修改c:\windows\system32\inetsrv\fcgiext.ini 
[Types] 
php=PHP 
[PHP] 
ExePath=D:\php\php-cgi.exe 
InstanceMaxRequests=10000 
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000 
添加应用程序扩展名映射 可执行文件 c:\windows\system32\inetsrv\fcgiext.dll 扩展名.php 
重启iis就行了。

【ISAPI_Rewrite 参考】
RewriteEngine On 
RewriteBase / RewriteCond %{HTTP_HOST} ^03188.net [NC] 
RewriteRule ^(.*)$ http://www.03188.net/$1 [L,R=301] 
#### RewriteCond %{REQUEST_URI} ^[A-Z]{3,9}\ /index\.php\ HTTP / 
# RewriteRule ^index\.(php|htm|html)$ http://www.03188.net/ [R=301,L] 
RewriteRule ^([a-z]+)/(.*)/(.*)/(.*)\.htm$ index.php?action=$1&option=$2&extent=$3&info=$4 [L] 
RewriteRule ^([a-z]+)/(.*)/(.*)\.htm$ index.php?action=$1&option=$2&extent=$3&info=$3 [L] 
RewriteRule ^([a-z]+)/(.*)\.htm$ index.php?action=$1&option=$2 [L] 
RewriteRule ^([a-z]+)\.htm$ index.php?action=$1 [L] 
# RewriteRule ^(.*)\.asp$ http://www.03188.net [L,R=301] 
# 修改完整模式下被抓取的url使有效 
# RewriteRule ^index\.php/([a-z]+)/(.*)/(.*)\.htm$ $1/$2/$3\.htm [L,R=301] 
# RewriteRule ^index\.php/([a-z]+)/(.*)\.htm$ $1/$2\.htm [L,R=301] 
# 修改论坛移动后出现No input file specified. 
# RewriteRule ^bbs/(.*)$ http://bbs.03188.net/$1 [L,R=301] 
# 修改人力资源hr 
# RewriteRule ^hr/(.*)$ http://hr.03188.net/$1 [L,R=301]
PHP 相关文章推荐
PHP 小心urldecode引发的SQL注入漏洞
Oct 27 PHP
php模拟post行为代码总结(POST方式不是绝对安全)
Feb 22 PHP
深入php define()函数以及defined()函数的用法详解
Jun 05 PHP
php 使用GD库为页面增加水印示例代码
Mar 24 PHP
php页面函数设置超时限制的方法
Dec 01 PHP
php上传文件常见问题总结
Feb 03 PHP
yii使用activeFileField控件实现上传文件与图片的方法
Dec 28 PHP
PHP简单日历实现方法
Jul 20 PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 PHP
使用 laravel sms 构建短信验证码发送校验功能
Nov 06 PHP
thinkPHP5.0框架事务处理操作简单示例
Sep 07 PHP
PHP数组遍历的几种常见方式总结
Feb 15 PHP
PHP文件读写操作之文件写入代码
Jan 13 #PHP
PHP文件读写操作之文件读取方法详解
Jan 13 #PHP
PHP目录函数实现创建、读取目录教程实例
Jan 13 #PHP
PHP开发规范手册之PHP代码规范详解
Jan 13 #PHP
PHP JSON格式数据交互实例代码详解
Jan 13 #PHP
PHP学习笔记之二 php入门知识
Jan 12 #PHP
php算开始时间到过期时间的相隔的天数
Jan 12 #PHP
You might like
教你如何把一篇文章按要求分段
2006/10/09 PHP
探讨:array2xml和xml2array以及xml与array的互相转化
2013/06/24 PHP
PHP实现的用户注册表单验证功能简单示例
2019/02/25 PHP
Laravel框架实现的使用smtp发送邮件功能示例
2019/03/12 PHP
JQuery 弹出框定位实现方法
2010/12/02 Javascript
js将控件隐藏的方法及display属性介绍
2013/07/04 Javascript
JQuery以JSON方式提交数据到服务端示例代码
2014/05/05 Javascript
JavaScript数组迭代器实例分析
2015/06/09 Javascript
jquery实现图片放大点击切换
2017/06/06 jQuery
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
Vue数组响应式操作及高阶函数使用代码详解
2020/08/01 Javascript
[01:42]TI4西雅图DOTA2前线报道 第一顿早饭哦
2014/07/08 DOTA
python使用Flask框架获取用户IP地址的方法
2015/03/21 Python
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
python模块之StringIO使用示例
2015/04/08 Python
深入理解python中的闭包和装饰器
2016/06/12 Python
selenium python浏览器多窗口处理代码示例
2018/01/15 Python
python利用requests库进行接口测试的方法详解
2018/07/06 Python
python 除法保留两位小数点的方法
2018/07/16 Python
详解PyCharm配置Anaconda的艰难心路历程
2018/08/13 Python
python 图像平移和旋转的实例
2019/01/10 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
Currentbody澳大利亚:美容仪专家
2019/11/11 全球购物
酒吧创业计划书
2014/01/18 职场文书
超市采购员岗位职责
2014/02/01 职场文书
教学实验楼管理制度
2014/02/01 职场文书
学生会离职感言
2014/02/11 职场文书
幼儿教师寄语集锦
2014/04/03 职场文书
2014年新生军训方案
2014/05/01 职场文书
体育节口号
2014/06/19 职场文书
党支部创先争优活动总结
2014/08/28 职场文书
Python中递归以及递归遍历目录详解
2021/10/24 Python