文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>复制一下,免得下次翻越围墙

复制一下,免得下次翻越围墙

时间:2010-07-15  来源:ywencn

分享: <!-- MURMUR --> <!-- facebook --> <!-- PLURK --> <!-- twitter --> <!-- Del.icio.us --> <!-- Funp iframe -->

在Ubuntu9.10下安裝REE + Passenger + Rails + MySql + Phpmyadmin + Nginx 


從Ubuntu 9.10剛裝好的狀態開始進行。


安 裝環境:

Ubuntu Desktop 9.10 32-bit

在開始之前請先透過更新程式將Ubuntu升級到最新 版。


建議可以安裝chkconfig檢查常駐程式狀態,在命令列下:
sudo apt-get install chkconfig
開機服務啟動管理套件:
sudo apt-get install sysv-rc-conf
將 vim的連結建立起來:
sudo ln -s /usr/bin/vim.tiny /bin/vim


最好一開始就先安裝好mysql-server與 mysql-client
sudo apt-get install mysql-server
sudo apt-get install mysql-client


1. 到REE官方網站下載,特別注意的是Ubuntu的使用者務必下載Ubuntu的專屬版本
連結在此:http://rubyforge.org /frs/download.php/66164/ruby-enterprise_1.8.7-2009.10_i386.deb 
使用 wget指令下載REE
例如在家目錄:
sudo wget http://rubyforge.org/frs/download.php/66164/ruby-enterprise_1.8.7-2009.10_i386.deb 


2. 因為下載下來的是壓縮檔,因此下載完畢後執行安裝動作:
sudo dpkg -i ruby-enterprise_1.8.7-2009.10_i386.deb 


3. 安裝的檔案會放置在/usr/local/bin/中,請檢查是否有以下指令程式:

REE所安裝的程式都在此,因此未來如果需要移除,將這個目錄/usr/local/bin砍掉就好了。


4. 接下來把沒有裝完的程式都裝進去吧,例如最重要的rails,在/usr/local/bin的目錄下執行:
sudo gem install rails


5. 再來安裝ruby的mysql套件。在使用gem安裝mysql時可能會遇到缺乏檔案的問題。例如以下畫面:



因為欠缺mysql的開發版本,因此我們需要下載libmysqlclient15-dev這個套件
sudo apt-get install libmysqlclient15-dev 
用以上的指令把他安裝下來吧。
然後再一次安裝mysql:
sudo gem install mysql


成功了!


6.(訂正 此步驟可省略)

下一步來建立指令的軟連結,使用ln指令來進行。首先到/bin的目錄下,這邊指 的是根目錄下的bin。
開始建立ruby的連結
sudo ln -s /usr/local/bin/ruby /bin/ruby
馬上測試:ruby -v 這樣會跑出ruby的版本。
一 口氣把常用的幾個連結都建立起來吧。
sudo ln -s /usr/local/bin/gem /bin/gem
sudo ln -s /usr/local/bin/rake /bin/rake
sudo ln -s /usr/local/bin/irb /bin/irb


7. 安裝網頁伺服器nginx與passenger
為什麼不直接透過passenger-install-ngnix-module來安裝 nginx?因為直接安裝系統會欠缺部分檔案,例如PCRE,還有自動安裝也非最新版本,未來可能會出現一些奇怪的現象。
目前採用手動下載 nginx的方式來進行。首先下載nginx的原始碼,先到官方首頁的下載頁面http://nginx.org/en/download.html
下 載最新版本。在此使用nginx-0.8.32
在想存放檔案的目錄下輸入以下指令:
sudo wget http://nginx.org/download/nginx-0.8.32.tar.gz
然 後對此檔案進行解壓縮:
sudo tar zxvf nginx-0.8.32.tar.gz
解壓縮後會產生一個同名的目錄。把這個目錄的路徑記住然後進行下一步。 

8. 安裝nginx

在安裝nginx之前先要安裝nginx中會用到的PCRE套件
在PCRE的官網下載最新的PCRE套 件:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.00.tar.gz
下 載到家目錄指令
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.00.tar.gz
然 後解壓縮
tar zxvf pcre-8.00.tar.gz
但 是因為現在還欠缺一些套件,所以無法順利的安裝PCRE,先進行下一步。


回到/usr/local/bin目錄中執行以下指令:
sudo passenger-install-nginx-module
這 時候程式會開始檢查所需要的套件,如果有缺少需要的套件時會出現以下畫面:


別擔心,安裝程式在這邊會告訴你怎麼做:

 
例如在這邊只要依序輸入以下順序:
sudo apt-get install build-essential
sudo apt-get install libssl-dev
sudo apt-get install zlib1g-dev


在這邊先不急著回 去執行passenger-install-nginx-module的安裝;因為以上安裝的套件正好可以讓PCRE安裝起來。所以現在回到PCRE的目 錄中執行以下指令:
然後開始進行配置與安裝:
./configure
make
sudo make install
這樣就能把PCRE給安裝起來了。


