Note that :-
“php” => “/opt/lampp/bin/php”
“php composer.phar install” should be
“/opt/lampp/bin/php composer.phar install”

so I will create bash alias
on command line (without $)
$ gedit ~/.bashrc
* append these line to file
alias xphp=’/opt/lampp/bin/php’
* save file
on command line (without $)
$. ~/.bashrc
* now you can use “xphp composer.phar”

1 – move to your project dir

2 – download composer file
curl -s | xphp

3 – install Composer
xphp composer.phar install

run this command via console

sudo apt-get install libasound2-plugins:i386

This is a step by step HOWTO to host git repositories using gitosis on a Centos 5.2 box.

Step 1 – (On your server)
Install python-setuptools on your server, you’ll need it to install gitosis.
As root:
yum -y install python-setuptools

Step 2 – (On your server)
Install git. You’ll need the DAG RPM repository for this one.
As root:
- Red Hat Enterprise Linux 5 / i386:
rpm -Uhv
- Red Hat Enterprise Linux 5 / x86_64:
rpm -Uhv

yum -y install git

Step 3 – (On your server)
Install gitosis.
As root:
git clone git://
(it should download stuff and create a gitosis directory)
cd gitosis
python install

Step 4 – (On your server)
Make a user called git.
adduser git
Give your new user git a password.
passwd git

Step 5 – (On your client)
The whole point of gitosis is to transfer files via ssh using a shared key process (ie: no password required to login to user git on your server). Now before you go and start doing it the manual way – don’t. Gitosis must create and maintain the authorized_keys file.

As your normal user on your client/development box:
ssh-keygen -t rsa (take the defaults)

There is now a new file called in ~/.ssh/

Copy the file to the server:

scp ~/.ssh/

Step 6 – (On your server)
I’m assuming you’re still root on the server.
Change to the git user.

su git
cd /home/git
gitosis-init <

It should reply with Initialized empty Git repository in ./ – twice..
We can now remove as we don't need it anymore.


Now we must set some directory and file permissions to let sshd see the new authorized_keys file.

chmod 755 /home/git

chmod 700 /home/git/.ssh

chmod 644 /home/git/.ssh/authorized_keys

Step 7 – (On your client)

We're pretty much done server side. Now we're going to configure the server via the client.

Although I assume this is obvious, you need to install git on your client machine.

git clone

cd gitosis-admin

You should see a gitosis.conf file and keydir directory. Here's the thing, anything you need to configure on the server, you actually configure here and commit the changes to the server. Open up gitosis.conf in your favorite text editor
Make a new group name for your project. It really doesn't matter what you name this group. Add users to the member section who will need push access.
[group myTeam]
members = (copy and paste the user from the members = line in the [group gitosis-admin] section)
writable = myNewProject

Save the file. Why did we use that If you look in the keydir directory, you'll see your public key with the filename These are your users (minus the .pub).

Step 8 – (On your client)
You've just made a configuration change. You want the server to allow to have write access to a project called myNewProject. You must commit this change to the server.

git commit -a -m "Allow the machine I am on right now write access to myNewProject"
git push

Now it's time to make the directory that will contain your project files. Move up out of the gitosis-admin directory.

cd ..
mkdir myNewProject
cd myNewProject
git init
git remote add origin

Add your files, move some files, create some files. Put some files in the myNewProject directory.
Now we can commit the initial push to the server.

git add .
git commit -a -m "This is my initial commit for myNewProject"
git push origin master:refs/heads/master

Git will do some neat things and push things to the server. Now to delete the directory you just created.. Yeah, I said it.

cd ..
rm -fr myNewProject

And now to pull myNewProject from the server using clone..

git clone

Now you have a version of your code you can actually use, make changes and commit to the server using normal git commands.

As of now, you have a fully functioning git server with a project and a client that can make changes. But what about other people?

Step 9 – (On your client)
So your friend Bob wants to help you out with myNewProject. Have Bob generate his own and send it you. When you have it:

cd gitosis-admin

Assuming Bob's is in your home directory, move it to the key directory renaming it at the same time:

