Tuesday, April 22, 2014

Single sign on for web applications

Trial on Atlassian Crowd

current application on
1. Ruby on rails - using devise gem
2. Java EE application.

to be cont....

Thursday, April 3, 2014

Postgresql kill process

select * from pg_stat_activity;
select pg_cancel_backend([procpid]);

What if you revoke an SSL cert?

After revoke, client may see on firefox (may not be the case on Chrome):


To by-pass the checking in firefox, do this but not recommended:


Uncheck the checking option under validation button.



Thursday, January 2, 2014

IT Director Responsibilities and Duties

IT Director Responsibilities and Duties


Coordinate with management in developing business strategic plans and operating policies.

Coordinate with business teams to analyze project contracts, proposals, requirements, and service level agreements.

Assist in developing project budgets and timelines.

Utilize project management experience to lead various global and regional projects.

Evaluate and revise project plan to meet changing project demands.

Manage project planning, staffing, schedule and expenses.

Oversee everyday project operations to ensure timely delivery.

Oversee the availability of application and infrastructure for project execution.

Identify and assign resources to IT projects.

Organize project status meetings with customers and team members.

Interact with customers to design and execute business solutions.

Ensure project deliverables meet highest quality standards and customer requirements.

Develop departmental standards and ensure that staffs adhere to these standards.

Provide analytical and technical assistance to project team.

Collaborate with management on application development, enhancement, and deployment activities.

Evaluate project proposals and change requests and make necessary recommendations for approval or rejection of proposals.

Tuesday, December 24, 2013

Friday, December 13, 2013

Rails - Define class method in module file

module PicturePartials
module Cse

def self.included(base)
base.extend ClassMethods
end

module ClassMethods
def find_by_picture_id(picture_id)
Picture.joins(:picture).where('picture_id = ?', picture_id).first
end
end


end
end

Thursday, November 28, 2013

Ubuntu upgrade postgresql server from 8.4 to 9.2

Thursday, November 14, 2013

Restart network interface

sudo /etc/init.d/networking restart

Ubuntu find versions

uname -a (for kernel version)

lsb_release -a (for ubuntu version)

sudo fdisk -l (for partition info)

Wednesday, October 23, 2013

Ubuntu start Tomcat on boot

Automatic Starting

To make tomcat automatically start when we boot up the computer, you can
add a script to make it auto-start and shutdown.

sudo vi /etc/init.d/tomcat

Now paste the following content:

# Tomcat auto-start
#
# description: Auto-starts tomcat
# processname: tomcat
# pidfile: /var/run/tomcat.pid

export JAVA_HOME=/usr/lib/jvm/java-6-sun

case $1 in
start)
sh /usr/local/tomcat/bin/startup.sh
;;
stop)
sh /usr/local/tomcat/bin/shutdown.sh
;;
restart)
sh /usr/local/tomcat/bin/shutdown.sh
sh /usr/local/tomcat/bin/startup.sh
;;
esac
exit 0
You'll need to make the script executable by running the chmod command:

sudo chmod 755 /etc/init.d/tomcat

The last step is actually linking this script to the startup folders
with a symbolic link. Execute these two commands and we should be on our
way.

sudo ln -s /etc/init.d/tomcat /etc/rc1.d/K99tomcat

sudo ln -s /etc/init.d/tomcat /etc/rc2.d/S99tomcat

Tuesday, October 15, 2013

Install webmin on Ubuntu

1. Download from http://www.webmin.com
2. sudo dpkg -i webmin_x.xxxx_all.deb  (with error)
3. sudo apt-get install -f (will fix the error)
4. https://xxx.xxx:1000
DONE

Tuesday, October 8, 2013

diagnostic cap deploy permission denied public key

Problem:

