Ecstore在nginx+windows单机部署教程
2024-07-09 22:56:41
供稿:网友
windows下没有php-fpm可以使用,但是可以通过xxfpm,可以模拟php-fpm使用,只有32位版本的,但是经过测试,可以在64位windows7旗舰版使用。
安装包下载
php下载地址:php5.3.28非线程安全版
nginx下载地址:nginx1.2.0
xxfpm下载地址(已经包涵pthreadGC2.dll):xxfpm
mysql请自行下载:mysql-32(windows 32位)
mysql-64(windows 64位)
【下载时要登录,如果可以,就自己注册用户。已经注册好的用户:1051292443@qq.com anjiaxin】
ZendGuardLoader下载地址:ZendGuardLoader
测试环境php.ini下载地址:php.ini
测试环境nginx.conf下载地址:nginx.conf
环境安装
nginx安装
下载nginx,解压即可(测试的时候放在d:/nginx1.2.0目录)
启动时直接运行nginx.exe即可(需要管理员权限)关闭时直接结束进程即可关闭命令:
taskkill /F /IM nginx.exe > nul
php安装
下载php非线程安全版非安装版解压即可(测试的时候放在d:/php目录)
mysql安装
请参考其它windows下单机环境部署,无特殊要求,只要本机可以联通即可。
xxfpm安装
将目录解压缩(主要目标文件是xxfpm.exe和pthreadGC2.dll,测试环境为d:/xxfpm/bin/目录)
若两个文件放在同一目录下,仍提示缺少pthredGC2.dll文件而无法运行,请按照以下步骤注册pthreadGC2.dll文件。将pthreadGC2.dll文件拷贝到windows安装目录/system32/目录下(测试环境为c:/windows/system32)注册pthreadGC2.dll文件(cmd下执行regsvr32 pthreadGC2.dll)
regsvr32 pthreadGC2.dll
启动命令:xxfpm.exe d:/php/php-cgi.exe -n测试环境执行如下命令
xxfpm.exe d:/php/php-cgi.exe -n 5 -p 9000
如果需要指定特定的php.ini文件执行以下命令
xxfpm.exe "d:/php/php-cgi.exe -c d:/php/php.ini" -n 5 -p9000
关闭命令:
taskkill /F /IM xxfpm.exe > nul
注意:php-cgi.exe在关闭xxfpm.exe的时候也会一起关闭
环境配置
nginx配置
nginx需要配置如下内容:
fastcgi
pathinfo
php页面支持
#user nobody;
worker_processes 1;
worker_rlimit_nofile 65538;
error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 8080;
server_name localhost;
root d:/www;
charset utf-8;
access_log logs/host.access.log;
location / {
root d:/www;
index index.html index.htm index.php;
autoindex on;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root d:/www;
}
location ~ /.php {
include fastcgi_params;
set $path_info "";
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?/.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ //.ht {
# deny all;
#}
}
}
php配置
php.ini需要配置内容:
基本支持(时区,pathinfo,GD,mysql等)
date.timezone = prc
enable_dl = On
cgi.force_redirect = 0
cgi.fix_pathinfo=1
fastcgi.impersonate = 1
cgi.rfc2616_headers = 1
allow_url_fopen = On
extension_dir="e:/php/ext"
extension=php_bz2.dll
extension=php_curl.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_openssl.dll
extension=php_pdo_mysql.dll
extension=php_sockets.dll
extension=php_xmlrpc.dll
ZendLoader配置:
[Zend.loader]
zend_loader.enable=1
zend_loader.disable_licensing=0
zend_loader.obfuscation_level_support=3
zend_loader.license_path=d:/www/doorman/config
zend_extension="D:/PHP/ext/ZendLoader.dll"
详细内容请对照测试版php.ini(本文开头部分下载)
配置完成后请将php.ini复制到windows目录下,否则无法解密。
常见问题以及解决方案
FastCGI错误
提示如下错误:
Fatal error: Limited-user licenses are not supported when running as CGI in D:/example.com/app/base/kernel.php on line 23
没有安装php-fpm导致,windows下用xxfpm代替(请查阅xxfpm安装)
php.ini读取错误
这种错误很难发现,并且发生在安装多个php环境的电脑中。请将所有的php.ini重命名即可(指定固定的php.ini也有一定可能读取别的php.ini)。