跳到主要內容

GCE porting recommandation


GCE是Google Cloud Platform上提供虛擬主機服務的一員,承襲了Google的強大,提供了無限量的環境與相當快速的網路,Management Portal的操作設計也相當便捷,這邊有機會做一個PHP專案的Porting,順手針對Porting GCE上面的PHP程式做了個記錄,目標是Porting到一台CentOS主機,記錄的幾點注意事項,給大家參考:



  • Install LAMP
    $ sudo yum  -y  install  httpd  php  php-mysql  mysql  mysql-server
    $ sudo yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt
  • FW configure (GCE default enabled the iptables)
    $ sudo vi /etc/sysconfig/iptables
    ⇒ Add your port… link 80, 443...
  • SELinux setting (GCE default enable the SELinux)
    $ sudo vi /etc/sysconfig/selinux
    ⇒ SELINUX=disabled
  • Create persistence disk (GCE default root disk is only 10GB)


$ df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda1       9.9G  9.9G     0 100% /
tmpfs           1.8G     0  1.8G   0% /dev/shm
$ sudo mkdir -p /mnt/pd0
$ ls -l /dev/disk/by-id/google-*
lrwxrwxrwx. 1 root root  9 2013-12-23 06:55 /dev/disk/by-id/google-php-server -> ../../sda
lrwxrwxrwx. 1 root root  9 2013-12-23 11:22 /dev/disk/by-id/google-php-server-data-disk1 -> ../../sdb
lrwxrwxrwx. 1 root root 10 2013-12-23 06:55 /dev/disk/by-id/google-php-server-part1 -> ../../sda1
$ sudo /usr/share/google/safe_format_and_mount -m "mkfs.ext4 -F" /dev/disk/by-id/google-php-server-data-disk1 /mnt/pd0
safe_format_and_mount: Running: fsck.ext4 -a /dev/disk/by-id/google-php-server-data-disk1
safe_format_and_mount: fsck.ext4: Bad magic number in super-block while trying to open /dev/disk/by-id/google-php-server-data-disk1
safe_format_and_mount: /dev/disk/by-id/google-php-server-data-disk1:
safe_format_and_mount: The superblock could not be read or does not describe a correct ext2
safe_format_and_mount: ....
safe_format_and_mount: This filesystem will be automatically checked every 21 mounts or
safe_format_and_mount: 180 days, whichever comes first.  Use tune2fs -c or -i to override.
safe_format_and_mount: Running: mount -o defaults /dev/disk/by-id/google-php-server-data-disk1 /mnt/pd0
$ sudo mount -o defaults /dev/disk/by-id/google-php-server-data-disk1 /mnt/pd0
mount: /dev/sdb already mounted or /mnt/pd0 busy
mount: according to mtab, /dev/sdb is already mounted on /mnt/pd0


  • Mount persistence disk when boot

$ sudo vi /etc/fstab
UUID=a8cf...aaf98 / ext4    defaults,barrier=0 1 1
tmpfs         /dev/shm      tmpfs   defaults        0 0
devpts        /dev/pts      devpts  gid=5,mode=620  0 0

sysfs         /sys          sysfs   defaults        0 0
proc          /proc         proc    defaults        0 0 /dev/sdb /mnt/pd0 ext4 defaults 1 1

  • Setup boot level services

$ sudo chkconfig --level 23456 mysqld on
$ sudo chkconfig --level 23456 httpd on

留言

這個網誌中的熱門文章

透過Google Apps Script結合Google Form做即時郵件通知

體驗過Google Apps Script的功能後,也發現他結合GmailApps的模組 GmailApps的應用可以用在表單填寫完成後,做發信的通知 例如您開立了一個訂購的表單,為了要在第一時間通知商家有訂單進入 就可以直接呼叫Gmail做發信的通知,讓手持Smart Phone的我們可以很快的知道生意上門了! 下面規劃三個function,其中: onCommit():為form commit時候觸發的function,需要掛載於form commit trigger上 jsonArrToTable():目的將json array解析成為一個Table getLastRowTable():目的將整個table的回傳過濾為剩下第一筆(表頭,含有Form的欄位說明)與最後一筆(原則上就是剛剛送出的那一筆表單) 完整程式碼如下: function onCommit(){   var sheet = SpreadsheetApp.getActiveSheet();   var rows = sheet.getDataRange();   var numRows = rows.getNumRows();   var values = rows.getValues();   var content = getLastRowTable(values);   var htmlBody = "Hi Admin: <br/><br/>有訂單拉,檢查一下吧! <br/><br/>" + content + '<br/><br/>Send by Google Apps';   GmailApp.sendEmail(     " your-email-address@gmail.com ",      "Order Confirm Notice",      htmlBody,      {from: ' from-email-...

Share a chrome plugin for manage google cloud platform

好玩意兒報報.... 同事的新作,把Google Project List在Chrome Plugin中! 對一次管理多個專案的人來說,真得超方便的拉! 下載: https://chrome.google.com/webstore/detail/gdclauncher/bicgkglnnilldakpenngnblekooejnpg 使用說明: 1. Use browser url bar to quick search: Type "gdcl" in browser Press "TAB" to start search Type the project id key word then select the search result... 2. Using quick launch bar... You can search by keyword or click project name to go to the project or gae link to go to gae or go to billing page....

Apps Script連線MySQL或CloudSQL

Apps Script中連線資料庫也是使用jdbc connection string的方式來連結 感覺起來這邊似乎背後是透過GAE(畢竟也是Java Base的)來連線...(純猜的...) 下面先看看透過Apps Script來連線一般MySQL資料庫的方法: function testMySQL(){   var conn = Jdbc.getConnection('jdbc:mysql:// DB_IP_ADDRESS : DB_PORT / DB_NAME ', ' USERNAME ', ' PASSWORD ');     var stmt = conn.createStatement();   stmt.setMaxRows(100);   var start = new Date();   var sql = "select * from customers";   var rs = stmt.executeQuery(sql);   Logger.log('SQL:' + sql);   while(rs.next()){     Logger.log('['+new Date().toString() + ']' + rs.getString(1) + '::' + rs.getString(2) );   } } 上面範例中connection string的部份,DB_IP_ADDRESS為資料庫的IP位置,DB_PORT為資料庫的連線埠號,記得也把USERNAME與PASSWORD也改一下唷∼ 連線建立完成後,後面的操作也與Java版本相仿 透過建立statement之後,使用statment實體執行sql語句 最後透過result set將值fetch出來... 而Google的Cloud SQL也一樣可以在Apps Script中進行操作 操作之前,先了解一些資訊.... 在新的API Console中,我們可以找到Instance ID,這個值之後...