ecshop網上商城搭建以及安裝和頁面問題的解決

要安裝ecshop網上商城須要有apache網頁服務器和php語言編譯環境與mysql數據庫。php

緣由:ecshop存在大量的php頁面,php語言編譯環境須要有相關的網頁服務器進行解析如apache。mysql

若是沒有apache和php,瀏覽器請求不到網頁服務器,而網頁服務器根據瀏覽器的http請求取出相關頁面對處理結果返回給瀏覽器,對相關頁面的處理好比php就須要php語言編譯環境了,不然找到相關頁面返回給瀏覽器仍是不能識別,瀏覽器自己就不能解析php頁面。sql

須要mysql數據庫,不少開源項目的數據是放在mysql數據庫裏的,若是沒有數據庫作支持不少數據信息只能臨時保存,而不能有效相對性的永久保存。數據庫

首先安裝apache2.2,指定其安裝目錄配置好httpd.conf文件。規劃好php語言編譯環境解壓目錄以及對php.ini的配置,安裝mysql時注意端口號,主機字符串,字符集編碼。安裝wamp時注意統一文件夾方便管理。(這裏只作簡要說明,詳細的請看異說wamp搭建以及discuz!論壇發佈)apache

 

有了wamp環境安裝ecshop就好辦了,首先到官網或是第三方連接下載ecshop,解壓ecshop的壓縮包,將其中的docs和upgrade文件夾刪除(相關說明以及更新用的,沒什麼實際用途),再將upload改名成ecshop(便於記憶方便管理)。瀏覽器

注:建議下載utf8編碼的壓縮包,utf8是國際通用字符集編碼相關代碼支持比較好顯示也不錯,若是是小型公司之類的網站下載gbk中文字符集編碼也何嘗不可較爲節省內存。緩存

接着將ecshop文件夾放入到apache默認解析目錄htdocs下服務器

打開瀏覽器輸入localhost/ecshop發出http請求,再點擊index.php頁面併發

贊成相關協議下一步,檢查相關環境,咱們發現因爲ecshop相關代碼疏忽和php配置不完善形成以下結果(固然不止這些,咱們都要一 一解決)函數

找到php環境目錄的php.ini配置文件進行以下修改,將";"註釋符去掉,啓用圖形處理動態連接庫文件

因爲對php.ini配置文件的修改,須要重啓apache服務器才生效

再對ecshop相關圖形處理代碼查看中發現lib_installer.php文件裏的一段啓用圖片處理支持的代碼寫錯了, 發現這點的緣由是當我修改完php.ini以及重啓apache刷新ecshop環境檢測頁面時啓用了圖形處理庫卻還不支持jpeg,不符合常理。 將($gd_info['JPG SUPPORT']==true)中的JPG改爲JPEG

以及檢測環境頁面的報錯信息所處的位置相關行數31行代碼,發現涉及到gd_version();是非靜態函數,對php文件的引用在..\ecshop\includes目錄下的cls_image.php

我找到cls_image.php文件對函數gd_version()進行static靜態定義

接着刷新環境檢測頁面,相關信息檢測正確,接着下一步

填好相關信息,我以爲相關代碼的時區錯誤可能不止這一點,就大膽直接下一步出現以下錯誤信息,不過果真如此(運氣運氣)

我首先來到目錄..\ecshop\install\includes下的lib_installer.php根據提示223行進行修改,直接將date_default_timezone_get();直接設置成 date_default_timezone_set('PRC'); 由獲取時區變爲設置時區,關於PRC是中華人民共和國的英文縮寫

接着根據提示..\includes\cls_mysql.php的文件以及代碼所在的行數16三、173進行以下修改,關於165行並無什麼錯誤,算是取得時間結果引導的併發性錯誤

刷新頁面,接着填完信息下一步,將要成功時失敗了,真是防不甚防啊。聽着像是獲獎感言似的,繼續追尋錯誤信息的足跡。

找到..\includes\lib_time.php文件,出錯代碼所在的行數,上來就是原有28上添加date_default_timezone_set('PRC');

再次刷新,填寫完信息下一步,此時已經成功安裝完成了

進入ecshop的首頁這錯誤不忍直視啊,嚴格標準:只有變量經過引用傳遞在1329和422行,應該是代碼規範問題,看樣子之前的版本行的通,畢竟我學php的版本是5.4.45,剛學沒多久,官網好像說的是5.5忘了,並且官網也推薦5.3如下.....

既然只有變量經過引用傳遞反推只能傳遞具體的變量而不能經過函數返回值傳遞。

將..\includes\lib_main.php裏的所在行的函數轉變爲一個變量接收,傳值的一個過程;

將$ext = end(explode('.', $tmp));改成 :
 

$extsub=explode('.', $tmp);
$tmp=end($extsub);

再將..\includes\cls_template.php裏的$tag_sel = array_shift(explode(' ', $tag));(記得保存,注意我截圖時是沒保存的,截完圖後保存的)

改成:

$tag_arr = explode(' ', $tag); 
$tag_sel = array_shift($tag_arr);

我爲了以防萬一,將瀏覽器緩存清理了一遍仍是不奏效,而後再進入管理系統清理緩存,管理系統在admin/index.php裏。

進入管理系統後,又醉了,又是規範問題,重定義關於類的構造函數初始化代碼塊失敗的問題

將全部管理系統提示涉及到的php文件中的行裏的構造函數和初始化代碼塊互換位置

原先:

function alipay(){

}
function __construct(){
     this->alipay();
}

修改後

function __construct(){
     this->alipay();
}

function alipay(){

}

以後以下,將全部管理系統提示涉及到的php文件中的行裏的構造函數和初始化代碼塊互換位置

重要的事情說三遍:

說實話圖是小了點,但核心的實質沒變,按照個人方法,照貓畫虎應該難度不大

再次進入管理系統,清除緩存,此次進入ecshop主頁查看,this is suprised,very perfect!

成功

相關文章
相關標籤/搜索