顯示具有 ubuntu 標籤的文章。 顯示所有文章
顯示具有 ubuntu 標籤的文章。 顯示所有文章

2015年5月11日 星期一

Laravel On Ubuntu 環境建置指令紀錄 (Apache + MySQL + PHP5)

一早上班就遇到很慘的事情,aws 連不進去,public key 找不到,之前也沒有 snapshot 起來,結果也只能開新的 instance。

也不是用 docker,開新 server 最煩的就是環境建置,一氣之下乾脆把安裝步驟都記起來,以免下次又要重建...,重新 google 很花時間成本。 QQ

Server 背景與用途說明:
1. 一般 web server,aws 的 micro instance,作業系統 Ubuntu 14.04.1 LTS
2. 用的是 Apache + MySQL + php (皆獨立開分安裝)
3. web framework 用的是 Laravel 4.2
4. 用 80 port 而已

Step:
$ sudo apt-get update

// 安裝 git
$ sudo apt-get install git

// 安裝 apache
$ sudo apt-get install apache2

// 安裝 mysql , php, 還有 php 需要用到的  mcrypt, 相關模組
$ sudo apt-get install mysql-server php5-mysql
$ sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
$ sudo apt-get install openssl
$ sudo apt-get install curl
$ sudo php5enmod mcrypt
$ sudo service apache2 restart
$ sudo apt-get install php5-cli

// 安裝 redis,裝完後要使用的話,記得下 redis-server 啟用它
$ sudo apt-get install redis-server


// 環境確認 (php, apache, mysql 是否都存在)
$ php -v
$ which mysql
$ which apache2

// mysql 連線測試
$ mysql -uroot -p你的mysql密碼

// 安裝 composer
$ curl -sS https://getcomposer.org/installer | php

// 測試 composer 安裝正常
$ composer
ubuntu@ip-XXX-XX-X-XX:~$ composer

// clone 專案到 /var/www
這中間要 git clone 要自己注意 clone 的方式是 https 還是 ssh, 如果是 ssh 要記得加入server的 ssh public key 到 git(端看你用什麼方式 git clone,我是 bitbucket)

*備註: 產生 ssh key   $ ssh-keygen -t rsa

會問你一些問題,不知道就一直 enter 下去。 把 id_rsa.pub 內容複製到 git/bitbucket 的 development key 管理的地方

$ cat ~/.ssh/id_rsa.pub 然後貼到設定檔去

$ cd /var/www
$ git clone git@XXX.xxx:team/repo-name.git
   或者
$ git cloen https://XXX 用打帳號密碼的方式下載

//clone 完成後,cd 專案的資料夾
$ cd /var/www/repo-name

// 先進行 composer update 下載相依的 package
$ composer update

// 對 app/storage 做 777 或 755 的權限
$ sudo chmod 0777 -R storage/

// 如果要跑 migration 建立 table 的話,記得先建好 database,不然也是會請你先建 DB
php artisan migrate

// apache virtualhost 設定
編輯 /etc/apache2/sites-available/000-default.conf
將 documentroot 設為你的專案資料夾,laravel 專案的話要指到 public 那一層。
DocumentRoot /var/www/your_folder/public

// 重啟 apache
$sudo service apache2 restart

// 因為 laravel 有 .htaccess,要做一些 apache 的 rewrite
sudo a2enmod rewrite
sudo service apache2 restart


差不多這樣就可以。

2015年5月6日 星期三

Ubuntu 安裝 phpmyadmin 並且換 Port (使用 apache)

開在 aws 的 Ubuntu 發現在連 3306 時還需要 pem 檔,有點麻煩 (因為把 pem 分享出去覺得不恰當),後來乾脆裝 phpmyadmin 可讓其他開發人員去 access database 的部分,因為第一次裝,想說紀錄一下。

但因為 80 已給 web 用,所以要調整 phpmyadmin 的 port,此文我假設已 8888 為主。

因為是測試機,為了方便,同一台 server 提供好多服務,到時候上線時,MySQL 獨立拆出使用一台 server 去服務,就沒這個問題。

ubuntu 上裝 phpmyadmin
sudo apt-get install phpmyadmin

(若已是 root 不需加 sudo)

修改 phpmyadmin 執行的 Port
安裝完成之後,比方說我要執行 phpmyadmin 在 8888 上的 port,要修改:

1. /etc/apache2/ports.conf
加上
Listen 8888
這一行。
(注意在 aws 那邊也要對外開放 8888)

2. 修改 /etc/apache2/apache2.conf
在 IncludeOptional sites-enabled/*.conf 這行之前 (要注意前後文的順序,總之 phpmyadmin 的 apache.conf 要在 site-enabled include 之前載入),加上 Include phpmyadmin 的conf:
# phpMyAdmin Configuration
Include /etc/phpmyadmin/apache.conf

# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

3.  修改 /etc/apache2/sites-available/000-default.conf (看你主要用哪個 conf)
在這個檔案加入新的 VirtualHost,如我開在 8888的 port 上:
<VirtualHost *:8888>
        Alias /phpmyadmin /usr/share/phpmyadmin
</VirtualHost>
Alias 的設定你可以參考 /etc/phpmyadmin/apache.conf 裡面的 Alias 這一行,寫的一模一樣就可以。


4. 重載與重啟 apache
sudo service apache2 restart

注意有沒有出現 fail,如果有,請參考 $ service apache2 restart [fail]

2015年3月26日 星期四

ubuntu 14.04 service nginx restart 出現 Fail 狀況

service nginx restart  執行 Fail 
今天在本來是一台 apache server 上的 Laravel,想要多架個 nginx,結果在 sudo service nginx restart 時一直出現 Fail:


(因為之前有耳聞如果 nginx 的設定檔沒有寫好,好像也會 fail,所以還有特地檢查我的 nginx 設定檔的寫法... Orz)

2015年2月21日 星期六

DigitalOcean perhaps iptables or your kernel needs to be upgraded

我的 ubnutn 是 14.04,本來今天要看一下怎麼設定防火牆,今天在下 iptables -L  時出現 『Perhaps iptables or your kernel needs to be upgraded.』 這個訊息,真是嚇死我了...
root@demo-server:~# iptables -L
modprobe: ERROR: ../libkmod/libkmod.c:556 kmod_search_moddep() could not open moddep file '/lib/modules/3.13.0-36-generic/modules.dep.bin'
iptables v1.4.21: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

後來根據官方的討論論壇,解藥:
apt-get install linux-image-$(uname -r)

再重新下 iptables -L 就可以了。
(下 iptables 需要 root 權限,sudo iptables -L,範例沒有是因為我已經是用 root 登入)


參考
* problem with iptables and ubuntu Ubuntu 13.10
* How To Set Up a Firewall Using IP Tables on Ubuntu 12.04
* 配置Ubuntu後透過SSH連線設定Host以及防火牆
* 佛祖球球-[Ubuntu]iptables 設定


2015年2月20日 星期五

Redis for Laravel on Ubuntu (14.04)

在 Laravel 設定 session 寫入到 redis。

安裝 Redis
* 通常我是用 apt-get 去安裝: apt-get install redis-server
安裝完後,試試看 redis-server 指令是否有成功。


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



2014年12月30日 星期二

Ubuntu 架設 Jenkins 紀錄


一個多月前我有在 digitalOcean 買了最小號的雲端空間,有架了一下 Jenkins,不過也忘得差不多了,紀錄一下沿途遇到的重點,這不是一篇很有價值的文章... 只是我自己的雜記而已。

  • 裝 apache (https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu)
  • 裝 Jenkins
    • sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
    • sudo apt-get update
    • sudo apt-get install jenkins
  • 設定 apache proxy
    • sudo aptitude install apache2
    • sudo a2enmod proxy
    • sudo a2enmod proxy_http
    • 記得要 service apache2 restart  重啟 apache

  • 幫 Jenkins 換 Port,可以參考這篇,主要是要把 HTTP_PORT 改成你要的 port,修改 apache 的 virtualHost。
  • sudo a2ensite jenkins
  • Reloading web server apache2
    • service apache2 reload
  • Starting Jenkins Continuous Integration Server jenkins
    • /etc/init.d/jenkins start

2013年3月29日 星期五

ubuntu安裝node.js

今天在家裝node.js裝了一個上午Orz....

以下是我的基本安裝:
sudo apt-get install curl
sudo apt-get install g++
sudo apt-get install libssl-dev

然後我發現我在ubuntu用sudo apt-get install nodejs
根本裝不起來.起初還以為是ubuntu版本問題
一直出現 無法安裝git套件的錯誤

2013年3月28日 星期四

安裝VirtualBox + 安裝ubuntu

常常每次參加聚會看別人下linux指令而我是window就很麻煩,今天終於打算要來好好安裝一下VirtualBox,有人都說這是VM,恩...不管,總之呢.. 如果是跟我一樣在windows下要另外運行linux當作練習的話,就裝這個吧!

然後我選擇的作業系統是ubuntu,剛好在今年的webconf有到ubuntu的櫃位拿了安裝光碟。

另外我所安裝的VirtualBox是Oracle這家公司的,首先先到官網:
https://www.virtualbox.org/
然後按下左邊選單的downloads
https://www.virtualbox.org/wiki/Downloads


安裝過程會等個幾分鐘,
安裝到電腦後就跟平常在安裝軟體一樣..
下面的安裝因為我都沒裝過,也沒什麼了解,基本上都是照著預設值再走.
(我的安裝順序不一定是準的,建議多到網路爬文,畢竟我也是趕時間灌好的...)

Vue multiselect set autofocus and tinymce set autofocus

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