別ユーザーでインストールしたツールをPHPのexecで実行するとPermission deniedになる
AmazonEC2に「svgexport」というツールをインストールしました。
https://github.com/shakiba/svgexport
上のURLに書いてあるとおり、
npm install svgexport -g
でインストールしたのですが、インストールされた場所が、ec2-userの下になってしまいました。
<SSHでのインストール場所の確認>
[ec2-user@ip-172-31-31-27 ~]$ which svgexport
~/.nvm/versions/node/v8.10.0/bin/svgexport
恐らくそのせいと思うのですが、
PHPの中からexecでsvgexportを実行すると、Permission deniedで実行できません。
<PHPからexecで実行した文>
exec('/home/ec2-user/.nvm/versions/node/v8.10.0/bin/svgexport
/var/www/html/test.svg /var/www/html/test.png');
<ログに書き出した実行結果>
$output= Array
(
[0] => sh: /home/ec2-user/.nvm/versions/node/v8.10.0/bin/svgexport:
Permission denied
)
SSHでec2-userで直接コマンドを実行すると、正常に変換されます。
<SSHで正常にいくコマンド>
[ec2-user@ip-172-31-31-27 ~]$ /home/ec2-
user/.nvm/versions/node/v8.10.0/bin/svgexport /var/www/html/test.svg
/var/www/html/test.png
ec2-userで正常に実行できていますので、パーミッションの関係だと思うのですが、どうすればいいのかがわかりません。
どなたかご教授いただけますようお願いいたします。
どうぞよろしくお願いします。
[追記]
コメントをいただきましたので、ec2-userのパーミッションを以下に追記させていただきます。
[ec2-user@ip-172-31-31-27 ~]$ ls -la
total 1208
drwx------ 14 ec2-user ec2-user 4096 Mar 19 08:08 .
drwxr-xr-x 5 root root 4096 Feb 19 02:37 ..
drwxrwxr-x 2 ec2-user ec2-user 4096 Mar 8 05:27 .aws
-rw------- 1 ec2-user ec2-user 32482 Mar 19 07:19 .bash_history
-rw-r--r-- 1 ec2-user ec2-user 18 Aug 30 2017 .bash_logout
-rw-r--r-- 1 ec2-user ec2-user 284 Mar 19 07:48 .bash_profile
-rw-r--r-- 1 ec2-user ec2-user 329 Mar 18 02:28 .bashrc
drwxrwxr-x 3 ec2-user ec2-user 4096 Feb 19 06:23 .composer
drwx------ 3 ec2-user ec2-user 4096 Mar 13 05:40 .config
drwxrwxr-x 92 ec2-user ec2-user 4096 Mar 19 07:50 .npm
drwxrwxr-x 9 ec2-user ec2-user 4096 Mar 19 07:56 .nvm
これ以降、
.nvm、versions、node、v8.10.0、binまでのパーミッションは、drwxrwxr-xでした。
/home/ec2-user/.nvm/versions/node/v8.10.0/binの中のパーミッションは以下になっていました。
[ec2-user@ip-172-31-31-27 bin]$ ls -la
total 34088
drwxrwxr-x 2 ec2-user ec2-user 4096 Mar 19 07:58 .
drwxrwxr-x 7 ec2-user ec2-user 4096 Mar 19 07:58 ..
-rwxrwxr-x 1 ec2-user ec2-user 34895869 Mar 6 22:47 node
lrwxrwxrwx 1 ec2-user ec2-user 38 Mar 6 22:47 npm ->
../lib/node_modules/npm/bin/npm-cli.js
lrwxrwxrwx 1 ec2-user ec2-user 38 Mar 6 22:47 npx ->
../lib/node_modules/npm/bin/npx-cli.js
lrwxrwxrwx 1 ec2-user ec2-user 42 Mar 19 07:58 svgexport ->
../lib/node_modules/svgexport/bin/index.js
../lib/node_modules/svgexport/bin/の中のパーミッションは以下の通りでした。
[ec2-user@ip-172-31-31-27 bin]$ ls -la
total 12
drwxrwxr-x 2 ec2-user ec2-user 4096 Mar 19 07:58 .
drwxrwxr-x 5 ec2-user ec2-user 4096 Mar 19 07:58 ..
-rwxrwxr-x 1 ec2-user ec2-user 62 Mar 19 07:58 index.js