从版本控制器 GIT 和自动发布代码的角度彻底解决 Llaravel 中出现的 Please provide a valid cache path. 问题。
-
现在大家用的基本都是
.git
代码服务器吧,一般情况下我们都会在跟目录下的.gitignore
里设定/storage/*
这样也是可以的,但是呢,到生产线服务器的时候往往可能会出现下面的问题
Please provide a valid cache path.
所以最好的设定是根目录的
.gitignore
里什么都不设定,而是直接设定在各个目录mkdir storage/debugbar storage/framework storage/logs echo "*" >> storage/debugbar/.gitignore echo "*" >> storage/logs/.gitignore mkdir storage/framework/caches storage/framework/sessions storage/framework/views echo "*" >> storage/framework/caches/.gitignore echo "*" >> storage/framework/sessions/.gitignore echo "*" >> storage/framework/views/.gitignore
这样就大功告成了。
-
部署方面,不管你用的是自动部署还是用的 FTP 传文件,一定要将接收文件的服务器,也就是生产线或者正式线服务器设置为和 Apache 或者 Nginx 或 PHP-FPM 的用户是同一个用户,一般是
www
- 对于大部分 Nginx 只要看这个下面这样就足够了。 输入
ps aux | grep nginx
结果可能如下www 18249 0.0 1.0 134444 39980 ? S 00:15 0:00 nginx: worker process www 18250 0.0 0.9 134444 37780 ? S 00:15 0:00 nginx: worker process root 22018 0.0 0.0 12320 1080 pts/0 S+ 07:48 0:00 grep --color=auto nginx root 29900 0.0 0.3 74256 12552 ? Ss 6月29 0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
看到那个
nginx:worker
最前面的那个www
,那个就是用户 - 对于大部分 Nginx 只要看这个下面这样就足够了。 输入
-
对于 PHP-FPM 则是继续输入
ps aux | grep php-fpm
就好了root 22347 0.0 0.0 12320 988 pts/0 R+ 07:52 0:00 grep --color=auto php-fpm root 30108 0.0 0.5 186452 20496 ? Ss 6月29 0:27 php-fpm: master process (/usr/local/php/etc/php-fpm.conf) www 30110 0.0 0.7 219132 29288 ? S 6月29 0:03 php-fpm: pool www www 30111 0.0 0.7 219360 29376 ? S 6月29 0:03 php-fpm: pool www www 30112 0.0 0.6 219584 25484 ? S 6月29 0:03 php-fpm: pool www www 30113 0.0 0.6 214952 25172 ? S 6月29 0:03 php-fpm: pool www
同样的,我们也是看
php-fpm: pool www
这个这种前面的www
就可以了通过上面的查询,我们知道了服务器端使用的是
www
用户当第一次拉代码后,我们执行完
git pull
之后,只需要对服务器上的根目录执行以下操作即可
chown -R www:www storage
目前尚无回复