Tag Archives: XAMPP

Message: file_get_contents(): Unable to find the wrapper “https” – did you forget to enable it when you configured PHP?

更新完 XAMPP 之後..當我嘗試執行 一個Google API的時候出現以下的錯誤信息
Message: file_get_contents(): Unable to find the wrapper “https” – did you forget to enable it when you configured PHP?

原因是這個API 是用了 HTTPS
而因為我的Apache / PHP Web server上沒有 enable HTTPS wrapper []

解決方法
php.ini 上 Enable php_openssl 這個Module 便可以了

by removing the “;

extension=php_openssl.dll

Hope you find it useful

Set up Composer with XAMPP – 如何在Windows XAMPP 上安裝 Composer – PHP Package Mangement Tool

朋友常常介紹我使用Composer 一個 PHP 的 Package Management Tool
Composer – Dependency Manager for PHP

十分有用..就像 Visual StudioNugetNodeJsnpm
有興趣既朋友可以參考以下網頁
https://getcomposer.org/

Composer - Dependency Manager for PHP

今天想和大家分享怎樣在Windows 使用 XAMPP 的環境下安裝 Composer

安裝程序很簡單..但是我也曾經遇過些少問題..
所以還是在這裡寫下些筆記吧.

首先大家需要到Composer 的網站 找Windows InstallerSection 下載Composer_Setup.exe
https://getcomposer.org/download/

之後開啟這檔案便可以開始安裝了 按”Next / 下一步
Composer Setup

選擇安裝那些Components..我選擇了預設的選項
Composer Setup - Select Components

按”Next / 下一步” 之後需要選擇電腦上的 PHP.exe 的儲存位置[因為Composer需要使用PHP的]
我是使用 XAMPP 的..所以我的PHP 是儲存在 D:\xampp\php\php.exe
Composer select php.exe path

按”Next / 下一步“之後便會出現一個安裝前的總結..
如果看了覺得設定沒有問題的話便可以按”Install / 安裝
Composer Setup Summary

安裝完成
Completing Composer Setup

登出再登入電腦之後便可以在Command prompt 上執行 Composer
Composer install successfully

Hope you find it useful

PHP-cs-fixer – PHP Coding Standards Fixer

自從用了 Visual StudioStyleCop / Resharper
之後便開始愛上Coding Standard / Best Practice..
因為這些Coding Standard 的工具可以幫助我們寫一些更有效率的程式碼
還有..如果所有Developer 都跟隨著這些Coding Standard..
便其他人便可以很容易便明白程式是怎樣 layout的

最近開始寫多了PHP 相關的網站..
如果有一些免費的工具..像StyleCop
朋友便介紹..我可以使用PHP-CS-FIXER 來做差不多的東西..
你可以使用PHP Command 來執行PHP-CS-FIXER

首先我們先要以下網址去下載php-cs-fixer.phar
https://github.com/FriendsOfPHP/PHP-CS-Fixer

Download PHP-CS-FIXER
之後把他儲存在 一個容易找到的位置..因為我們要用這個路徑來執行php-cs-fixer
我便把他儲存在”d:\xampp\php\extras\php-cs-fixer.phar
PHP-CS-Fixer.phar Location

所有東西都準備好之後我們便可以嘗試執行 php-cs-fixer
執行方法 是這樣的

php [Full file path for php-cs-fixer.phar e.g. d:\xampp\php\extras\php-cs-fixer.phar] fix [PHP code folder path e.g. d:\xampp\htdocs\sharechiwai\applicat
ion\controllers] –fixers=[settings e.g. -indentation]

php php-cs-fixer.phar fix D:\xampp\htdocs\BlogBackup\wp-content --fixers=-indentation

結果像這樣
PHP-CS-Fixer Result
完成後會總結那些檔案更新了..和那些檔案有問題..
PHP-CS-Fixer Summary

更多怎樣使用 php-cs-fixer 指令和變數的 詳情可以參考下以網址
http://cs.sensiolabs.org/
PHP-CS-Fixer Variable / Parameters

Hope you find it useful

PHP Warning: Cannot open ‘\xampp\php\extras\browscap.ini’ for reading in

之前介紹過怎樣在Windows 執行 PHP Command E.G. 設定環境變數
和怎樣解決 PHP Unable to load dynamic library 的問題

到最後我們還有另一個問題要解決..
就是
PHP Warning: Cannot open ‘\xampp\php\extras\browscap.ini’ for reading in Unknown on line 0
PHP Warning:  Cannot open '\xampp\php\extras\browscap.ini' for reading in Unknown on line 0

問題出現的原因和之前的一樣..是一個路徑計定的問題

解決方法十分簡單
我們可以開啟 php.ini 檔案.. 之後
browscap 的 路徑

browcap = "\xampp\php\extras\browscap.ini"

browscap path on php.ini

轉為

browcap = "d:\xampp\php\extras\browscap.ini"

