[Laravel] LAMP+Laravel 學習筆記-安裝

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為例
    1. sudo apt-get install apache2
    2. sudo apt-get intstall php  #php7
    3. sudo apt-get intall mysql-server
    4.  或以上直接安裝lamp : sudo apt-get install lamp-server
    5. sudo  apt-get intall phpmyadmin
  •    以synology DSM6+為例
    1. 安裝webstation
    2. 安裝phpmyadmin
    3. 安裝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錯誤
    1. 檢查log確定原因 
      1. synology DSM6+  ; /var/log/httpd/apach2*.log
      2. ubuntu:/var/log/apache2/*.log
         
    2. 權限問題*    #使用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/
    3. app_key問題
      php56 artisan key:generate  #php56 artisan k:g
    4. 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 畫面

server 終於搞定, 可以往下一步邁進


 



3.Laravel 基本功能實作
4.Vue.js 安裝 Vue.js (not AngularJS )  : 輕巧的前端framework,動態binding   
 

  • 註1:multiview(可讓網站支援多國語言如下)
  1. 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 
參考: