2015年1月15日 星期四

Note: Laravel Project deploy on Ubuntu (DigitalOcean)

Laravel Project 部署在 Ubuntu 上有百百種方法,但不管怎樣都比放在 shared hosting 簡單。以下紀錄我常用的方法跟遇到的問題:


在這之前如果你還沒有嘗試過部署這件事情,有些參考文章還不錯:
INSTALL LARAVEL 4 ON UBUNTU 12.04 LTS (A HOW-TO TUTORIAL)
當然還有很多啦,只是我只有記錄到這個 :P,這其實也是我很久之前的筆記,只是最近有空一一整理起來而已...


找出 php.ini 的位置

sudo php -i | grep 'Configuration File'



確認/安裝 MySQL

通常 digitalOcean 會搭配,如果你一開始有選的話 LAMP 架構之類的。
沒有的話還是要記得安裝..



安裝相關需要的套件

apt-get install php5-mcrypt
sudo apt-get install openssl
sudo apt-get install unzip
sudo apt-get install curl
sudo php5enmod mcrypt
(裝完記得『重啟』 apache2 server)



安裝 composer

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer


網站的資料夾該放哪?

這個嘛... 要看你 apache 怎麼裝
我是放在 /var/www/
Ex: 專案 Folder 為 myproject
就放在 /var/www/myproject


apache site-available 設定

這個也是模稜兩可,我的 apache 設定是在 /etc/apache2/sites-available/000-default.conf,通常我會把 000-default.conf 備份一個最原始的版本為 000-default.conf.bak,然後再修改 000-default.conf 為我要的。

然後 documentRoot 是指到專案下的 public 資料夾
Example: DocumentRoot /var/www/YOUR_PROJECT/public



遇到 file_put_contents failed to open stream: Permission denied 訊息

修改路徑: /etc/apache2/apache2.conf
把 apache2.conf 的所有的 AllowOverride None 改成 ALL。



遇到所有的 route 都出現 404 error

sudo a2enmod rewrite
sudo service apache2 restart


記得把 app/storage 打開權限
某則無法紀錄 log 或是 session 等~
必要時你可以開啟 debug mode,直接看錯在哪裡比較快



重啟 apache 出現 Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

到 /etc/apache2 的 apache.conf 加這一行 ServerName localhost



沒有留言:

張貼留言

若你看的文章,時間太久遠的問題就別問了,因為我應該也忘了... XD

Vue multiselect set autofocus and tinymce set autofocus

要在畫面一進來 focus multiselect 的方式: 參考: https://jsfiddle.net/shentao/mnphdt2g/ 主要就是在 multiselect 的 tag 加上 ref (例如: my_multiselect), 另外在 mounted...