26
votes

I'm using Ubuntu 14.04 on my machine. I installed composer and then laravel in the document root i.e. /var/www

I also gave -R 777 persmission to folder laravel present in directory /var/www

Then I go to directory laravel using cd /var/www/laravel and run the following command php artisan and I got to see all the available commands there.

Then I typed in php artisan key:generate and got the error

[ErrorException]  file_get_contents(/var/www/laravel/.env): failed to open stream: No such file or directory

enter image description here Here I got stuck actually, can someone please help me in this regard?

Thanks.

6
Check whether there is a .env file in your project root. Normally there would be a .env.example file which you need to change to .env file with your own settings - VipindasKS
check whether .env exist in /var/www/laravel. It may be hidden. If not exist, rename .env.example to .env. - Haseena P A

6 Answers

50
votes

Rename .env.example to .env in your laravel root folder

6
votes

The .env file is not yet present because you will first need to create and configure it.

Do the following

# Navigate to the correct folder
$ cd /var/www/laravel

# Copy the example file to make a .env file
$ cp .env.example .env

# Set the parameters
$ vi .env
4
votes
4
votes

You can create it & rerun the command.

# cd /var/www/laravel 
# cp .env.example .env       //renames .env.example to .env
# php artisan key:generate 
Application key set successfully.
3
votes

Probably you missed your .env file in laravel project folder.So make .env.example to .env file. Also give the required database connection.

.envfile look like this: (Fill up with required database connection)

APP_ENV=local
APP_DEBUG=true
APP_KEY=SomeRandomString
APP_URL=http://localhost

DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

Hope this will help you.Thanks.

2
votes

If, like me, you did have a .env file, you may find it has permissions that are too tight to allow your current user to write to it (and by implication the php artisan command your current user is attempting to run). I had changed all my Laravel files to be owned by www-data:www-data and made my current user a member of the www-data group, and was thus a little stumped by this error.

However, I soon realised that my .env file has the following permissions:

-rw-r--r--

...meaning the user which owns the file gets read-write, but the group and world can only read. Since my current user is a member of the group www-data, it can only read, not write.

(You can check your file permissions by doing $ ls -la)

If you have the same situation, you have two choices; loosen the file permissions on that file (with chmod) or use sudo to run your php artisan commands. I chose the latter, since this is a production server for me and I like the tight permissions.