kyo*_*kyo -3 php laravel laravel-5 artisan laravel-5.8
我正在创建一个脚本来启动我的Laravel 5.8项目
#Install dependencies
composer self-update
composer install
# create .env base on .env.example
cat .env.example > .env
#permission
chmod -R 777 .env
#create the key
php artisan key:generate --force
cat .env
#set permission
chmod -R 777 bootstrap/ vendor/ storage/ public/
sleep 1
#clear cache
php artisan config:cache
php artisan cache:clear
composer dump-autoload
php artisan clear-compiled
php artisan key:generate
python -mwebbrowser http://127.0.0.1:8000
php artisan serve
Run Code Online (Sandbox Code Playgroud)
这条线似乎不起作用。
php artisan key:generate --force
Run Code Online (Sandbox Code Playgroud)
看看我的.env
?? bheng cat .env
APP_ENV=local
APP_URL=http://bheng.test/
APP_DEBUG=true
APP_KEY=***
CODE=###
#---------------------------------------------- DATABASE
DB_CONNECTION=mysql
DB_HOST=4.2.2.1
DB_DATABASE=b
DB_USERNAME=dev
DB_PASSWORD=123
DB_PORT=3306
#---------------------------------------------- EMAIL
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_FROM=8863b0c62fbcff
MAIL_PASSWORD=***
#----------------------------------------------
GOOGLE_WEB_API_KEY=***
Run Code Online (Sandbox Code Playgroud)
?? bheng php artisan key:generate --force
Application key set successfully.
?? bheng cat .env | grep KEY
APP_KEY=***
GOOGLE_WEB_API_KEY=***
?? bheng ls
Procfile composer.lock package-lock.json readme.md storage/
app/ config/ package.json resources/ vendor/
artisan database/ phpspec.yml routes/
bootstrap/ gulpfile.js phpunit.xml server.php
composer.json npm-debug.log public/ start.sh*
?? bheng L
total 1584
drwx------+ 25 bheng staff 800B Oct 13 13:55 ../
-rw-r--r-- 1 bheng staff 796B Oct 13 13:55 .env.example
-rw-r--r-- 1 bheng staff 61B Oct 13 13:55 .gitattributes
-rw-r--r-- 1 bheng staff 556B Oct 13 13:55 .gitignore
drwxr-xr-x 7 bheng staff 224B Oct 13 13:55 .idea/
-rw-r--r-- 1 bheng staff 43B Oct 13 13:55 Procfile
drwxr-xr-x 26 bheng staff 832B Oct 13 13:55 app/
-rw-r--r-- 1 bheng staff 1.6K Oct 13 13:55 artisan
drwxr-xr-x 7 bheng staff 224B Oct 13 13:55 bootstrap/
-rw-r--r-- 1 bheng staff 1.3K Oct 13 13:55 composer.json
-rw-r--r-- 1 bheng staff 200K Oct 13 13:55 composer.lock
drwxr-xr-x 17 bheng staff 544B Oct 13 13:55 config/
drwxr-xr-x 6 bheng staff 192B Oct 13 13:55 database/
-rw-r--r-- 1 bheng staff 1.6K Oct 13 13:55 gulpfile.js
-rw-r--r-- 1 bheng staff 13K Oct 13 13:55 npm-debug.log
-rw-r--r-- 1 bheng staff 515K Oct 13 13:55 package-lock.json
-rw-r--r-- 1 bheng staff 1.0K Oct 13 13:55 package.json
-rw-r--r-- 1 bheng staff 87B Oct 13 13:55 phpspec.yml
-rw-r--r-- 1 bheng staff 777B Oct 13 13:55 phpunit.xml
drwxr-xr-x 20 bheng staff 640B Oct 13 13:55 public/
-rw-r--r-- 1 bheng staff 2.5K Oct 13 13:55 readme.md
drwxr-xr-x 5 bheng staff 160B Oct 13 13:55 resources/
drwxr-xr-x 5 bheng staff 160B Oct 13 13:55 routes/
-rw-r--r-- 1 bheng staff 560B Oct 13 13:55 server.php
-rwxr-xr-x 1 bheng staff 957B Oct 13 13:55 start.sh*
drwxr-xr-x 5 bheng staff 160B Oct 13 13:55 storage/
drwxr-xr-x 12 bheng staff 384B Oct 13 13:55 .git/
drwxr-xr-x 45 bheng staff 1.4K Oct 13 13:55 vendor/
drwxr-xr-x 30 bheng staff 960B Oct 13 13:55 ./
-rwxr-xr-x 1 bheng staff 796B Oct 13 13:56 .env*
?? bheng
Run Code Online (Sandbox Code Playgroud)
第一条:切勿777出于任何原因设置权限,尤其是面向Web的应用程序。您不希望外部脚本为您操纵Web服务器。
第2条:由于添加生成密钥的问题不易追踪,因此您可以将生成的密钥带入终端,php artisan key:generate --show并在中手动覆盖它.env。
您可以编写如下脚本,以帮助创建和覆盖.env文件的APP_KEY值:
#!/bin/sh
while IFS="" read -r p || [ -n "$p" ]
do
if printf '%s' "$p" | grep -Eq '^APP_KEY'; then
key=$(php artisan key:generate --show)
echo "APP_KEY=$key" >> .envv
printf '%s\n' "APP_KEY generated and set"
else
#printf '%s\n' "$p"
echo "$p" >> .envv
fi
done < .env
cp .envv .env
rm .envv
Run Code Online (Sandbox Code Playgroud)
if printf '%s' "$p" | grep -Eq '^APP_KEY'; then 检查行是否以 APP_KEY.envv.env使用临时文件覆盖文件PS:我不是bash / sh / dash脚本编写方面的专家,因此这可能并不性能友好,只是为了证明这一点。我怀疑最初的问题来自更改文件的权限