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将网址字符串转换成超链接(网址或email)
May 25 PHP
分享一个PHP数据流应用的简单例子
Jun 01 PHP
php中删除字符串中最先出现某个字符的实现代码
Feb 03 PHP
浅谈PHP调用Webservice思路及源码分享
Jun 04 PHP
php上传图片客户端和服务器端实现方法
Mar 30 PHP
php实现的mongodb操作类实例
Apr 03 PHP
php动态生成缩略图并输出显示的方法
Apr 20 PHP
PHP设计模式之装饰者模式代码实例
May 11 PHP
php实现中文转数字
Feb 18 PHP
AES加解密在php接口请求过程中的应用示例
Oct 26 PHP
yii框架无限极分类的实现方法
Apr 08 PHP
实例化php类时传参的方法分析
Jun 05 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
thinkPHP分组后模板无法加载问题解决方法
2016/07/12 PHP
smarty循环嵌套用法示例分析
2016/07/19 PHP
php 解决扫描二维码下载跳转问题
2017/01/13 PHP
PHP实现对xml的增删改查操作案例分析
2017/05/19 PHP
php无限极分类实现方法分析
2019/07/04 PHP
phpstudy后门rce批量利用脚本的实现
2019/12/12 PHP
Yii 框架入口脚本示例分析
2020/05/19 PHP
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
判断控件是否已加载完成的代码
2010/02/24 Javascript
javascript 二分法(数组array)
2010/04/24 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
ajax提交表单实现网页无刷新注册示例
2014/05/08 Javascript
百度多文件异步上传控件webuploader基本用法解析
2016/11/07 Javascript
快速掌握jQuery插件WebUploader文件上传
2016/11/07 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
Bootstrap CSS组件之分页(pagination)和翻页(pager)
2016/12/17 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
javascript自执行函数
2017/02/10 Javascript
Python使用MONGODB入门实例
2015/05/11 Python
Python多线程经典问题之乘客做公交车算法实例
2017/03/22 Python
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
Python读取stdin方法实例
2019/05/24 Python
python3+PyQt5 数据库编程--增删改实例
2019/06/17 Python
如何基于Python获取图片的物理尺寸
2019/11/25 Python
python如何实现复制目录到指定目录
2020/02/13 Python
CSS3正方体旋转示例代码
2013/08/08 HTML / CSS
理肤泉美国官网:La Roche-Posay
2018/01/17 全球购物
阿里巴巴Oracle DBA笔试题答案-备份恢复类
2013/11/20 面试题
建设投标担保书
2014/05/13 职场文书
计划生育证明格式及范本
2014/10/09 职场文书
2014年校务公开工作总结
2014/12/18 职场文书
北京颐和园导游词
2015/01/30 职场文书
写给孩子的新学期寄语
2015/02/27 职场文书
2016大学军训通讯稿
2015/11/25 职场文书
eclipse创建项目没有dynamic web的解决方法
2021/06/24 Java/Android
PostgreSQL解析URL的方法
2021/08/02 PostgreSQL