2014年7月23日 星期三

ubuntu 安裝 nginx,並設定 virtual hosts

1. 安裝 nginx 與 PHP5

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install nginx
$ sudo apt-get install fcgiwrap php5-fpm php5-xcache php5-mysql php5-pgsql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl


2. 創建要放置網頁檔案的磁碟路徑(放在/var/www/之下)

$ sudo mkdir -p /var/www/yourdomain1.com/html
$ sudo mkdir -p /var/www/yourdomain2.com/html

$ sudo chown -R www-data:www-data /var/www/yourdomain1.com/html
$ sudo chown -R www-data:www-data /var/www/yourdomain2.com/html

$ sudo chmod -R 755 /var/www


3. 編寫 index.html

$ sudo vi /var/www/yourdomain1.com/html/index.html
$ sudo vi /var/www/yourdomain2.com/html/index.html

範例如下:

<html lang="zh-TW">
  <head>
 
    <title>page title</title>
    <script src="my-javascript-file.js"></script>
    <link href="my-css-file.css" rel="stylesheet"></link>
  </head>
  <body>
    <!-- 網頁內容就放在body內吧 -->
    Hello, yourdomain1.com <!-- 或是 yourdomain2.com -->
  </body>
</html>


4. 設定第一個網站設定檔

$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/yourdomain1.com
$ sudo vi /etc/nginx/sites-available/yourdomain1.com

修改設定檔內容:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /var/www/yourdomain1.com/html;
    index index.html index.htm index.php;

    server_name yourdomain1.com www.yourdomain1.com;

    location / {
        try_files $uri $uri/ =404;
    }
}

5. 設定第二個網站設定檔

$ sudo cp /etc/nginx/sites-available/yourdomain1.com /etc/nginx/sites-available/yourdomain2.com
$ sudo vi /etc/nginx/sites-available/yourdomain2.com

修改設定檔內容,注意listen設定有些不同:

server {
    listen 80;
    listen [::]:80;

    root /var/www/yourdomain2.com/html;
    index index.html index.htm index.php;

    server_name yourdomain2.com www.yourdomain2.com;

    location / {
        try_files $uri $uri/ =404;
    }
}

6. 讓兩個網站的設定檔案生效

$ sudo ln -s /etc/nginx/sites-available/yourdomain1.com /etc/nginx/sites-enabled/
$ sudo ln -s /etc/nginx/sites-available/yourdomain2.com /etc/nginx/sites-enabled/


7. 移除預設設定檔案

$ sudo rm /etc/nginx/sites-enabled/default


8. 修改 nginx.conf

$ sudo vi /etc/nginx/nginx.conf

將 server_names_hash_bucket_size: 64; 前面的註解符號 # 移除,然後存檔離開


9. 重新啟動 nginx

$ sudo service nginx restart


10. 修改 hosts,新增網站資料

$ sudo vi /etc/hosts

新增
192.168.1.80 yourdomain1.com
192.168.1.80 yourdomain2.com


11. 設定開機時,自動啟動nginx服務

$ sudo update-rc.d nginx defaults


#

2014年3月30日 星期日

ubuntu 安裝 SSH Server

先確認 /usr/sbin/sshd 是否存在,若已存在則繼續使用 ps -ef | grep ssh 確認 sshd (SSH Server) 是否執行。

若sshd檔案存在,只是尚未執行,可啟動ssd。

$ sudo /etc/init.d/ssh start


若以上皆確認不存在,則可以

$ sudo apt-get install openssh-server

進行安裝 SSH Server。

$ ssh localhost

設定開機時自動啟動 SSH Server。

$ sudo update-rc.d ssh defaults

測試一下

#

ASUS VC60 i3-3110M 安裝 ubuntu 14.04 (beta2)

先至 Ubuntu 官方網站下載 Ubuntu 14.04 (Beta 2) Desktop 64bits ISO
http://releases.ubuntu.com/14.04/ubuntu-14.04-beta2-desktop-amd64.iso

把iso檔案燒錄至USB隨身碟中,Windows 電腦可以使用 Win32 Disk Imager完成燒錄。

以Ubuntu 14.04 USB隨身碟開機,可試用、可安裝至ASUS VC60 i3-3110M的無作業系統版電腦。

測試結果:
Ubuntu 13.04 Desktop 64bits : 不支援VC60的無線網路卡、支援S/PDIF數位音效輸出及類比輸出
Ubuntu 13.10 Desktop 64bits : 無法完成開機(不知道原因為何)
Ubuntu 14.04 (Beta 2) Desktop 64bits : 支援VC60的無線網路卡、支援S/PDIF數位音效輸出及類比輸出

$ uname -a
Linux myhost 3.13.0-20-generic #42-Ubuntu SMP Fri Mar 28 09:56:33 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux


好機器,不買嗎?:P

#

2014年2月3日 星期一

Mac OS X 10.9.1 + Wintec WBT-100 GPS Data Logger

準備工作:完成藍芽配對與應用程式安裝

完成 WBT-100 GPS 與 Mac OS X 藍芽配對

gpsbabel.org 下載 GPSBabel-1.4.4.dmg 並完成安裝