xxxxx@xxxxx:~/RubyProjects/xxxxx$ bundle exec cap xxxxx deploy:migrations
/usr/local/rvm/gems/ree-1.8.7-2012.02@global/gems/bundler-1.1.4/lib/bundler/runtime.rb:211: warning: Insecure world writable dir /usr/local/rvm/gems in PATH, mode 042777
/usr/local/rvm/gems/ree-1.8.7-2012.02@global/gems/bundler-1.1.4/lib/bundler/runtime.rb:211: warning: Insecure world writable dir /usr/local/rvm/gems in PATH, mode 042777
  * executing `xxxxx'
    triggering start callbacks for `deploy:migrations'
  * executing `multistage:ensure'
  * executing `eighties_bands:ensure'
  * executing `deploy:migrations'
  * executing `deploy:update_code'
    updating the cached checkout on all servers
    executing locally: "git ls-remote git@xxxxx.unfuddle.com:xxx/xxxxx.git xxxxx-4"
    command finished in 4746ms
  * executing "if [ -d /home/xxxxx/deploy/shared/cached-copy ]; then cd /home/xxxxx/deploy/shared/cached-copy && git fetch -q origin && git reset -q --hard b40a43e351c2107de5c6bc8dae0c70de86465305 && git clean -q -d -x -f; else git clone -q  git@xxx.unfuddle.com:xxx/xxxxx.git /home/xxxxx/deploy/shared/cached-copy && cd /home/xxxxx/deploy/shared/cached-copy && git checkout -q -b deploy b40a43e351c2107de5c6bc8dae0c70de86465305; fi"
    servers: ["115.160.152.28"]
    [115.160.152.28] executing command
 ** [115.160.152.28 :: err] Permission denied (publickey).
 ** [115.160.152.28 :: err] fatal: The remote end hung up unexpectedly
    command finished in 13024ms
failed: "sh -c 'if [ -d /home/xxxxx/deploy/shared/cached-copy ]; then cd /home/xxxxx/deploy/shared/cached-copy && git fetch -q origin && git reset -q --hard b40a43e351c2107de5c6bc8dae0c70de86465305 && git clean -q -d -x -f; else git clone -q  git@xxx.unfuddle.com:xxx/xxxxx.git /home/xxxxx/deploy/shared/cached-copy && cd /home/xxxxx/deploy/shared/cached-copy && git checkout -q -b deploy b40a43e351c2107de5c6bc8dae0c70de86465305; fi'" on 115.160.152.28

Reason:
  git login failed on target machine.

Checkings:
ssh -v git@xxx.unfuddle.com
  • Check this on deployment machine and target server
  • If success, should see this: Authentication succeded (publickey).
  • If denied, will see this: debug1: Authentications that can continue: publickey
    • This means the connection to git server is denied.
Solution:
On deployment machine,

  • ForwardAgent yes (.ssh/config)
  • Check if ssh-agent is running
    • ps aux | grep ssh
  • Add key to ssh:
    • ssh-add ~/.ssh/id_rsa
  • Check key:
    • ssh-add -l
  • Done

Wednesday, September 25, 2013

Tuesday, September 24, 2013

Change ubuntu apt-get mirror site

sudo vi /etc/apt/sources.list

deb http://ftp.cuhk.edu.hk/pub/Linux/ubuntu precise main restricted
universe multiverse
deb-src http://ftp.cuhk.edu.hk/pub/Linux/ubuntu precise main restricted
universe multiverse

deb http://ftp.cuhk.edu.hk/pub/Linux/ubuntu precise-updates main
restricted universe multiverse
deb-src http://ftp.cuhk.edu.hk/pub/Linux/ubuntu precise-updates main
restricted universe multiverse

:wq

sudo apt-get update

(e.g.) sudo apt-get install maven

Allow remote access to postgres sql

edit /etc/postgresql/9.1/main/postgresql.conf

listen_address = '*'

edit /etc/postgresql/9.1/main/pg_hba.conf

replace the config with:

host all all 0.0.0.0/0 md5

Check 32 bit or 64 bit Ubuntu version

uname -a

Result for 32-bit Ubuntu:

Linux discworld 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC
2011 i686 i686 i386 GNU/Linux

whereas the 64-bit Ubuntu will show:

Linux discworld 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC
2011 x86_64 x86_64 x86_64 GNU/Linux

