php framework Laravel vs Codeigniter
之前用的第一個php framework 是Codeigniter(以下簡稱CI)
與最近幾年熱門的Laravel 最大的差別是-->CI 很精簡,主要是只有MVC 跟 ORM(Active Record)
單元測試/DI/composer支援..等功能都沒有,若你是兩人以下的開發團隊, 系統複雜度也不高,CI或許更適合你
目前最佳framework 2016 : #1 Laravel, #2 Symfony , #3 Codeigniter
本次筆記主要分為
1.Laravel安裝(ubuntu or synology nas DSM6+) (1/3)
2.Laravel安裝問題:httpd相關設定調整(1/3)
3.Laravel 基本功能實作(2/3)
a.routing
b.view
c.controller
d.model
4.Vue.js 實作(3/3)
1.安裝
1.1.LAMP 安裝
- 以ubuntu為例
- sudo apt-get install apache2
- sudo apt-get intstall php #php7
- sudo apt-get intall mysql-server
- 或以上直接安裝lamp : sudo apt-get install lamp-server
- sudo apt-get intall phpmyadmin
- 以synology DSM6+為例
- 安裝webstation
- 安裝phpmyadmin
- 安裝mariadb
1.2 php 5.6.4+ , OpenSSL PHP Extension, PDO PHP Extension 等...
1.3 需先安裝php 的套件管理: Composer
1.3.1 mv composer.phar /usr/local/bin/composer #使用composer 取代 php composer.phar
1.4 composer create-project --prefer-dist laravel/laravel blog #自動生成blog目錄
#synlogy需用以下指令取代 create-project 以後相同 : php56 /user/local/bin/composer create-project.............
1.5 執行composer update --no-scripts # or php56 composer update --no-scripts
1.6 站台設定:
以synloogy 213j 為例
虛擬主機指到 mywebiste\Public
e.g virtual host name:mywebsite.funtech.tw
webroot : /var/user/fij/www/mywebsite/public
2.Laravel 安裝問題
- http://www.myblog.com/ 出現500錯誤
- 檢查log確定原因
- synology DSM6+ ; /var/log/httpd/apach2*.log
- ubuntu:/var/log/apache2/*.log
- 權限問題* #使用DSM的複製 比較不會有問題
sudo chmod 755 blog -R #R+X
sudo chmod 777 blog/storage -R #R+W not work
sudo chmod 777 bootstrap -R
sudo chmod 755 blog/ - app_key問題
php56 artisan key:generate #php56 artisan k:g - DSM設定/WebStation/PHP設定
a.網站目錄需於/volume1/web/ 下 (因為有預設打開base_dir 可允許程式執行外層目錄的程式)
b: 若站台位置非以上目錄, 請到WebStation/PHP設定/自訂open_basedir :打勾
並於open_basedir 欄位加入: ... :/volume1/userfolder
測試站台: testing.myblog.com 根目錄 : /volumn1/myblog/testing/myblog/public
正式站台:www.myblog.com 根目錄: /volumn1/myblog/production/myblog/public
http://www.myblog.com 順利出現 Laravel 畫面
- 檢查log確定原因
server 終於搞定, 可以往下一步邁進
3.Laravel 基本功能實作
4.Vue.js 安裝 Vue.js (not AngularJS ) : 輕巧的前端framework,動態binding
- 註1:multiview(可讓網站支援多國語言如下)
-
URI: document.html Content-language: en Content-type: text/html URI: document.html.en Content-language: fr Content-type: text/html URI: document.html.fr Content-language: de Content-type: text/html URI: document.html.de
維護後記
重啟Apache2.2 相關console指令
列出服務
>sudo synoserice --list
#停用
>sudo synoservice --hard-stop pkgctl-Apache2.2 #disable relation services apache2.2
#啟用
>sudo synoservice --hard-start pkgctl-Apache2.2 #此服務也要啟動
此兩指令相同:synoservice == synoservicecfg
使用Laravel Mail功能時
需安裝mail server (synloogy DSM:控制台/Mail Server /啟用SMTP)
- linux bash 設定alias , 編輯.bashrc : alias composer = 'php /var/services/homes/mac/composer.phar #set alias
若有權限copy to /usr/local/bin alias composer='php composer.phar' - linux bash 設定path , 編輯.profile : export PATH=$PATH:/var/services/homes/mac
參考: DSM 6 Service Control
參考: