w3resource

Install PHP on Linux

Install PHP on Ubuntu Linux

Installation

If you are running Ubuntu, add deb http://security.ubuntu.com/ubuntupool/main/p/php5/ hardy-security main in your /etc/apt/sources.list
file using any text editor.

Alternatively, you can follow these steps to find and download PHP for Ubuntu :

To obtain php installer for ubuntu Linux, go the the packages.ubuntu.com.

Scroll down and find Search package directories.

Give PHP5 in the keyword field and select your Ubuntu version from Distribution.We used Hardy.

Click Search.

In the resulting page, find Package libapache2-mod-php5 and click on hardy (it's a link).

Find Download libapache2-mod-php5 in the resulting page.

Click on amd64 if you are using 64 bit AMD Processor, click on i386 for Intel processor.

Click on http://security.ubuntu.com/ubuntu/pool/main/p/php5/libapache2-mod-php5_5.2.4-2ubuntu5.10_i386.deb in the resulting page and save the downloaded file.

After obtaining the PHP installer, start root terminal and fire following commands :

aptitude install php5 libapache2-mod-php5 and to restart apache web server (we used version 2) /etc/init.d/apache2

Then restart.

You must have root privilege for installing php. So, either you use su or you run it from root terminal.

Now create a php script like <?php echo phpinfo(); ?> and save it as test.php in the root directory of Apache web server i.e. /var/www.

Make sure you have read and executed  permissions for /var/www and all of it's sub directories and files.

Install PHP on CentOS Linux

Prerequisite and Installation

You must have apache server up and running.

Log in as root or use root privilege for installing php on CentOs. We have used CentOs 5.3 for this tutorial.

After you have downloaded PHP5 for CentOs, use the following command :
yum install php

Restart apache:

/etc/init.d/httpd restart

On CentOS, default document root is vi /var/www/html.

Now create a php script like <?php echo phpinfo(); ?> and save it as test.php in the root directory of Apache web server i.e. /var/www/html.

Make sure you have read and executed  permissions for /var/www/html and all of it's sub directories and files.

Run http://localhost/test.php or http://your-ip-address/test.php. If you get an output showing that PHP is installed, you have successfully installed PHP.

Previous: Installing php and php extensions on windows
Next: Install PHP on IIS in Windows 7



PHP: Tips of the Day

Members of objects or classes can be accessed using the object operator (->) and the class operator (::).

Example:

class MyClass {
 public $a = 1;
 public static $b = 2;
 const C = 3;
 public function d() { return 4; }
 public static function e() { return 5; }
}
$object = new MyClass();
var_dump($object->a); // int(1)
var_dump($object::$b); // int(2)
var_dump($object::C); // int(3)
var_dump(MyClass::$b); // int(2)
var_dump(MyClass::C); // int(3)
var_dump($object->d()); // int(4)
var_dump($object::d()); // int(4)
var_dump(MyClass::e()); // int(5)
$classname = "MyClass"; 
var_dump($classname::e()); // also works! int(5)

Note that after the object operator, the $ should not be written ($object->a instead of $object->$a). For the class operator, this is not the case and the $ is necessary. For a constant defined in the class, the $ is never used.

Also note that var_dump(MyClass::d()); is only allowed if the function d() does not reference the object:

class MyClass {
 private $a = 1;
 public function d() {
 return $this->a;
 }
}
$object = new MyClass();
var_dump(MyClass::d()); // Error!

This causes a 'PHP Fatal error: Uncaught Error: Using $this when not in object context'

These operators have left associativity, which can be used for 'chaining':

class MyClass {
 private $a = 1;

 public function add(int $a) {
 $this->a += $a;
 return $this;
 }

 public function get() {
 return $this->a;
 }
}
$object = new MyClass();
var_dump($object->add(4)->get()); // int(5)

These operators have the highest precedence (they are not even mentioned in the manual), even higher that clone. Thus:

class MyClass {
 private $a = 0;
 public function add(int $a) {
 $this->a += $a;
 return $this;
 }
 public function get() {
 return $this->a;
 }
}
$o1 = new MyClass();
$o2 = clone $o1->add(2);
var_dump($o1->get()); // int(2)
var_dump($o2->get()); // int(2)

The value of $o1 is added to before the object is cloned!

Note that using parentheses to influence precedence did not work in PHP version 5 and older (it does in PHP 7):

// using the class MyClass from the previous code
$o1 = new MyClass();
$o2 = (clone $o1)->add(2); // Error in PHP 5 and before, fine in PHP 7
var_dump($o1->get()); // int(0) in PHP 7
var_dump($o2->get()); // int(2) in PHP 7