學習足跡

2014年12月30日 星期二

Composer中require與require-dev的差別

在使用composer安裝套件時常會有些套件使用「require」,有些套件使用「require-dev」的方式去安裝套件,差了一下他們之間使用時機的差異。

使用時機

require:專案必須要使用的套件
require-dev:開發專案時使用的套件(像是測試的套件),在正式環境不需要的套件

在下composer指令時如果沒有指定要安裝require-dev的套件,則require跟require-dev的套件都會被安裝

require跟require-dev的套件都會被安裝

$ composer update

會安裝dev的套件

$ composer update --dev

不會安裝require-dev的套件

$ composer update --no-dev


參考資料



2014年12月29日 星期一

在 Ubuntu 14.04 使用 Homestead 建置 Laravel 4 開發環境

常常我我們需要開發Web Application時候,都需要花很長的時間把環境建置起來,而Homestead以讓我們透過簡單的設定檔,輕鬆的建置好整個執行環境,讓我們能夠更專注於在開發上
Ubuntu 14.04 64 bit
Homestead 2.0
Laravel 4.2
Vagrant 1.7.1
Virtualbox 4.3 

安裝 VirtualBox

VirtualBox官方網站下載並安裝VirtualBox
$ wget http://download.virtualbox.org/virtualbox/4.3.20/virtualbox-4.3_4.3.20-96996~Ubuntu~raring_amd64.deb
$ sudo dpkg -i  virtualbox-4.3_4.3.20-96996~Ubuntu~raring_amd64.deb 
64位元請下載amd64版本,32位元請下載i386版本



2014年10月27日 星期一

Vagrant 常用指令

啟用虛擬機器
$ vagrant up
關閉虛擬機器
$ vagrant halt
重新讀取yaml設定檔並重新啟動
$ vagrant provision
使用ssh連線到虛擬主機
$ vagrant ssh 

參考資料

2014年10月26日 星期日

在 Ubuntu 14.04 安裝Consolas字形

在寫程式的時候需要比較適合程式的字形 Consolas,但是在Ubuntu內沒有此字形,所以我們必須要另行安裝

下載安裝程式碼

$ wget http://webupd8.googlecode.com/files/install-google-fonts

將安裝程式碼設為可執行

$ chmod +x install-google-fonts

建立安裝字形目錄 .fonts

$ mkdir .fonts

執行安裝

$ ~/install-google-fonts

執行完畢即可開始使用 Consolas字形摟~


參考資料


Ubuntu 14.04 桌面空白解決辦法

在安裝完 Ubuntu 14.04 桌面版後重新開機,輸入密碼進去後發現整個桌面是空白的,應該是桌面顯示套件掛掉的關係



使用快捷鍵 Ctrl+alt+F1 進到Terminal
重新啟動並測試桌面套件是否可以正常運作
try sudo service lightdm restart

方法一


若無法正常運作時,則重新安裝桌面套件
sudo apt-get install --reinstall ubuntu-desktop
安裝完重新開機即可

方法二

安裝 unity 及 compizconfig-settings-manager
sudo apt-get install unity
sudo apt-get install compizconfig-settings-manager
設定顯示設定視窗的位置
export DISPLAY=:0
ccsm
使用按鍵 Ctrl+Alt+F7 (或Ctrl+Alt+F8) 切換到視窗畫面,會看到Compiz設定視窗,找尋 Unity plugin並啟動它,設定完後重新開機即可

參考資訊

2014年6月25日 星期三

使用 git 佈署 Laravel 4 程式

安裝 Laravel 4 (環境可以是 Ubuntu或是Windows)

$ composer create-project laravel/laravel custom_laravel_folder --prefer-dist
composer create-project [PACKAGE] [DESTINATION PATH] [--FLAGS] 

將安裝完後的 Laravel 4 加入git版本控制

$ cd custom_laravel_folder
$ git init
$ git add .
$ git commit -m "Initial commit"

安裝git server

$ mkdir /home/kejyun/laravel.git
$ cd  /home/kejyun/laravel.git
~/laravel.git$ git init --bare

在Ubuntu 12.04 使用 Nginx 做為 Laravel 4 伺服器

