php开发环境配置记录
2015-01-24信息快讯网
我一般都是自己配置环境,为了方便在异地快速配置,总结一下,备忘.如果大家感觉麻烦可以一些php运行环境软件。例如phpnow等。
【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提示undefined index的几种解决方法
openflashchart 2.0 简单案例php版
PHP中去掉字符串首尾空格的方法
有关PHP中MVC的开发经验分享
php的array_multisort()使用方法介绍
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
iis下php mail函数的sendmail配置方法(官方推荐)
phpmyadmin3 安装配置图解教程
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
php 无法加载mysql的module的时候的配置的解决方案引发的思考
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
PHP正确配置mysql(apache环境)
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
在WAMP环境下搭建ZendDebugger php调试工具的方法
PHP中用正则表达式清除字符串的空白
PHP文件读写操作之文件写入代码
PHP文件读写操作之文件读取方法详解
PHP目录函数实现创建、读取目录教程实例
PHP开发规范手册之PHP代码规范详解
PHP JSON格式数据交互实例代码详解
php INI配置文件的解析实现分析
window+nginx+php环境配置 附配置搭配说明
服务器web工具 php环境下
PHP编程最快明白(第一讲 软件环境和准备工作)
windows中PHP5.2.14以及apache2.2.16安装配置方法第1/2页
PHP MemCached高级缓存配置图文教程
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
在Windows系统上安装PHP运行环境文字教程
Windows7下PHP开发环境安装配置图文方法