背景:我面临这个错误AWS代码部署抛出"[stderr]无法打开输入文件";在安装后步骤尝试从sh文件调用php文件时
在afterInstall步骤中,我试图从afterInstall.sh文件运行一个php文件,但我收到了这个错误-无法打开php文件。
我不知道该怎么办。我想手动检查我是否可以以该用户的身份运行该文件。
CodeDeploy代理的默认用户是root
。
下面的目录列表显示了成功部署后目标文件夹/tmp
中已部署文件的所有权。
ubuntu@ip-10-0-xx-xx:~$ ls -l /tmp
total 36
-rw-r--r-- 1 root root 85 Aug 2 05:04 afterInstall.php
-rw-r--r-- 1 root root 78 Aug 2 05:04 afterInstall.sh
-rw-r--r-- 1 root root 1397 Aug 2 05:04 appspec.yml
-rw------- 1 root root 3189 Aug 2 05:07 codedeploy-agent.update.log
drwx------ 2 root root 16384 Aug 2 03:01 lost+found
-rw-r--r-- 1 root root 63 Aug 2 05:04 out.log
-
runas是AppSpec文件中的一个可选文件。运行脚本时要模拟的用户。默认情况下,这是在实例上运行的AWS CodeDeploy代理(如果您没有指定非root用户,它将是root用户)。
-
要以非根用户身份运行host agent,需要设置环境变量CODEDEPLOY_user,如指向host agent源代码的链接所示。env变量可以设置为您希望host agent以何种用户身份运行。