更新套件
apt-get update && apt-get upgrade
安裝nginx、php5-fpm(解析php)、php5-mcrypt(Laravel 4需求套件)、php5-cli & git(composer需求套件)
apt-get install nginx php5-fpm php5-cli php5-mcrypt git
設定 nginx的VirtualHost
 /etc/nginx/sites-available/default
 server {
        listen   80 default_server;
        root /home/kejyun/laravel/public/;
        index index.php index.html index.htm;
        location / {
             try_files $uri $uri/ /index.php$is_args$args;
        }
        # pass the PHP scripts to FastCGI server listening on /var/run/php5-fpm.sock
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}
修改fpm設定檔
sudo vim /etc/php5/fpm/pool.d/www.conf

listen = /var/run/php5-fpm.sock
修改為
listen = 127.0.0.1:9000
重新啟動php-fpm及nginx
service php5-fpm restart
service nginx restart
修正Laravel 4資料夾群組及寫入權限問題
sudo chgrp -R www-data /home/kejyun/laravel
sudo chmod -R 775 /home/kejyun/laravel/app/storage

Let's play Laravel 4 with nginx!!

參考資料

解決 nginx 使用 php-fpm 時 502 Bad Gateway 問題

檢查 php-fpm 是否有正常的執行
ps aux | grep php
若沒有正常的執行 php-fpm,移除並重新安裝
sudo apt-get remove php5 php5-cgi php5-fpm
sudo apt-get install php5 php5-cgi php5-fpm
修改fpm設定檔
sudo vim /etc/php5/fpm/pool.d/www.conf

listen = /var/run/php5-fpm.sock
修改為
listen = 127.0.0.1:9000
之後重新啟動 php-fpm的服務即可
sudo service php5-fpm restart

參考資料

2014年6月24日 星期二

在 Ubuntu 14.04 安裝 Laravel 4.2

使用 composer 指令安裝 laravel 4.2
$ composer create-project laravel/laravel custom_laravel_folder --prefer-dist
composer create-project [PACKAGE] [DESTINATION PATH] [--FLAGS] 
若出現以下訊息表示你沒有安裝 Mcrypt PHP extension
Mcrypt PHP extension required.
Script php artisan clear-compiled handling the post-install-cmd event returith an error


在 Ubuntu14.04 安裝 composer

若沒有安裝 curl 可以先行安裝
sudo apt-get install curl
要使用composer必須要安裝php套件
sudo apt-get install php5
使用curl下載composer,並把 composer.phar 檔名重新命名為 composer
curl -sS https://getcomposer.org/installer | php -- --filename=composer

調整安裝在 VirtualBox 中 Ubuntu 14.04 的螢幕解析度

在 VirtuaBox 中安裝好 Ubuntu 14.04 後,螢幕的解析度相當的小,幾乎很難在桌面進行任何操作,可以試著在 Ubuntu 中安裝 VirtualBox 的 Guest Additions 擴充套件即可

安裝時會需要輸入管理者的密碼,安裝好重新開機就可以

2014年2月6日 星期四

讓git使用ssh不須輸入密碼做Clone/Push/Pull Request (Ubuntu12.04)

在Git Client產生要用來連線的 ssh key

在Ubuntu使用ssh-keygen -t rsa指令產生ssh key,Enter passphrase的時候不要輸入任何東西
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/kejyun/.ssh/id_rsa): id_rsa_kejyun
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_kejyun.
Your public key has been saved in id_rsa_kejyun.pub.
The key fingerprint is:
49:6c:bf:01:a0:74:c7:e4:fd:14:85:75:f6:18:f1:63 kejyun@kejyun-VirtualBox

在Git Server加入允許連線的ssh key


Client產生的public key資訊(id_rsa_kejyun.pub)加入到Server~/.ssh/authorized_keys中,因為我在產生key時指定的檔名為id_rsa_kejyun,所以public key則為id_rsa_kejyun.pub

方法1:

將Client產生的id_rsa_kejyun.pub上傳到Server,再使用cat ~/id_rsa_kejyun.pub >> ~/.ssh/authorized_keys指令將public key存入

方法2:

在Server使用編輯器編輯~/.ssh/authorized_keys,直接將id_rsa_kejyun.pub的資料貼到檔案中

設定Client中使用ssh連線的方式

告訴Client的ssh,在連線到指定的主機時使用預設的key做連線

$vim ~/.ssh/config
Host 192.168.11.10
  HostName 192.168.11.10
  User kejyun
  IdentityFile /home/kejyun/.ssh/id_rsa_kejyun

開始使用免密碼做 Clone/Push/Pull Request

git clone ssh://kejyun@192.168.11.10/home/kejyun/test.git
git push origin master
git pull origin master

參考資料