cookie
cookie

Reputation: 2728

Installing Slim, PHP, Ubuntu

I'm trying to install Slim on my local LAMP server on Ubuntu only I get stuck at second base. From my tutorial and various documentation found online:

You now have access to the composer command. Sure enough if I go to the terminal and enter:

$ composer
Composer version b474944155429eb4cce186c746d55287ee6bb3f4

Usage:
[options] command [arguments]

The next step is to specify Slim as a required package for your app. This can be accomplished, via a composer.json file within the root of your project.

Where is the root of my project? I thought it would be

/var/www/slim

I've tried adding composer.json to:

/var/www/slim

and stood in /slim define an index.php script with:

<?php
require 'vendor/autoload.php';
$app = new \Slim\Slim();
$app->get('/hello/:name', function ($name) {
echo "Hello, $name";
});
?>

Go to

http://localhost/var/www/slim

and the browser returns:

Warning: require(vendor/autoload.php): failed to open stream: No such file or directory in /var/www/slim/index.php on line 2

Fatal error: require(): Failed opening required 'vendor/autoload.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/slim/index.php on line 2

Upvotes: 2

Views: 4643

Answers (2)

someGuyOnTheWeb
someGuyOnTheWeb

Reputation: 61

Well, there seems to be more then one question in your post, but regardless ...

  1. "Where is the root of my project?"

The root of your project should be in /var/www if you haven't changed your hosts / Apache settings.

Then on to your 2nd question, which I will take the liberty to rephrase :)

  1. "How to create your web App, and include the composer-installed packages inside?" go to your respective web-root directory, likely in your case /var/www and in it create "index.php". Then, there, in the console, run the command:

    composer install
    

This should install the packages defined in your composer.json, which should in the same web root dir.
If everything went OO, you will have in the following a new directory: /var/www/vendor

Now, go to your web-root directory and create your index.php and in it, in the beginning add the following lines:

require 'vendor/autoload.php';
// to load all the packages installed with composer, not only slim. If 
//composer was run in the right directory and w/o problems of course :)

 $app = new \Slim\Slim();
// to instantiate Slim script instance and assign it to the pointer $app
$app->get('/hello/:name', function ($name) {
echo "Hello, $name";
})
//to create your 1st route  ...

Upvotes: 1

valeriocomo
valeriocomo

Reputation: 765

you need to run

composer install

from terminal. After that, add

$app->run();

in index.php.

Upvotes: 0

Related Questions