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)。