Wednesday, September 4, 2013

Backup postgresql using pgdump

>sudo su - postgres
>pg_dump some_database_name > somename.sql

Tuesday, July 23, 2013

Mysql dump backup and restore all database

Backup:

  mysqldump --flush-privileges --all-database -p > mysqldump.all.database.20130723.sql


Restore:

  mysql -u root -p < mysqldump.all.database.20130723.sql

Monday, July 22, 2013

Solved: apt-get install 404 Not Found

sudo apt-get update

Solve: apache You don't have permission to access / on this server

In httpd.conf

<Directory />
    #Options FollowSymLinks
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order deny,allow
    Allow from all
</Directory>

Thursday, May 2, 2013

Ubuntu change name/ hostname


# vim /etc/hostname
內容改為自己要的名字
# vim /etc/hosts
這邊最好也要改,免得有些 service 會出錯
# /etc/init.d/hostname.sh or # sudo service hostname restart
重新啟動
# hostname
驗證是否已經修改完畢。

Tuesday, April 30, 2013

postgresql create drop user

Postgresql server start

Use the following command (from terminal) to control the PostgreSQL server
Start the service : /etc/init.d/postgresql start
Stop the service : /etc/init.d/postgresql stop
Know the status : /etc/init.d/postgresql status
Restart the service : /etc/init.d/postgresql restart

Read more: http://linuxpoison.blogspot.tw/2012/01/how-to-install-configure-postgresql.html#ixzz2RutcjeNH

Thursday, April 25, 2013

ubuntu fix ip

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

File: /etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static


address 192.168.8.188
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.225
gateway 192.168.8.1
dns-nameservers 192.168.8.201 202.130.97.65

sudo /etc/init.d/networking restart


mac hosts file

sudo vi /private/etc/hosts

Install apache for ruby on rails on Ubuntu

  1. Install apache2
    1. sudo apt-get update
    2. sudo apt-get install apache2
  2. Enable https
    1. sudo a2enmod ssl
      sudo a2ensite default-ssl

      sudo service apache2 restart
  3. Install Passenger
    1. gem install passenger
    2. passenger-install-apache2-module
    3. sudo apt-get install libcurl4-openssl-dev
    4. rvmsudo rvm get head && rvm reload && rvm repair all
    5. Permission denied -> chmod 777...

Install passenger on ubuntu

Ubuntu: Curl development headers with SSL support

By: Richard26-11-2010computing
Share
Just been trying to install Passenger on a new Ubuntu EC2 instance and
passenger is giving me the error:


* Curl development headers with SSL support... not found


Took some digging around but turns out I was just missing the
libcurl4-openssl-dev package:


sudo apt-get install libcurl4-openssl-dev

Solve Apache2 permission problem.

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Allow from all
</Directory>

Monday, April 15, 2013

vim binary mode

To binary mode -- :%!xxd
To normal mode -- :%!xxd -r

Sunday, April 14, 2013

Git move master to branch

git checkout target_branch
git merge --strategy==ours --no-commit master
git commit -m "Move master to this branch..."
git checkout master
git merge target_branch

Git command history

>git reflog

Friday, April 5, 2013

Linux - Bash encrypt and decrypt file

openssl des3 -salt -in unencrypted-data.file \
-out encrypted-data.file.des3

openssl des3 -d -salt -in encrypted-data.file.des3 \
-out unencrypted-data.file

Thursday, March 14, 2013

Mysql - backup all databases

$ mysqldump -u root -p --all-databases > alldb_backup.sql

Wednesday, March 13, 2013

Migrate Atlassian Confluence local version 4.0 to OnDemand version 5.0

  1. Backup current wiki data to XML.
  2. Upgrade local 4.0 to 5.0 version.
  3. Subscribe Confluence OnDemand service.
  4. Export space from local wiki, one by one, since OnDemand version cannot restore the whole backup in one click.
  5. Import spaces to OnDemand.
  6. Done.

Tuesday, March 12, 2013

Mac reset password

1. Press and Hold Command-R when startup.
2. Open terminal.
3. >resetpassword

