Bash 스크립트를 통해 AWS 인스턴스를 시작하려고 합니다. Bash 스크립트는 PHP 스크립트에 의해 호출됩니다.
내 샘플 PHP 스크립트:
<?php
exec("sh /var/www/html/pushDatToAWS.sh >> $trainLog");
?>
내 bash 스크립트의 예:
#!/bin/bash
insId='i-abcde'
aws ec2 start-instances wait --instance-ids $insId --region us-west-2
내 컴퓨터에 aws cli를 구성했습니다. 다음 오류가 발생합니다.
/var/www/html/pushDatToAWS.sh: 21: /var/www/html/pushDatToAWS.sh: aws: not found
파일에는 777 권한이 있으며 터미널에서 실행하려고 하면 모든 것이 잘 작동합니다. 확인해 보니 which aws
내가 받은 응답이 표시되었습니다 /home/name/.local/bin/aws
. bashrc로 경로를 내보냈습니다.
export AWS_PATH=$PATH:/home/magesh/.local/bin
aws start 인스턴스 명령에 대한 경로를 하드코딩해 보았습니다.
/home/name/.local/bin/aws start-instances wait --instance-ids $insId --region us-west-2
이에 대한 권한 거부 오류가 발생합니다. 폴더의 사용자 소유권을 root:www-data
및 으로 변경해 보았습니다 username:www-data
. 둘 다 작동하지 않습니다.