Thursday, April 2, 2015

Install Cakephp 3 on Ubuntu

Stable version of cake3 is released for use. Old way of downloading cake and placing it in root directory and making changes to it, to get the app working won't work anymore. We have to install cakephp using composer. I tried installing it on my machine and felt like sharing the steps that I followed to install. So, here it goes

Following are the requirements for installing cakephp3 :
1. HTTP Server like Apache
2. PHP version greater than or equal to 5.4.16
3. mbstring extension
4. intl extension
5. Composer, without which you cannot install cakephp3

Installing Requirements 

Go to Terminal,

Install apache and php >= 5.4.16.

Install mbstring extension using the following command :
sudo apt-get install libapache2-mod-php5

Install intl extension using the following command :
sudo apt-get install php5-intl

Now restart apache using the command :
service apache2 restart

Install Composer :
Once all Apache,PHP, mbstring and intl extension are installed. Next step is to install composer.
Go to your root directory( /var/www/ in ubuntu ) cd /var/www
If you have curl installed you can use command curl -s https://getcomposer.org/installer | php
else you can use command php -r "readfile('https://getcomposer.org/installer');" | php
to install composer.
Note, commands above will install composer only in the directory where you ran the command.

Now we are ready to install cakephp3
Go to document root directory( /var/www/ in ubuntu ) cd /var/www
Now type the command below :
php composer.phar create-project --prefer-dist cakephp/app [app_name]
Your cakephp3 application will now be running.

 Connecting to database :
 In cakephp3 we give database connection parameters in app.php in folder <app-name>/config
 Go to  <app-name>/config/app.php and change the requires parameters mentioned below
   'Datasources' => [
         'default' => [
             'username' => '<give your db username here>',
              'password' => '<give your db passwoprd here>',
              'database' => '<give your db name here>',


 Type http://localhost/app_name in browser to see your cakephp3 app.

Issues that you might face when you type command
php composer.phar create-project --prefer-dist cakephp/app [app_name]

1. Could not open input file: composer.phar
    This means you haven't installed composer globally, and your composer installation was directory specific. Go to the directory where you have installed the composer and issue the above command.

2. This package requires php >=5.4.16 but your PHP version does not satisfy that requirement.
    You will get this error when you are trying to install cakephp3 on php version lesser than 5.4.16.
    PHP version of your machine has to be upgraded to version 5.4.16 or greater.
    Note : Restart apache after  the upgrade.

3. cakephp/cakephp 3.0.x-<dev/beta/alpha/RC> requires ext-intl * -> the requested PHP extension intl is missing from your system. 
   This means intl extension for php was not installed. You need to install intl extension as mentioned     above, using the command sudo apt-get install php5-intl .
    Note : Restart apache after installing.

Issues that you might face after installing 

1. Database driver Cake\Database\Driver\Mysql cannot be used due to a missing PHP 
    extension or unmet dependency
    The above error will be displayed on browser, if Mysql database driver couldn't be used by app or
     is missing. Type the following command in terminal :
     sudo apt-get install php5-mysql
     Now restart mysql using command service mysql restart then restart Apache using command
     service apache2 restart
     Refresh the browser now, the above error would have disappeared.





9 comments:

  1. Thanks Guru Prasad ---Gaurav Sharma

    ReplyDelete
  2. Works like charm! Thanks Guru!

    ReplyDelete
  3. Thank you so much for sharing this. I appreciate your efforts on making this collection.
    Hire Cakephp Developer

    ReplyDelete
  4. Debian is lot faster than Ubuntu and has a great community. I'd recommend to use Debian instead of Ubuntu. It is easier to install CakePHP on it as well. Here is an example: https://www.cloudways.com/blog/install-cakephp-on-cloud/

    ReplyDelete