by Devin Yang

建立于: 6年前 ( 更新: 6年前 )

关於D-Laravel的Chowner

本文说明在D-Laravel中chowner的功能。
如果您是Linux的使用者,可能需进行这个动作。

为何要Chowner

我们先这么理解,虽然是容器,但在Linux系统中Docker的container,所使用的uid会是您的host端使用的uid是相同权限(共用同一个Kernel)。
当您host端的uid为500时 ,去启动了D-Laravel的container,fpm的Container中的dlaravel(默认1000)是无权写文件到您的目录的。
所以啦,Laravel的网页就会喷一堆错误给您罗,因为fpm中的dlaravel无法写文件到storage的目录内。

解法有三

一、最简单的方式,我们直接在Host端的Linux系统,创建一个uid及gid为1000使用者,用来运行D-Laravel。
二、我们透过chowner,将D-Laravel的FPM中container的userid变更为自己所使用的uid,例如: 500。
三、自己重新Build一个FPM的image,并且设置uid为自己host端的使用者。

D-Laravel chowner操作流程

(OSX使用者不需进行,因为OSX使用的为虚拟环境Hyperkit运作的)
1. ./console up 
启动container

2. ./console chowner
调整container内的uid与您的uid相同。

3. docker ps|grep deviny/fpm
找出dlaravel使用的fpm,我们需要把变更的container,commit为新的image。


4. docker commit 04496a60f0e7 myfpm724
上方的image名称可以自己取,或者我们直接覆写使用的image。
docker commit 04496a60f0e7 deviny/fpm:7.2.4
您需要调整docker-compose.yml中php服务所使用的image名称,如果自已取了新的名称。

5.在D-Laravel的目录中运行,cd etc/php-fpm.d
进入fpm设置档目录。

6. cp www.conf.sample www.conf 
将sample档,拷贝为www.conf,并修改里面的uid为您相同的使用者
user = 500
group = 500
如何得知,自己运行的uid及gid呢,可以在终端机中输入id即可得知。

7. ./console restart
重启container

8. ./console
进入fpm的container。

9. id
确认重启后,container内,使用我们所设置的新uid,非1000。
 

Tags: dlaravel

Devin Yang

文章内容无法一一说明,如果您有什么不了解处,欢印提问哦:)

No Comment

Post your comment

需要登入才可留言!

类似文章


dlaravel

D-Laravel v1.5.0新版本了。

一、变更fpm的image生成方式,优化dockerfiles/fpm/php7.x/Dockerfiles,更容易设置及调整扩展包。 二、调整docker-compose-build.yml,并在D-Laravel的Project目录下, 可透过./console build快速创建自己的image罗。 还有更多的变更....

nginx,dlaravel

如何设置nginx上的HTTPS,取得Qualys的SSL A+评分

本文介绍如何调整nginx的ssl设置,让网站取得SSL报告,取得A+的评比。 这里我使用的为 letsencrypt 免费证书。 只要您使用D-Laravel默认的Docker官方nginx新版image,应该都可以达到跟我一样的效果。 可透过下方检测您的主机SSL设置。 https://www.ssllabs.com/ssltest/index.html

php,docker,dlaravel

我创建的phpenv容器环境简单介绍

没时间拍介绍影片,我就来随便抓些画面介绍我使用的容器环境deviny/phpenv。https://github.com/DevinY/phpenvphpenv算是我之前D-Laravel开源项目的进化版本,概念上延用了很多Dlaravel的操作方式。容器的更新上偏向使用者自行控制去Build自己的image,所以我不太会去更动版号了,其实D-Laravel的php版号,好像我也很久没动啦:p