套件安裝安畢後可以開始進行nginx與 passenger的安裝了。回到passenger-install-nginx-module的目錄上。
再次輸入以下指令(這次應該沒問題 了):
sudo passenger-install-nginx-module
安裝程式會詢問安裝nginx的方式,選擇1是全自動安裝,選擇2 是手動安裝;在這邊我們選擇2手動安裝。
程式會要求nginx的原始目錄,請輸入之前放置nginx的位置,例如/home/user /nginx-0.8.32。


 
接下來一切照預設的步驟,按下yes或enter進行。
然後等待nginx安裝完畢,然後參考以下步驟建立 nginx的script管理檔案,方便管理ngnix:
(參考以下資料:http://antoniocangiano.com/2009/11/20/setup-ruby-enterprise-edition-nginx-and-passenger-aka-mod_rails-on-ubuntu/ )
sudo vim /etc/init.d/nginx
貼上以 下的程式:


#! /bin/sh


### BEGIN INIT INFO
# Provides:          nginx
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the nginx web server
# Description:       starts nginx using start-stop-daemon
### END INIT INFO


PATH=/opt/nginx/sbin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/opt/nginx/sbin/nginx
NAME=nginx
DESC=nginx


test -x $DAEMON || exit 0


# Include nginx defaults if available
if [ -f /etc/default/nginx ] ; then
    . /etc/default/nginx
fi


set -e


. /lib/lsb/init-functions


case "$1" in
  start)
    echo -n "Starting $DESC: "
    start-stop-daemon --start --quiet --pidfile /opt/nginx/logs/$NAME.pid \
        --exec $DAEMON -- $DAEMON_OPTS || true
    echo "$NAME."
    ;;
  stop)
    echo -n "Stopping $DESC: "
    start-stop-daemon --stop --quiet --pidfile /opt/nginx/logs/$NAME.pid \
        --exec $DAEMON || true
    echo "$NAME."
    ;;
  restart|force-reload)
    echo -n "Restarting $DESC: "
    start-stop-daemon --stop --quiet --pidfile \
        /opt/nginx/logs/$NAME.pid --exec $DAEMON || true
    sleep 1
    start-stop-daemon --start --quiet --pidfile \
        /opt/nginx/logs/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS || true
    echo "$NAME."
    ;;
  reload)
      echo -n "Reloading $DESC configuration: "
      start-stop-daemon --stop --signal HUP --quiet --pidfile /opt/nginx/logs/$NAME.pid \
          --exec $DAEMON || true
      echo "$NAME."
      ;;
  status)
      status_of_proc -p /opt/nginx/logs/$NAME.pid "$DAEMON" nginx && exit 0 || exit $?
      ;;
  *)
    N=/etc/init.d/$NAME
    echo "Usage: $N {start|stop|restart|reload|force-reload|status}" >&2
    exit 1
    ;;
esac


exit 0


然後改變檔案屬性:
sudo chmod +x /etc/init.d/nginx
設定開機時啟動,可以從畫面中看到主要的幾個啟動模式被設定。
sudo /usr/sbin/update-rc.d -f nginx defaults


9. 使用以下指令安裝phpmyadmin。安裝時請記得輸入的mysql管理密碼。
sudo apt-get install phpmyadmin
安 裝成功後到瀏覽器列輸入以下網址查看是否成功:
localhost/phpmyadmin


首先用sudo service apache2 stop 關閉Apache
然 後啟動sudo sysv-rc-conf 關閉 apache2在開機時的服務


10. 接下來把phpmyadmin的網頁伺服器改成nginx;這需要完成以下步驟:
安 裝php5-cgi: 
sudo apt-get install php5-cgi
sudo apt-get install spawn-fcgi
建立pcgi檔到家目錄,然後更改權 限:

sudo vim pcgi

 

#!/bin/sh
PROVIDES=php-cgi
FCGI=/usr/bin/spawn-fcgi
SERVER_IP=127.0.0.1
SERVER_POST01=9000
SERVER_POST02=9001
SERVER_POST03=9002
SERVER_POST04=9003
SERVER_POST05=9004
SERVER_USER=www-data
SERVER_GROUP=www-data
PHP_CGI=/usr/bin/php-cgi
PGREP=/usr/bin/pgrep
KILLALL=/usr/bin/killall
CHILDREN=6
cmd=$1
 
