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实现分页的一个示例
Oct 09 PHP
PHP通用检测函数集合
Nov 25 PHP
php imagecreatetruecolor 创建高清和透明图片代码小结
May 15 PHP
Zend的AutoLoad机制介绍
Sep 27 PHP
php stripslashes和addslashes的区别
Feb 03 PHP
Yii实现MySQL多数据库和读写分离实例分析
Dec 03 PHP
PHP中基本HTTP认证技巧分析
Mar 16 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
May 13 PHP
PHP编译安装时常见错误解决办法
May 28 PHP
CodeIgniter读写分离实现方法详解
Jan 20 PHP
Linux系统中为php添加pcntl扩展
Aug 28 PHP
Laravel 修改验证异常的响应格式实例代码详解
May 25 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
PHP 和 XML: 使用expat函数(三)
2006/10/09 PHP
PHP项目开发中最常用的自定义函数整理
2010/12/02 PHP
ThinkPHP关联模型操作实例分析
2012/09/23 PHP
使用PHP Socket 编程模拟Http post和get请求
2014/11/25 PHP
php自定义urlencode,urldecode函数实例
2015/03/24 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
2017/03/28 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
完美解决Thinkphp3.2中插入相同数据的问题
2017/08/01 PHP
北京奥运官方网站幻灯切换效果flash版打包下载
2008/01/30 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
深入了解JavaScript中的Symbol的使用方法
2015/07/28 Javascript
javascript下拉列表菜单的实现方法
2015/11/18 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
小程序tab页无法传递参数的方法
2018/08/03 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
JS复杂判断的更优雅写法代码详解
2018/11/07 Javascript
记录vue项目中遇到的一点小问题
2019/05/14 Javascript
详谈Object.defineProperty 及实现数据双向绑定
2020/07/18 Javascript
Python和Ruby中each循环引用变量问题(一个隐秘BUG?)
2014/06/04 Python
详解Python3中的Sequence type的使用
2015/08/01 Python
Python结巴中文分词工具使用过程中遇到的问题及解决方法
2017/04/15 Python
python基础while循环及if判断的实例讲解
2017/08/25 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
淘宝秒杀python脚本 扫码登录版
2019/09/19 Python
Python vtk读取并显示dicom文件示例
2020/01/13 Python
Python入门基础之数字字符串与列表
2021/02/01 Python
使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题
2016/06/28 HTML / CSS
杭州-飞时达软件有限公司.net笔面试
2012/04/28 面试题
大二学习计划书范文
2014/04/27 职场文书
三严三实对照检查材料范文
2014/09/23 职场文书
2014年银行客户经理工作总结
2014/11/12 职场文书
中秋晚会致辞
2015/07/31 职场文书
《去年的树》教学反思
2016/02/18 职场文书
文明和谐家庭事迹材料(2016精选版)
2016/02/29 职场文书