Как устранить ошибку "[Исключение ошибки] файл получает содержимое (/var/www/laravel/.env): не удалось открыть поток: Такого файла или каталога нет"?
Я использую Ubuntu 14.04 на своей машине. Я установил composer, а затем laravel в корневом каталоге документа, т. Е. /var/www
Я также дал -R 777 разрешение на доступ к папке laravel, присутствующей в каталоге /var/www
Затем я перехожу в каталог laravel с помощью cd/var/www/laravel и запускаю следующую команду php artisan, и я должен увидеть все доступные команды там.
Затем я набрал ключ php artisan: сгенерировал и получил ошибку
[ErrorException] file_get_contents(/var/www/laravel/.env): failed to open stream: No such file or directory
Здесь я застрял на самом деле, может кто-нибудь, пожалуйста, помочь мне в этом отношении?
Спасибо.
5 answers
Переименуйте .env.example
в .env
в корневой папке laravel
Файл .env
еще не представлен, потому что сначала вам нужно будет создать и настроить его.
Выполните следующие действия
# 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
Переименуйте .env.пример в .env и заполните все свойства. https://laravel.com/docs/5.0/configuration#environment-configuration
Возможно, вы пропустили свой файл .env
в папке проекта laravel.Поэтому сделайте .env.example
в .env
файл. Также укажите необходимое подключение к базе данных.
.env
файл выглядит следующим образом: (Заполните требуемое подключение к базе данных)
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
Надеюсь, это поможет вам.Спасибо.
Если, как и я, у вас был файл .env
, вы можете обнаружить, что у него слишком жесткие разрешения, чтобы позволить вашему текущему пользователю писать в него (и, следовательно, команда php artisan, которую пытается запустить ваш текущий пользователь). Я изменил все свои файлы Laravel, чтобы они принадлежали www-data:www-data
, и сделал своего текущего пользователя членом группы www-data
, и поэтому был немного озадачен этой ошибкой.
Однако вскоре я понял, что мой файл .env
содержит следующее разрешения:
-rw-r--r--
...это означает, что пользователь, которому принадлежит файл, получает возможность чтения и записи, но группа и мир могут только читать. Так как мой текущий пользователь является членом группы www-data
, он может только читать, но не писать.
(Вы можете проверить свои права доступа к файлам, выполнив $ ls -la
)
Если у вас такая же ситуация, у вас есть два варианта: ослабить права доступа к этому файлу (с помощью chmod
) или использовать sudo
для выполнения ваших команд php artisan. Я выбрал последнее, так как это рабочий сервер для меня, и мне нравятся жесткие разрешения.