pcgi_start() {
    echo "Starting $PROVIDES..."
    $FCGI -a $SERVER_IP -p $SERVER_POST01 -u $SERVER_USER -g $SERVER_GROUP -f $PHP_CGI -C $CHILDREN
    $FCGI -a $SERVER_IP -p $SERVER_POST02 -u $SERVER_USER -g $SERVER_GROUP -f $PHP_CGI -C $CHILDREN
    $FCGI -a $SERVER_IP -p $SERVER_POST03 -u $SERVER_USER -g $SERVER_GROUP -f $PHP_CGI -C $CHILDREN
    $FCGI -a $SERVER_IP -p $SERVER_POST04 -u $SERVER_USER -g $SERVER_GROUP -f $PHP_CGI -C $CHILDREN
    $FCGI -a $SERVER_IP -p $SERVER_POST05 -u $SERVER_USER -g $SERVER_GROUP -f $PHP_CGI -C $CHILDREN
}
 
pcgi_stop() {
    echo "Killing $PROVIDES..."
    $KILLALL $PROVIDES
}
 
pcgi_restart() {
    pcgi_stop
    pcgi_start
}
 
 
pcgi_status() {
    $PGREP $PROVIDES > /dev/null
    [ $? -eq 0 ] && echo "$PROVIDES running." || echo "$PROVIDES not running."
}
 
pcgi_help() {
    echo "Usage: $0 {start|stop|restart|status}"
}
 
case ${cmd} in
[Ss][Tt][Aa][Rr][Tt]) pcgi_start;;
[Ss][Tt][Oo][Pp]) pcgi_stop;;
[Rr][Ee][Ss][Tt][Aa][Rr][Tt]) pcgi_restart;;
[Ss][Tt][Aa][Tt][Uu][Ss]) pcgi_status;;
*) pcgi_help;;
esac

sudo chmod +x pcgi
sudo ./pcgi start 啟動php-cgi
(對應php程式的port是寫在php-cgi中,如果需要變動必須改寫 pcgi)
用ps aux檢查程序的php-cgi是否已啟動
然後編輯/opt/nginx/conf/nginx.conf:
sudo vim /opt/nginx/conf/nginx.conf
把 user從nobody改成www-data www-data,如下圖:


然後將http{}裡的log_format區塊的註解拿掉。


在http {}底下插入以下設定:
include "/opt/nginx/conf/extra/*";
代表將extra目錄內的設定一次帶入,但目前 還未建立extra目錄。
新增一個資料夾在/opt/nginx/conf底下,例如extra:
sudo mkdir extra
目前用 phpmyadmin.conf管理phpmyadmin的設定,upstream-fair.conf管理fcgi與nginx之間的連結。
修 改phpmyadmin.conf


server {
    listen       80;
    server_name  sqladmin;
    charset utf-8;


    access_log      /var/log/nginx/sqladmin.access.log main;


    error_page  404              /404.html;
    location = /404.html {
        root   /usr/local/nginx/html;
    }


    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/local/nginx/html;
    }


    location ~ ^/(images|javascripts|stylesheets)/ {
       root   /usr/share/phpmyadmin;
       expires 30d;
    }


    location / {
        # allow 121.162.231.64;
        # allow 117.89.223.67;
        #deny all;
        root   /usr/share/phpmyadmin;
        index  index.php;
    }


    location ~ \.php$ {
        root   /usr/share/phpmyadmin;
        fastcgi_pass phpcgi;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

phpmyadmin.conf


修改 server_name的參數以符合需求,另外不能限制能夠進入的ip,例如:
location / {
# allow 121.162.231.64;
# allow 117.89.223.67;
# deny all;
}
允許則用 allow,拒絕則用deny all;
新增/var/log/ngnix目錄以符合phpmyadmin.conf裡的設定
修改 upstream.conf,需要符合pcgi內所設定的port

 upstream phpcgi {

     server 127.0.0.1:9000;

     server 127.0.0.1:9001;

     server 127.0.0.1:9002;

     server 127.0.0.1:9003;

     server 127.0.0.1:9004;
 }

upstream-fair.conf

 

下一步就是新增一個 rails應用程式,首先到欲建立應用程式的目錄中執行:
rails app_name
app_name就是應用程式的名稱。

在extra下面新增一個 檔案:rails.conf

然後在 rails.conf檔案中輸入以下:

server {
listen 80;
server_name app_name;
root /home/user/rails/app_name/public;
passenger_enabled on;
rails_spawn_method smart;
rails_env development;
}

rails.conf



其中要注 意的是如果要改成產品模式,記得將rails_env developement;這行給註解掉
然後重新啟動ngnix:
sudo service nginx restart


11. 最後到根目錄下的/etc找到hosts這個檔案,進入編輯修改以符合上一個步驟中的server_name

127.0.0.1 app_name


12. 進入瀏覽器,在網址列輸入在hosts中設定的server_name,例如以上的app_name美妙的rails應用程式開啟成功畫面映入眼簾。而輸 入sqladmin也可以看到phpmyadmin了。

 

 

http://newbieror.pixnet.net/blog/post/4158023

相关阅读 更多 +
排行榜 更多 +
ooxe官方版下载

ooxe官方版下载

金融理财 下载
ooxe

ooxe

金融理财 下载
OXE交易app安卓版下载

OXE交易app安卓版下载

金融理财 下载