2015年8月26日 星期三

VirtualBox 5.0.2安裝Mac OS X 10.10 (Yosemite)

新增虛擬主機,並依照圖片中的設定即可正常安裝 1. 版本請選擇 Mac OS X 10.10 Yosemite (64-bit) ![Alt text](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie3e_o9LHnVwEcdQYGCdaFO4Ds4QAqYimFAYsTbDmf3yUTyOqyQE0phRvx8OOmTEhu457yUXulNjhEdhva1BtSBj2sDDLKNbXbTESsuq8YLZP_T2D40ay3xOy_u6e1WdYd3Xgtvp1AoThk/s640/Image+1.png) 2. 晶片組 ICH9 指標裝置 USB平板 延伸功能 全選 ![Alt text](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTXV7zaqRi1-a1TK3u91-h2h6HsUsaGpqXmPNxPe7-e26Q7miXwsjoVlISUcyiHqQaSy5E3GidJsJz1u9iy4CX0d1FkYMYpdXM2LDm7kokRNlcqSwj_jbhk6kz2jpbeVBN_SsxDe0v2cSI/s1600/Image+2.png) 3 啟用 VT-x/AMD-V 啟用Nested Paging ![Alt text](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwppiIn1rb_nuqC8BGHtfQ_njI_2VBQpqIVHeNqBBm71TkbXDkOBcstbPMW-X0amc2T1ztUoRwPzG0ZjY7_YXc73dcsoAi1SB-Ej_2rk4qfM_RDnLGNE3lMCG-eJU85TB6Qxfj86fKOnOP/s1600/Image+3.png) 4 視訊記憶體調到128M 啟用3D加速 ![Alt text](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKjacY0c0_Rl8gOthhK2f-mwuNJgqvgvLJJBtYPjbtSKo14gZGKm9SLahqnQfsre7uYt33dR8SB2x8njjGteX6qBD5t1ibM61s1iCPDhV3b7PKdCQkc-yaa6EmRDhJpMF_tY-v9ay2pu5Q/s1600/Image+4.png) 5 掛載Yosemite原版ISO ![Alt text](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyM6xP46i__ESwBUoXdoVcTAWU88U-PLFyN5qLp1IFURA8rPpO5dZkRNNMufmWJuXaEU2BRvwk-Xal3peCaTsAwsJblD7h5Kuc9Vt3eED-JFFRLyi3au417DkNkjV856nwK78QKmPWOhi1/s1600/Image+5.png) 6. 執行以下指令 ```bash VBoxManage setextradata "虛擬機器名稱" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "MacBookPro11,3" VBoxManage setextradata "虛擬機器名稱" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0" VBoxManage setextradata "虛擬機器名稱" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Iloveapple" VBoxManage setextradata "虛擬機器名稱" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" VBoxManage setextradata "虛擬機器名稱" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1 VBoxManage setextradata "虛擬機器名稱" "VBoxInternal2/EfiGopMode" 4 ``` 這樣就能在Virtualbox 5.0.2上正常安裝Yosemite

2015年8月14日 星期五

Laravel 5 取得 Artisan::call的執行結果

```php // 輸出結果 class WelcomeController extends controller { public function index() { return response()->stream(function() { Artisan::call('inspire'); echo Artisan::output(); }); } } ```

2015年8月9日 星期日

Laravel 5 資料庫timezone設定

原本在設定database的timezone的設定方式是採取 ```php 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'options' => [ PDO::MYSQL_ATTR_INIT_COMMAND => 'SET time_zone = "+08:00"' ], ], ``` 後來卻在laravel的原始碼發現 ![Alt text](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_u-41FbGyPsJq6Z6AqMqSbCalwbp1QGNb5pazM_r-74k1coiFCRQE_2sRby6ZdxDPAumL7GPPKDJwlthyphenhyphenlrA4nujOquoQk2pRyf-5Tbjtm0iYv2N3NJyZz9ozEzxtyR69BtKVJuk7lZSL/s1600/Image+6.png) 所以timezone的設定只要這樣寫就可以 ```php 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'timezone' => '+08:00', ], ```