方法一:以GUI方式操作應用程式GPSBabelFE

螢幕快照 2014-02-03 上午12.50.36.png

選取 Device , 範例為 /dev/cu.WBT100-SPPslave

螢幕快照 2014-02-03 上午12.50.52.png

Download Format 為 Wintec WBT-100/200 GPS Download

螢幕快照 2014-02-03 上午12.52.06.png

設定Output Format為GPX XML, 範例 File Name 為 mytrack

螢幕快照 2014-02-03 上午12.59.17.png 螢幕快照 2014-02-03 上午12.53.55.png

按下Apply執行後,經過一小段時間,即可將GPS Data log 自WBT-100下載完成囉

螢幕快照 2014-02-03 上午12.54.11.png

以 Google Earth 開啟 mytrack

螢幕快照 2014-02-03 上午1.03.10.png


方法二:開終端機直接下指令

/Applications/GPSBabelFE.app/Contents/MacOS/gpsbabel -i wbt -f/dev/cu.WBT100-SPPslave -o gpx -F ~/Desktop/mytrack.gpx

2013年12月19日 星期四

ubuntu networking interface 設定


使用情境:
  • eth0固定網卡 / wlan0無線網卡 各一
  • 配置固定IP (eth0: 192.168.1.XX / wlan0: 192.168.1.YY)
  • private network : 192.168.1.XXX
  • gateway : 192.168.1.1

/etc/network/interfaces 設定檔內容:

auto lo
iface lo inet loopback
iface eth0 inet static
address 192.168.1.XX
netmask 255.255.255.0
gateway 192.168.1.1

allow-hotplug wlan0
iface wlan0 inet static
wpa 2
wpa-ssid <YOUR_SSID>
wpa-psk <YOUR_PASSWORD>
address 192.168.1.YY
netmask 255.255.255.0
gateway 192.168.1.1


*以上也適用 Raspberry Pi / Wheezy 環境

#

2013年11月29日 星期五

Mac OS X 安裝及使用  Homebrew

ubuntu apt 用習慣的朋友,應該也能很快適應 Homebrew for Mac OS X的。

安裝步驟參考官網及實際經驗筆記如下:
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"
> brew update

接著就能安裝自己想要的 UNIX Packages,如:wget, curl, lynx ...
> brew install wget
> brew install lynx

查詢經安裝的套件列表 
> brew list

或是想要移除已經安裝的套件
> brew uninstall wget

自動更新已經安裝的套件
> brew upgrade wget

其他功能可以藉由Help看指令參數及用法 
> brew help


延伸閱讀: 

#

2013年11月18日 星期一

Ubuntu precise amd64 安裝筆記


# apt-get update & 
sudo apt-get -y update
sudo apt-get dist-upgrade
sudo apt-get --no-install-recommends -y install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev libgdbm-dev ncurses-dev automake libtool bison subversion pkg-config libffi-dev vim

# install python
sudo apt-get install build-essential
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
cd /tmp
wget http://python.org/ftp/python/2.7.6/Python-2.7.6.tgz
tar -xvf Python-2.7.6.tgz
cd Python-2.7.6
./configure
make
sudo make altinstall

# install easy_install for python 2.7
cd ..
sudo apt-get install python-setuptools

# install Flask for python
sudo easy_install Flask

# prepare to install uwsgi, nginx
sudo useradd -r -g www-data -s /bin/false uwsgi
sudo mkdir -p /var/www/myapp
sudo chown uwsgi:www-data /var/www/myapp -R
sudo useradd -G www-data myuser
sudo usermod -a -G www-data myuser

# install uwsgi
sudo pip install uwsgi
sudo mkdir -p /var/log/uwsgi
sudo touch /var/log/uwsgi/myapp.log
cd /var/www/myapp
sudo vi uwsgi.xml
sudo /usr/local/bin/uwsgi -x uwsgi.xml

# install nginx
sudo apt-get install nginx
sudo service nginx start
cd /etc/nginx/
cd sites-enabled/
sudo vi default


uwsgi.xml

<?xml version="1.0"?>
<uwsgi id="myapp">
  <module>application:app</module>
  <socket>/tmp/uwsgi.sock</socket>
  <socket>127.0.0.1:8000</socket>
  <processes>4</processes>
  <chdir>/var/www/myapp</chdir>
  <pidfile>/tmp/myapp.pid</pidfile>
  <daemonize>/var/log/uwsgi/myapp.log</daemonize>
  <stats>/tmp/myapp.stats</stats>
  <log-format>``%(addr) - %(user) [%(ltime)] "%(method) %(uri) %(proto)" %(status) %(size) `` "%(referer)" "%(uagent)"</log-format>
  <uid>uwsgi</uid>
  <gid>www-data</gid>
  <chmod-socket>775</chmod-socket>
</uwsgi>

/etc/nginx/sites-enabled/default

server {
        listen 8080;
        root /var/www/myapp;
        server_name myapp;

        try_files $uri @uwsgi;
        location @uwsgi {
                include uwsgi_params;
                uwsgi_pass unix:/tmp/myapp.sock;
        }
}