PHP中PDO、mysql配置遠端連線、ecshop安裝

FreeeLinux發表於2017-03-31

PHP新版中推薦的基於物件的資料庫伺服器的方式。

開始PDO_mysql相關擴充套件:
基本使用步驟:
連線,認證,傳送SQL,等待mysql伺服器的執行結果,處理執行結果。

安裝PDO:

  1. 安裝pdo
      sudo pecl install pdo
      出現以下錯誤是說明pdo已經加入了php的預設安裝,不需要再安裝了
      [Some stuff excluded for brevity]make: * [pdo_dbh.lo] Error 1 ERROR: `make’ failed
  2. 安裝pdo_mysql
      sudo pecl install pdo_mysql
      以下錯誤表示在pear中找不到pdo_mysql驅動。這是因為在編譯時需要mysql的標頭檔案,而預設搜尋路徑找不到標頭檔案的位置,所以才出現這個問題,所以要將 /usr/include/mysql/(此目錄可能有變,需要find / -name mysql 查詢具體位置) 目錄下的mysql標頭檔案連結到 /usr/local/include/ 的目錄下:
    sudo ln -s /usr/include/mysql/* /usr/local/include/
  3. 修改php.ini
    先使用find命令查詢pdo_mysql.so,然後修改:
    extension=/usr/lib/php5/20131226/pdo_mysql.so
  4. 開啟phpinfo(),如果出現,說明已經安裝好了。

只需要以下幾步:
修改mysqld.cnf中的bind-address=127.0.0.1,將其註釋掉。
給予使用者訪問許可權,例如:grant all privileges on . to ‘root’@’5hours’ identified by ‘vagrant’ with grant option;
flush privileges; 重新整理許可權,使生效
sudo /etc/init.d/mysql restart; 重啟mysql
mysql -u root -p -h 192.168.33.147; 進行測試
不過,都是假的,什麼只需要以下幾步,我花了一個小時才搞好。配置環境絕對是開發人員最頭疼的一件事情。
ecshop安裝問題:
Strict Standards: Only variables should be passed by reference in F:\wamp\www\ecshop\upload\includes\cls_template.php on line 418
的報錯資訊。
第一種解決方法是殺到cls_template.php檔案中發現下面這段程式碼:
?
1
tagsel=arrayshift(explode(′′,tag));
忘記說了,我的PHP版本是5.4.19,PHP5.3以上預設只能傳遞具體的變數,而不能通過函式返回值傳遞,所以這段程式碼中的explode就得移出來重新賦值了:
tagArr=explode(′′,tag);
tagsel=arrayshift(tagArr);
這樣之後頂部的報錯沒掉了,左側和底部的報錯還需要去ecshop的後臺點選清除快取才能去除。
Strict Standards: Non-static method cls_image::gd_version() should not be called statically in D:\shop\xampp-portable\htdocs\ecshop\includes\lib_base.php on line 347
在網上搜尋了一下,在這裡找到了答案:
http://www.cnblogs.com/thinksasa/archive/2013/03/12/2955922.html
具體方法是:
將347行的程式碼:
return cls_image::gd_version();
改為:
p=newclsimage();returnp->gd_version();
3.
使用記事本或其他PHP編輯軟體(如:editplus)開啟檔案 includes/cls_template.php ,找到
return preg_replace(“/{([^}{\n]*)}/e”, “this>select(\1);",
替換為
return preg_replace_callback(“/{([^}{\n]*)}/”, function(r)returnthis>select(

相關文章