2015年8月2日 星期日

找出Windows的序號

重灌或升級windows時有時候會忘記序號 又找不到序號時就很煩好 還好找到一個免費又簡單的找出序號的軟體 ### [Lazesoft Windows Key Finder](http://www.lazesoft.com/lazesoft-windows-key-finder.html) 而且它是Open Source Freeware的軟體 不用擔心會有病毒喔 支援的作業系統 * Windows 2000 SP4 * Windows XP * Windows Vista * Windows 7 * Windows 8 * Windows 8.1 * Windows Server 2003 * Windows Server 2008 * Windows Server 2008 R2 * Windows Server 2012 * Windows Server 2012 R2 支援的OFFICE * Microsoft Office 2000 * Microsoft Office 2003 * Microsoft Office 2007 * Microsoft Office 2010 * Microsoft Office 2013 ![Alt text](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcv9WM3kZgUz7pZdrdmM14Fb7nzy8LD9Z68A-dwfnfy5b_11BAphW0kRIWkjwsSkb7FGlv4WyjzO_aH3vIgByle12ybOptzNpoeZTeDDEGoeX0qQ83c_Wf3DbmeFNZK5tBENa12m6d2GAb/s1600/lazesoft-windows-key-finder.jpg)

2015年7月27日 星期一

使用Laravel artisan schedule:run時 exec被禁用時的替代方案

```php namespace App\Console; use Artisan; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; class Kernel extends ConsoleKernel { /** * The Artisan commands provided by your application. * * @var array */ protected $commands = [ 'App\Console\Commands\Inspire', ]; /** * Define the application's command schedule. * * @param \Illuminate\Console\Scheduling\Schedule $schedule */ protected function schedule(Schedule $schedule) { // 當exec被disabled時只要改成使用Artisan::call('command')即可 $schedule->call(function () { Artisan::call('inspire'); }) ->hourly(); } } ```

遠振主機上利用crontab執行 laravel artisan schedule:run

在專案中有個需求需要在固定時間去抓取固定資料 既然都已經使用laravel所以當然開始使用artisan寫寫console指令 於是很快速的寫完程式,當然第一時間就在自己本機上測試 測試的結果當然是一切都正常 所以很快的就把程式上傳到遠振主機上 並且設定了Cron的排程 ```bash * * * * * php /path/to/artisan schedule:run 1>> /dev/null 2>&1 ``` 設定完後,想說一切都妥當了, 但程式一直出錯 系統就回應 ```ini [ErrorException] Invalid argument supplied foreach() ``` 這要怎麼debug啊 而且明明在自己電腦內測試都能正常執行啊 所以只好開始研究程式碼囉,查到最後原來..... 遠振主機的php預設為 php-cgi 所以無法取得正確的參數 如果要artisan正常執行的話必須使用php-cli 所以在遠振主機上要執行artisan應該要改為 ```bash * * * * * /usr/bin/php-cli /path/to/artisan schedule:run 1>> /dev/null 2>&1 ``` 應該所有的cpanel主機只要是可選php版本的都會遇到這個問題...... php-cli和php-cgi兩個在console上執行的差異 php-cli 的參數會存入 $_SERVER['argv']; php-cgi的參數則會存入 $_GET; 如果要讓php-cgi能正常執行則可以用以下做法 ```php if (empty($_GET) === false) { foreach ($_GET as $key => $value) { $_SERVER['argv'][] = $key; } } ```

2015年4月12日 星期日

sublime 安裝 less

1. 安裝[nodejs](https://nodejs.org/) 2. 開啟cmd,並執行 ```bash npm install -j less ``` 3. sublime安裝 LESS, smart less build 4. 修改smart less build設定檔 ```json { "source_map": false "custom_args": "--clean-css=\"--s1 --advanced --compatibility=ie8\"" } ```