標籤:bugfree nginx 404
之前沒做過windows伺服器管理,我的認識還停在個人使用者作業系統的認知上,這次搭建bugfree環境,挺多麻煩的;
在安裝之前,我百度的bugfree搭建大多是使用xamppIntegration Environment的安裝方法,然後我就照做:
下載xampp,然後安裝到系統c盤下,基本傻瓜式安裝,然後開啟control-panel,安裝apache、mysql(php在apache裡包含了),因為這個系統裡已經有mysql服務和apache服務在運行,我也不清楚是誰在用的服務,所以我這裡改了apache的連接埠為81,mysql連接埠為3308,php.ini和phpMyAdmin配置改了安裝路徑和mysql連接埠號碼,中間總有點亂七八糟的情況發生,總體就是配置沒有改好的原因,不再贅述。
然後依照網上的教程等等,下載bugfree到hotdocs下,啟動服務,發現bugfree竟然檢測不到mysql?!!!什麼鬼?已經有了啊~~
開始動手找問題 開始以為是設定檔 可能哪裡沒有修改連接埠,找了好多設定檔,把所有3306都改成3308,然並卵,但是啟動phpMyAdmin是可以用的,我手動建立了一個index.php,裡面寫了phpinfo和串連mysql的測試函數,找到了問題,這個php串連資料庫是串連不上的~,不知道為什麼,然後我查看phpinfo發現竟然沒有php的mysql這個模組~?只有mysqli和mysqlndt這兩個東西,原來xampp自動整合的php版本是7.3最新的,而php確實早就已經在弱化mysql這個模組,預設都是注釋掉的,到7.3這個版本ext這個擴充庫裡壓根就沒有mysql.dll,但是bugfree3.0.3 採用的mysql檢測方法是需要這個擴充才可以的,我嘗試使用mysqli和pdo方法,但是bugfree那邊怎麼都檢測不到,所以我意識到Integration Environment真是不好用,不自由,不能控制軟體版本,換套路!
我決定手動安裝軟體,使用nginx+php5.6+mysql構建環境,簡單的不在贅述,nginx配置:在我本地修改了監聽連接埠 增加了index.php的預設 刪除location php的注釋,修改分頁檔的根路徑:
client_max_body_size 10M;
#這個是開啟後期上傳檔案的大小限制,預設不設定是1M還是2M忘了...反正不大就是了
server { listen 81; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root C:/program/nginx1.10/html; index index.php index.html index.htm; } .........此處省略.... location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME C:/program/nginx1.10/html$fastcgi_script_name; include fastcgi_params; }
php安裝,就是解壓過程,php.ini需要開啟mysql擴充php_mysql.dll,其他的因為後期要匯入資料庫,所以修改了上傳檔案的大小限制upload_file_xxxx 和post_max_size倆參數的值;
mysql安裝採用了預設連接埠3306,也基本是傻瓜式安裝,配置個密碼就完事兒了;
3306服務運行正常;
下載RunHiddenConsole.exe,就是後台啟動並執行一個控制台,複製兩份,分別放在nginx和php的目錄下
建立檔案start.bat和shutdown.bat放在nginx目錄下,start內容為:
@echo offecho start_nginx.batecho Starting PHP FastCGI...cd C:/program/php5.6RunHiddenConsole php-cgi.exe -b 127.0.0.1:9000 -c php.iniecho Starting nginx...cd C:/program/nginx1.10RunHiddenConsole nginx.exeExit
------------------------------華麗的分割線---------------------------
shutdown內容為:
@echo offecho stop_nginx.batecho Stopping nginx...taskkill /F /IM nginx.exe > nulecho Stopping PHP FastCGI...taskkill /F /IM php-cgi.exe > nulexit
註:tasklist是類似linux ps的命令,taskkill就是kill進程的命令,這裡各位需要修改的就是nginx和php的路徑,千萬別忘了這個
RunHiddenConsole.exe
一定要放在nginx和php的目錄裡~~否則啟動不了哦~現在就測試一下php和mysql的串連吧 在nginx裡~,index.php內容:<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>test mysql+php+nginx</title></head><body><?php$link = mysql_connect("localhost","root","123456");if($link){echo "success!";}else{echo "fail!";}?><br><?phpphpinfo();?></body></html>
我這裡測試沒問題 success!有問題的同學再檢查一下php和mysql的串連 看一下phpinfo是否有mysql和配置的是否有問題,之後 解壓phpMyAdmin放到web的root下,這是用來管理資料庫的,我自己下載的預設就是認證模式的,不是的將設定檔config.inc.php的配置修改一下,將authxxxx 改成cookie模式,使用者名稱密碼是mysql的使用者和密碼
接下來下載bugfree,將bugfree解壓到分頁檔根目錄下,建立一個檔案夾BugFile在同級目錄下,然後配置合適的許可權,注意,windows平台使用nginx的web和bugfree的時候 一定要修改bugfree的一個配置 ,否則路徑是類似這樣的C:\program\nginx\html/bugfree/xxxx/xxx 斜杠是倆方向,特別坑,我也是弄了半天不會,請教人家php開發的才知道的,原因還是不懂,但是會修改,將/protected/config/main.php代碼中的這部分注釋掉:(/* xxx */多行注釋)
‘urlManager‘ => array (‘urlFormat‘ => ‘path‘,‘showScriptName‘ => false,‘rules‘ => array (‘<type:\\w+>/<id:\\d+>/<action:\\w+>‘ => ‘info/edit‘,‘<type:\\w+>/list/<product_id:\\d+>‘ => ‘info/index‘,‘<type:\\w+>/<id:\\d+>‘ => ‘info/edit‘,‘<controller:\\w+>/view/<id:\\d+>‘ => ‘<controller>/view‘,‘<controller:\\w+>/<id:\\d+>‘ => ‘<controller>/view‘,‘<controller:\\w+>/<action:\\w+>/<id:\\d+>‘ => ‘<controller>/<action>‘,‘<controller:\\w+>/<action:\\w+>‘ => ‘<controller>/<action>‘,),),
然後就可以訪問啦~,如果出現了訪問bugfree的index.php跳轉index.php/site/login 404的情況,就這麼解決~!
匯入資料庫的時候有坑的,如果bugfree的匯出資料庫是zip等壓縮格式,當匯入不進去的時候 嘗試解壓掉這個檔案 ,然後用mysql的用戶端 source進去 (大小受限制的時候 ,修改nginx的配置 見上方,php的兩個參數配置,見上方 就ok了),否則總是失敗
daily english:
You may have to fight a battle more than once to win it~
想要贏得一場戰爭,你需要付出更多次的戰鬥
本文出自 “FOR THE DREAM” 部落格,請務必保留此出處http://forthedream.blog.51cto.com/11242688/1880739
windows平台bugfree3.0.3搭建心得(nginx+php+mysql+bugfree+RunHiddenConsole)