Cannot load browscap xampp php.ini fixed

之後再嘗試一下.. browscap 的問題應該解決了

PHP Command Successfully set up on Windows machine

Hope you find it useful

PHP Unable to load dynamic library ‘\xampp\php\ext\php_bz2.dll’

當我嘗試在Command Prompt上執行 php的指令時..出現以下的錯誤
PHP Warning: PHP Startup: Unable to load dynamic library ‘\xampp\php\ext\php_bz2.dll
PHP Startup: Unable to load dynamic library php_bz2.dll

PHP Warning: PHP Startup: Unable to load dynamic library ‘\xampp\php\ext\php_curl.dll
PHP Startup: Unable to load dynamic library php_curl.dll

還有很多其他的Dynamic Library
PHP unable to load dynamic library

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_bz2.dll

Warning: PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_bz2.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_curl.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_mbstring.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_exif.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_gd2.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_gettext.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_mysql.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_mysqli.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_openssl.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_pdo_mysql.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_pdo_sqlite.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_soap.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_sockets.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_sqlite3.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_xmlrpc.dll

PHP Warning:  PHP Startup: Unable to load dynamic library '\xampp\php\ext\php_xsl.dll

PHP Warning:  Cannot open '\xampp\php\extras\browscap.ini' for reading in Unknown on line 0

之後去查看了 php/ext 資料來..
[由于我是使用 xampp 的關係..我的xampp 資料夾是儲存在d:\
所以我的 xampp path 是這樣的 D:\xampp\php\ext\]

發現上面說明’Unable to load‘ 的 Dynamic Library 都可以在這裡找到
PHP Ext Folder in XAMPP

所以應該不是Library的問題
而是php.ini 內的一些設定問題

做了一會research 之後發現

解決方法十分簡單
只要將預設的 extension_dir 設定變成我們的 absolute path便可以
E.G. D:\xampp\php\ext\

extension_dir = "\xampp\php\ext"

php.ini extension_dir
轉成

extension_dir = "d:\xampp\php\ext"

php.ini extension_dir with absolute path

之後問題便可以解決
PHP command works

Hope you find it useful

‘php’ is not recognized as an internal or external command – How to run PHP Command Line on Windows – 怎樣在Windows 上執行php 指令

最近用多了PHPLibrary..
很多時候都需要以PHP Command 來執行的
當我在Command Prompt 上輸入 php之後執行時 出現了以下錯誤
“‘php’ is not recognized as an internal or external command, operable program or batch file.”
PHP is not recognized as an internal or external command, operable program or batch file

Command Prompt 上執行 PHP 指令其實很容易的
Windows 上我們只需要把 php.exe 的資料夾 註冊在 Windows 的 Environment Variable /環境變數 便可以

首先要找到我們的PHP.exe 儲存在那裡
XAMPP PHP Folder
由於我是使用xampp的所以我的 php.exe 會存在
[xampp 的儲存路徑]\php\

Advanced System Settings/進階系統設定” -> “Advanced tab/進階 分頁” ->”Environment Variables / 環境變數” 按一下
在之前的網誌有介紹如何修改”Environment Variables / 環境變數” 有興趣的朋友可以到以下網誌參考
How to install Ant on Windows – 如何在Windows 上安裝Ant

Environment Variable
儲存之後按 “OK/確定
之後再登出再登入Windows 便可

Execute PHP on Windows Command Prompt
我的PHP config 檔案出現了小小問題..之後的網誌會介紹怎樣解決這些1

Hope you find it useful

How to enable GZip via .htaccess – 在.htaccess 檔案上Enable GZip

在之前的一篇網誌上介紹了如何在Apache / XAMPP上啟用 GZip Compression.

Enable GZip Compression on Apache XAMPP – 在Apache XAMPP 上 啟用 GZip 壓縮

原來在Apache上 Enable了 GZip Compression Module 之後
也需要在Website中的”.htaccess

以下是說給Server看這個網頁會使用GZip 來壓縮內容的script


#檢查 如果 mod_deflate存在的話執行以下script
<IfModule mod_deflate.c>

  # 啟動GZIP
  <IfModule mod_setenvif.c>
    <IfModule mod_headers.c>
      SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
      RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
    </IfModule>
  </IfModule>

  # 以下是上一個網誌中提到的Filter 功能
  #下列的設定是把以下MIME type 的檔案用GZIP處厘
  <IfModule mod_filter.c>
    AddOutputFilterByType DEFLATE application/atom+xml \
                                  application/javascript \
                                  application/json \
                                  application/rss+xml \
                                  application/vnd.ms-fontobject \
                                  application/x-font-ttf \
                                  application/xhtml+xml \
                                  application/xml \
                                  font/opentype \
                                  image/svg+xml \
                                  image/x-icon \
                                  text/css \
                                  text/html \
                                  text/plain \
                                  text/x-component \
                                  text/xml
  </IfModule>

</IfModule>

Hope you find it useful