Friday, March 8, 2013

Thursday, March 7, 2013

Monday, March 4, 2013

Rails - update attr_readonly field from sql

The easiest way to update field with attr_readonly is to update by
database sql.

$> psql -d xxx -U xxx
xxx> update ... set ... where ...

Wednesday, February 27, 2013

Thursday, February 21, 2013

Rails - Caution on adding new column and assign value to it in the same db migration - reset_column_information

This happens on staging/production rails env.

If you add a new column 'xxx' and assign value to it in the same migration,

Then, you may get error like this: undefined method 'xxx'

You should do a column reset after add column:

e.g. User.reset_column_information


Tuesday, February 19, 2013

selenium ide - AssertConfirmation wildcard *

AssertConfirmation *

Postgresql - show version

psql --version

OR

postgres=# select version();

Postgresql - list users

\du

Git global config

git config --global user.name "Your Name"
git config --global user.email you@example.com

git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
git config --global color.log auto

Mac enable root user

How to enable the root user

OS X Lion

  1. From the Apple menu choose System Preferences....
  2. From the View menu choose Users & Groups.
  3. Click the lock and authenticate as an administrator account.
  4. Click Login Options....
  5. Click the "Edit..." or "Join..." button at the bottom right.
  6. Click the "Open Directory Utility..." button.
  7. Click the lock in the Directory Utility window.
  8. Enter an administrator account name and password, then click OK.
  9. Choose Enable Root User from the Edit menu.
  10. Enter the root password you wish to use in both the Password and Verify fields, then click OK.


http://support.apple.com/kb/HT1528?viewlocale=en_US

Monday, February 18, 2013

Edit hosts file on Mac OS

$> sudo vi /private/etc/hosts

115.160.xxx.12 staging
115.160.xxx.11 production

Friday, February 15, 2013

Rails - Solved - relation 'xxx' does not exist

ActiveRecord::StatementInvalid: PGError: ERROR: relation "xxx" does not
exist
LINE 1: DELETE FROM "xxx"
^
: DELETE FROM "xxx"


Solution:

Remove test/fixture/xxx.yml if exists.

Friday, February 1, 2013

Thursday, January 24, 2013

Friday, January 11, 2013

Management - Request agile developer to submit a feature spec and design spec before beginning a new story

In an agile development environment, developer will collect story owner feature requirement and then design the way to implement. To overview the job to be carry out by developer, team leader have to get a sense of what has been requested and what is being prepared and designed.

Git - Find changes of a file within all local branches

git log --all -- somefile_fullpath

Thursday, January 10, 2013

Tuesday, January 8, 2013

Linux - rsync from local to remote

rsync -au /var/www/confluence/confluence-data/backups -e 'ssh -p 1337' your_name@some_ip:/home/your_name/backups/wiki_backups

Saturday, January 5, 2013

Apache supporting multiple domain websites with single IP

Listen 443
NameVirtualHost *:443
SSLStrictSNIVHostCheck off
<VirtualHost *:443>
DocumentRoot /srv/www/example1.com/
ServerName www.example1.com
...
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /srv/www/example2.com/
ServerName www.example2.com
...
</VirtualHost>

Thursday, January 3, 2013