mv ~/ keydir/

Tell git about the new file:

git add keydir/

Edit your gitosis.conf file again. Look for the members line in myNewProject and add Bob to it:

members = bob

Now you could add bob to be in the gitosis-admin group if you wanted him to be able to do what you're doing now. How much do you trust Bob?

Save the file and quit. It's time to tell your server about Bob and send Bob's public key.

git commit -a -m "Added commit rights to Bob on myNewProject"
git push

The server will automatically add Bob's public key to authorized_keys. Do not attempt to add him manually.

Step 10 -
Do a little dance, you're done.

header('content-type: image/jpeg');

$imgpath = "../image/path" ; 
//OR $imgpath = $_POST["image"] if you will do this on the fly

$image = imagecreatefromjpeg($imgpath);
$imageSize = getimagesize($imgpath);

$watermark = imagecreatefrompng('watermark/path');

$watermark_o_width = imagesx($watermark);
$watermark_o_height = imagesy($watermark);

$newWatermarkWidth = $imageSize[0]-20;
$newWatermarkHeight = $imageSize[1]; 
// OR $newWatermarkHeight = $watermark_o_height * $newWatermarkWidth / $watermark_o_width; 
// IF you would to fit watermark image with image dim

	$imageSize[0]/2 - 
	$imageSize[1]/2 - $newWatermarkHeight/2, 

// OR imagejpeg($image,"save/image/path"); 
// if you would to save new image


What is a CDN

CDN (Content Delivery Network)

A CDN is a network of servers around the world which have a copy of your website and its small files, so when a visitor loads your website, the CDN delivers your website’s files from the closest server to them. The further the physical distance between the server and the user the slower the website becomes. So by serving from a closer location, the speed of the website increases.

how it works?

Your users could be anywhere in the world yet your hosting is only hosted in one place, let’s say New York. Now if a visitor from England comes to your website they must load your website from New York. The distance the information must travel is very far and will make the website slow for this user. If you had a CDN, it would load your website from a local server, say one in England, so your website for this user would be very fast.

php paypal guide

Paypal Use Case

PayPal use cases describe business scenarios that you can address, using PayPal products.

Adaptive Payments

The Adaptive Payments API allows merchants and developers to pay almost anyone and set up automated payments. They can create applications that manage payments, payment preapprovals, and refunds. They can also send money peer-to-peer, split payments in both parallel and chained models, accept guest payments, and schedule disbursements. The Adaptive Payments API works on multiple platforms including the web and mobile environments.

Express Checkout API

This service helps you streamline the checkout process for a buyer. The payment experience is on (a redirection from the merchant’s site) and then the buyer is returned to the merchant’s site for payment confirmation.

Problem description: You had installed lampp to work on some web projects of yours. After a while you decided that it’s time to set up some IDE and chose xDebug to be responsible of PHP debugging. You followed tailored installation instructions from, restarted Lampp and got error like this one:

“Failed loading /opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/  /opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/ wrong ELF class: ELFCLASS64″
Also, the xDebug module is not included anywhere in output of phpinfo() function.

Cause: You probably have 64-bit Windows/Linux distribution and you compiled your PHP/Lampp in 32-bit mode, but xDebug extension ( in 64-bit mode. You need to recompile and fix it.

Solution: (works for Ubuntu/Lampp configuration)

  • Download Latest XDebug Source file
  • Unpack package, run: tar -xvzf  xdebug-2.2.1
  • Run: cd xdebug-2.2.1
  • Run: phpize
  • Run: sudo apt-get install g++-multilib
  • Run: CFLAGS=-m32 CPPFLAGS=-m32 ./configure
  • Run: make
  • Copy .so file to folder with extensions, run: sudo cp modules/ /opt/lampp/lib/php/extensions/no-debug-non-zts-20090626
  • Edit /opt/lampp/etc/php.ini and add the line just before [Data] line, run: sudo gedit /opt/lampp/etc/php.ini
    zend_extension = /opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/
  • Restart web server, run: sudo /opt/lampp/lampp restart
  • Have fun

Get every new post delivered to your Inbox.