EC2にsvgexportを入れるメモ

1.EC2でnpmを使えるようにnodejsを入れる

qiita.com

(追記)

※上の方法だと、PHPのexecからsvgexportが使えなかった。

ログに以下のエラーが表示された。

/usr/bin/env: node: No such file or directory

 理由はよくわからないが、恐らくnodejsがインストールされる位置が、

/home/ec2-user/.nvm/versions/node/v8.10.0/bin/svgexport

のようになるからだと思う。

 

よって、nvmを使ってインストールせず、直接ソースからインストールし直した。

$ sudo yum groupinstall 'Development tools'
$ curl -O https://nodejs.org/download/release/latest-v9.x/node-v9.8.0.tar.gz
$ tar xvf node-v9.8.0.tar.gz
$ cd node-v9.8.0
$ ./configure --prefix=/usr/local 
$ make            ←★ここでむっちゃ時間かかる
$ sudo make install

$ which node
/usr/local/bin/node

 

※アンインストールは、

$ cd node-v9.8.0

$ make uninstall

 

この状態でsvgexportをインストールすると

npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'

というエラーになった。

npmでpermission deniedになった時の対処法[mac] - Qiita

上記サイトをみて、

npm config get prefixを実行して、/usr/localが表示されることを確認し、

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

SSHでうってやると、インストールできた。

 

ここで、SSHからsvgexportを実行すると正常にSVGPNGに変換されるのだが、

PHPからexecでsvgexportを実行すると、以下のエラーが出た。

/usr/bin/env: node: No such file or directory

 

どうやら、nodeの実行場所が、

$which node
/usr/local/bin/node

になっているのが原因らしい。

よって、以下のサイトをみて、/usr/bin/node にシンボリックリンクを貼ってやると

うまくいった。

Ubuntuに最新のNode.jsを難なくインストールする - Qiita

sudo ln -sf /usr/local/bin/node /usr/bin/node

 

あ~、しんど。

 

 

2.svgexportのインストール

github.com

 

以上

 

---以下不使用

1.EC2でepelの有効化
sudo yum-config-manager --enable epel

確認は、
yum repolist all

2.nodejsのインストール
$ sudo yum install epel-release
$ sudo yum install nodejs

確認は、
$ node -v

3.npmのインストール
sudo yum install npm

4.nのインストール
sudo npm install -g n
sudo n latest

5.npmのアップデート
npm update -g npm


4.svgexportのインストール
npm install svgexport -g