Create a SSL Cert, sign by Godaddy.com, install on Apache

  • Login VPS, root@ubuntu:~# openssl req -new -newkey rsa:2048 -nodes -keyout your_domain.key -out your_domain.csr
  • Godaddy.com
    • Product > SSL Cert
      • Basic SSL Cert
      • 3 yrs
    • Add to cart
    • Checkout
    • Payment
    • Account > SSL Cert
      • Setup
      • Launch
    • Current Certificates
      • Credits
        • Refresh
      • Request Certificate
        • Choose 3rd party
        • Paste your_domain.csr content to form
        • submit
  • Wait for email.
  • Download cert from Godaddy.com.
    • Select Apache.
  • Copy your_domain.crt and gd_bundle.crt (the CA's bundle file) to VPS, e.g. /etc/ssl/private/
  • Edit /etc/apache2/sites-available/default.ssl
    • SSLCertificateFile /etc/ssl/private/your_domain_com.crt
    • SSLCertificateKeyFile /etc/ssl/private/private.key
    • SSLCACertificateFile /etc/ssl/private/gd_bundle.crt
  • Restart apache.  $> sudo service apache2 restart
  • Done


References:
http://support.godaddy.com/help/article/5269/generating-a-certificate-signing-request-csr-apache-2x
http://support.godaddy.com/help/article/562/requesting-standard-and-wildcard-ssl-certificates
http://support.godaddy.com/help/article/5238/installing-an-ssl-certificate-in-apache

https://help.ubuntu.com/12.04/serverguide/httpd.html
http://www.geocerts.com/install/apache_2

Tuesday, January 1, 2013

Toolbox - Zabbix

Zabbix is the ultimate open source availability and performance
monitoring solution. Zabbix offers advanced monitoring, alerting, and
visualization features today which are missing in other monitoring
systems, even some of the best commercial ones.

Monday, December 31, 2012

Selenium - Get current date

<tr>
        <td>storeEval</td>
        <td>var d=new Date(); d.getDate()+'-'+((d.getMonth()+1))
+'-'+d.getFullYear();</td>
        <td>date2</td>
</tr>
<tr>
        <td>echo</td>
        <td>${date2}</td>
        <td></td>
</tr>

Rails solved - Capistrano change repository

  • Remove deploy/shared/cached-copy
  • (remove .ssh/known_hosts) <- optional
  • ssh git@xxx.unfuddle.com
  • (config.rb add:  default_run_options[:pty] = true) <- optional
Reference: https://help.github.com/articles/deploying-with-capistrano

Known Hosts bug

If you are not using agent forwarding, the first time you deploy may fail due to Capistrano not prompting with this message:

# The authenticity of host 'github.com (207.97.227.239)' can't be established.
# RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
# Are you sure you want to continue connecting (yes/no)?
To fix this, ssh into your server as the user you will deploy with, run ssh git@github.com and confirm the prompt.

Sunday, December 30, 2012

Git tips - create an empty commit

git commit --allow-empty -m '[empty] initial commit'

Git tips - search a string on all revisions


git rev-list --all | (
while read revision; do

git grep -F 'Your search string' $revision

done

)

Friday, December 28, 2012

Tuesday, December 25, 2012

Cloud server vs VPS

http://forums.eukhost.com/f45/cloud-server-vs-vps-virtual-private-server-11356/#.UNkQBpNevKw

2010

Cloud hosting offers many advantages over normal VPS or Semi-Dedicated server hosting services due to the number of servers that are being used for a single cluster, and if you or your business rely greatly on your website, Cloud hosting is the best suitable option for you. The enhanced architecture powering Cloud hosting solution utilize groups of high specification servers, network attached storage devices to reliably serve every web page, and image of a website. Inside each storage device, drives are replicated to each other in a RAID configuration to create a first level of redundancy.

With Virtual Private server, you will not get guaranteed resources that you will pay for, which means other user of the VPS node could squeeze in on your allotted resources but this is not case with Cloud server, you will get the guaranteed amount of resources you are paying for and it's always available when you need them. In addition to all these features, you will also get the ability to customize the resources of Cloud server anytime. VPS is not at all reliable when compared to Cloud server because VPS is based on software virtualization platform. Each platform of servers have their merits and demerits but here there are no demerits of Cloud server, so now it depends on you whether to choose VPS or Cloud server after understanding the needs and the service that you are looking.

http://www.vps.net/blog/2012/08/20/vps-vs-cloud-server/

Cloud Servers have three primary advantages over a traditional VPS.

Near limitless flexibility with resource sizes.
On the fly resource upgrades, sometimes without even requiring a reboot.
Significantly better redundancy
Centralized redundant storage


VPS - not quite reliable on stability

Today, our web hosting on VPS is down. Called the technical support for
the reason saying that VPS down is common.

Mac shortcut symbols


  Command/Apple Key (like Control on a PC)
Also written as Cmd
  Option (like Alt on a PC)
  Shift
  Control (Control-click = Right-click)
  Tab
  Return
  Enter (on Number Pad)
  Eject
  Escape
  Page Up
  Page Down
  Home
  End
  Arrow Keys
  Delete Left (like Backspace on a PC)
  Delete Right (also called Forward Delete)
reference: http://www.danrodney.com/mac/index.html

Monday, December 24, 2012

Ruby - Notes on using Yardoc

List Options
$> yard help doc

Add additional tags:


>$ yardoc --tag data_source:"Data Source"
where data_source is the tag in comment.  e.g.  # @datasource The data is gathered by client collection.
"Data Source" is the string that appears on the generated document.

OR

Create a .yardopts file in project root, add the line --tag data_source:"Data Source"
Then >$yardoc

https://rubydoc.tenderapp.com/kb/getting-started-with-rubydocinfo/setting-up-a-yardopts-file





Thursday, December 20, 2012

Ruby yardoc - Remove view source from generated document

1. Create a file like
.../your_project_directory/doc/my_template/default/method_details/setup.rb
2. $>yardoc -p ./doc/my_template

Ruby on Rails documentation

YARD
Yay! A Ruby Documentation Tool

http://yardoc.org/

http://rubydoc.info/docs/yard/file/docs/GettingStarted.md
http://rubydoc.info/docs/yard/file/docs/Tags.md#taglist

(rake doc:app hanged on processing one of the class)

Rails Solve : You have already activated ... , but your Gemfile requires ...

Solution 1:
Use gems version as in Gemfile.lock $> bundle exec ...

Solution 2:
1. Include e.g. gem "rake", [some_version] in Gemfile
2. Update Gemfile.lock by $> bundle update

Wednesday, December 19, 2012

Visio alternative on Mac

OminGraffle

http://www.omnigroup.com/products/omnigraffle/

And awesome stencils

http://www.graffletopia.com/

Very nice!


See also: draw.io

Mistake - Fix lost after deployment

In today's deployment, one of our previous adhoc fix was lost since I miss the merge from fix to development branch.  In order to avoid that from happening again, I will try to use a different branching approach:

Named development branches
This are development branches use for implementation of different features.  It can only contain code on story and merge from _production branch.  In this way, individual story can be deployed to production without including other stories.

master branch
This is the branch that merge named development branches for the features that's going to be release to staging/production server.  It can contains codes from all dev branches and _production branch.

_staging branch
This is the branch in sync with staging release, every deployment to staging server mush be on this branch.  Merges from master, dev and/or _production branches for deployment.

_production branch
This is the branch in sync with production release, every deployment to production server must be on this branch.  Merges from _staging branch for deployment.  Any urgent or adhoc fixes on production branches should be merged to at least master and _staging branch according.


Monday, December 17, 2012

Thursday, December 13, 2012

Coding convention as on ruby on rails development

As suggested by ruby on rails framework development:

Follow the Coding Conventions
Rails follows a simple set of coding style conventions.
  • Two spaces, no tabs (for indentation).
  • No trailing whitespace. Blank lines should not have any spaces.
  • Indent after private/protected.
  • Prefer &&/|| over and/or.
  • Prefer class << self over self.method for class methods.
  • Use MyClass.my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
  • Use a = b and not a=b.
  • Follow the conventions in the source you see used already.
  • The above are guidelines — please use your best judgment in using them.
reference: http://guides.rubyonrails.org/contributing_to_ruby_on_rails.html#follow-the-coding-conventions

Sunday, December 9, 2012

Solve - Modx friendly url not working

Problem:
    Modx config -> Friendly URL -> yes.
    http://localhost/home.html -> Page not found.

Solution:
enable mod_rewrite: 
    $> sudo a2enmod rewrite
    $> sudo service apache2 restart

/etc/apache2/sites-avaiable/default:
AllowOverride all                                   

ht.access -> .htaccess

Reference:
http://wiki.modxcms.com/index.php/Friendly_URLs_Guide
http://rtfm.modx.com/display/Evo1/Moving+Site

Solved - Configuration warning: 'GD and/or Zip PHP extensions not found' on MODX

$ sudo apt-get install php5-gd

reference:
http://www.cyberciti.biz/faq/ubuntu-linux-install-or-add-php-gd-support-to-apache/

Friday, December 7, 2012

Enable https on apache2

sudo a2enmod ssl
sudo a2ensite default-ssl

sudo service apache2 restart


Apache add virtual host on a new port

1. Create a site

$> cp /etc/apache2/sites-available/default /etc/apache2/sites-available/newsite

edit /etc/apache2/sites-available/newsite:

<VirtualHost *:8082>
        ServerAdmin ops@example.com

        DocumentRoot /home/yourname/www
...

2. Enable a site


$> ln -s /etc/apache2/sites-available/newsite /etc/apache2/site-enabled/newsite
or
$> sudo a2ensite newsite


3. Listen to the port

edit /etc/apache2/ports.conf

Listen 80
Listen 8082
NameVirtualHost *:80
NameVirtualHost *:8082

Thursday, December 6, 2012

Setup Ubuntu for Modx Evolution - Part 3

http://wiki.modxcms.com/index.php/Installation_Guide

Ensure https supports:

sudo a2ensite default-ssl
sudo a2enmod ssl

Note: if site copied from original, make sure it's hosted on the same /home/cms/public_html or change paths accordingly.

Switch to utf8 in mysql on ubuntu - Update

[mysqld]
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci

[mysqld] default-character-set=utf8 (This line bugged and mysqld couldn't start!) [client] default-character-set=utf8

https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/958120



Restart:

$> sudo service mysql restart

Switch to utf8 in mysql on ubuntu

http://blog.lesc.se/2011/06/switch-to-utf-8-charset-in-mysql-on.html


Switch to UTF-8 charset in Mysql on Ubuntu

When installing Mysql on Ubuntu the default character set is probably latin-1. Since Ubuntu uses UTF-8 for most other things this may be little strange. But it is easy to change.

The Mysql configuration file /etc/mysql/my.cnf has a magic line:
!includedir /etc/mysql/conf.d/

This will make it include settings on the subdirectory conf.d. It's not recommended to change the my.cnffile directly since it will cause problems when upgrading Ubuntu/Mysql to a new version.

Create a new file: /etc/mysql/conf.d/utf8_charset.cnf with the following contents:
[mysqld]  default-character-set=utf8    [client]  default-character-set=utf8

Restart mysql and you will have UTF-8 as character set:
$ mysql -u root -p -e "show variables like '%character%'"  +--------------------------+----------------------------+  | Variable_name            | Value                      |  +--------------------------+----------------------------+  | character_set_client     | utf8                       |  | character_set_connection | utf8                       |  | character_set_database   | utf8                       |  | character_set_filesystem | binary                     |  | character_set_results    | utf8                       |  | character_set_server     | utf8                       |  | character_set_system     | utf8                       |  | character_sets_dir       | /usr/share/mysql/charsets/ |  +--------------------------+----------------------------+ 


Setup Ubuntu for Modx Evolution - Part 2

Configurations:

Create user account:
$> sudo useradd -m  -s /bin/bash cms
$> sudo passwd cms

The user created will not be in the sudoers file.
-s : for setting the bash be the default shell.
-m: create /home/cms as user's home directory.
($> sudo userdel -r cms) to rollback


Migrate contents from current Modx CMS hosting on another server.
1. GZip tar and download the entire /public_html directory for old server.
2. Upload to /home/cms.
3. $> tar -zxvf public_html.tar.gz
4. Set apache document root to /home/cms/public_html
5. Restart apache: sudo service apache2 restart

6. Locate database config file: search database name within the files under /public_html
7. Config file: /manager/includes/config.inc.php

8. On the old server, export database by phpmyadmin>Export databases. -> localhost.sql
9. Copy localhost.sql to /home/cms
10. Restore database: $> mysql - u user_name -p database_name < file_name.sql