因為試drupal 的node integration , 用virtual box 裝centos 6建立nodejs環境,記錄一下.
-------------------------------------------------------------------

  1. 先安裝php5.3 , mysql, phpmyadmin 及其它extension packages 
  2. yum -y update 
  3. su -c 'rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm'    //設置一下 EPEL 
  4. yum repolist 
  5. yum -y install httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-gd php-mcrypt php-xml php-mbstring php-ldap php-pear php-xmlrpc mysql-connector-odbc mysql-devel libdbi-dbd-mysql 
  6.   
  7.  
  8. /sbin/chkconfig httpd on 
  9. /sbin/chkconfig –-add mysqld 
  10. /sbin/chkconfig mysqld on 
  11.  
  12. /sbin/service httpd start 
  13. /sbin/service mysqld start 
  14. mysqladmin -u root password ‘password’ 
  15.  
  16. mysql -u root -p //新密碼 
  17. mysql> DROP DATABASE test; 
  18. mysql> DELETE FROM mysql.user WHERE user = ”; 
  19. mysql> FLUSH PRIVILEGES
  20.  
  21. 因為只是測試,把firewall都關了 
  22. service iptables stop 
  23. echo 0 >/selinux/enforce 
  24. setenforce 0 
  25.  
  26. service sshd start //用putty,winscp比較方便 
  27. winscp上傳phpmyadmin 到/var/www/html/ 
  28. config.sample.inc.php改名config.inc.php及修改. 
  29.  
  30. $cfg['blowfish_secret'] = ”;//改口令 
  31. $cfg['Servers'][$i]['controluser'] = ‘pma’; //改username 
  32. $cfg['Servers'][$i]['controlpass'] = ‘pmapass’;  //改password 
  33. // $cfg['Servers'][$i]['pmadb'] = ‘phpmyadmin’; 
  34. // $cfg['Servers'][$i]['bookmarktable'] = ‘pma_bookmark’; 
  35. // $cfg['Servers'][$i]['relation'] = ‘pma_relation’; 
  36. // $cfg['Servers'][$i]['table_info'] = ‘pma_table_info’; 
  37. // $cfg['Servers'][$i]['table_coords'] = ‘pma_table_coords’; 
  38. // $cfg['Servers'][$i]['pdf_pages'] = ‘pma_pdf_pages’; 
  39. // $cfg['Servers'][$i]['column_info'] = ‘pma_column_info’; 
  40. // $cfg['Servers'][$i]['history'] = ‘pma_history’; 
  41. // $cfg['Servers'][$i]['designer_coords'] = ‘pma_designer_coords’; 
  42. 去掉comment // 



 

  1. ------------------------------------------------------------------- 
  2. 安裝git 
  3. yum install git 
  4. 因為nodejs的版本經常更新,所以開發時可能要轉換不同的nodejs 版本. 
  5. 所以要用nvm . 
  6. git clone git:///creationix/nvm.git ~/.nvm 
  7. . ~/.nvm/nvm.sh  
  8.  
  9. yum install gcc-c++ openssl-devel //裝nodejs 時要用 
  10. nvm install v0.6.7 //安裝0.6.7版本 , 預設會裝最新的0.7.0pre 
  11. nvm ls //顯示已裝的版本 current:   v0.6.7 
  12. cd ~/.nvm/v0.6.7/bin 
  13. curl http://npmjs.org/ | sh //裝0.6.7相容的npm , nvm比nave的好處就是可以獨立的nodejs版本裝相應的npm 
  14.  
  15. -------------------------------------- 
  16. 裝多一個nodejs v0.4.7版本 
  17. nvm install v0.4.7 
  18. cd ~/.nvm/v0.4.7/bin 
  19. curl http://npmjs.org/ | sh 
  20. nvm ls //列出已安裝nodejs版本 
  21. nvm use v0.4.7 //選用想要版本 
  22. -------------------------------------- 
  23.  
  24. cd /usr/local
  25. mkdir node 
  26. 下載一個用socket.io 的realtime chat 作測試 
  27. wget http:///wp-content/lessons/realtimeChat-Socket-IO/realtimeChat_SocketIO.zip 
  28. unzip realtimeChat_SocketIO.zip -d ./realtimechat 
  29. cd realtimechat //看到兩個檔client.html , index.js 
  30. npm install socket.io@0.8.7 //因為用到socket.io 
  31. vim index.js //把最底的app.listen(1337,'127.0.0.1'); 改做你想要的port位,ip.我用virtual box 所以localhost不行,要改用內網ip 192.168.1.xxx 
  32. node index.js //看到info - socket.io started 
  33. 到http://192.168.1.xxx:1337 測試吧! 
  34.  
  35. ------------------------------------------------------------------- 
  36. nodejs 測試完畢,裝drupal 
  37.  
  38. wget --quiet -O - http:///files/projects/drush-7.x-4.4.tar.gz | sudo tar -zxf - -C /usr/local/share 
  39. ln -s /usr/local/share/drush/drush /usr/local/bin/drush 
  40.  
  41. chmod 755 -R /var/www/html 
  42. chown apache -R /var/www/html 
  43. chgrp apache -R /var/www/html 
  44. cd /var/www/html 
  45. drush dl drupal-7.10 
  46. 安裝drupalchat , nodejs integration modules 
  47. copy drupalchat_nodejs.server.extension.js 到nodejs module folder入面 
  48. cd /var/www/html/drupal-7.10/sites/all/modules/nodejs 
  49. npm install -d   //安裝socket.io,connect,express,request 
  50. copy一個nodejs.config.js 
  51. ------------------------------------------------------- 
  52. settings = { 
  53.   scheme: 'http'
  54.   port: 8080, 
  55.   host: '192.168.1.113'
  56.   resource: '/socket.io'
  57.   serviceKey: ''
  58.   backend: { 
  59.     port: 80, 
  60.     host: '192.168.1.113'
  61.     scheme: 'http'
  62.     basePath: ''
  63.     messagePath: '/nodejs/message' 
  64.   }, 
  65.   debug: false
  66.   sslKeyPath: ''
  67.   sslCertPath: ''
  68.   baseAuthPath: '/nodejs/'
  69.   publishUrl: 'publish'
  70.   kickUserUrl: 'user/kick/:uid'
  71.   logoutUserUrl: 'user/logout/:authtoken'
  72.   addUserToChannelUrl: 'user/channel/add/:channel/:uid'
  73.   removeUserFromChannelUrl: 'user/channel/remove/:channel/:uid'
  74.   addChannelUrl: 'channel/add/:channel'
  75.   removeChannelUrl: 'channel/remove/:channel'
  76.   setUserPresenceListUrl: 'user/presence-list/:uid/:uidList'
  77.   addAuthTokenToChannelUrl: 'authtoken/channel/add/:channel/:uid'
  78.   removeAuthTokenFromChannelUrl: 'authtoken/channel/remove/:channel/:uid'
  79.   toggleDebugUrl: 'debug/toggle'
  80.   contentTokenUrl: 'content/token'
  81.   publishMessageToContentChannelUrl: 'content/token/message'
  82.   "extensions":['drupalchat_nodejs.server.extension.js'], 
  83.   clientsCanWriteToChannels: false
  84.   clientsCanWriteToClients: false
  85.   transports: ['websocket''flashsocket''htmlfile''xhr-polling''jsonp-polling'], 
  86.   jsMinification: true
  87.   jsEtag: true
  88.   logLevel: 1 
  89. }; 
  90.  
  91. ---------------------------------------------------------------------- 
  92.  
  93. node server.js  
  94. 成功了..