LoginSignup
0
1

More than 3 years have passed since last update.

anyenvをシステムワイドにインストール:aws linux2

Last updated at Posted at 2019-10-11

背景

anyenvは個人でも便利でよく使うものですが、主に開発環境のところで利用していました。今回は本番などでウェブサーバー(phpenv)を利用する場合を想定してシステムワイドにインストールする方法をやってみます。
参考:https://qiita.com/mikesorae/items/e8e2d13b6b46b60ef4c4

概要

  • Versionのインストールはrootユーザー
  • 利用は全ユーザー

インストール

上記の参考URLの内容にすると以下のエラーに出ました。

ANYENV_DEFINITION_ROOT(/*********/.config/anyenv/anyenv-install) doesn't exist. You can initialize it by:

解決方法として調べた内容がこちらです。sudo及びrootで実装で実行します。

cd /opt
git clone https://github.com/riywo/anyenv
echo 'export PATH="/opt/anyenv/bin:$PATH"' >> /etc/profile.d/anyenv.sh
echo 'export ANYENV_ROOT="/opt/anyenv"' >> /etc/profile.d/anyenv.sh
echo 'export ANYENV_DEFINITION_ROOT="/opt/anyenv/share/anyenv-install"' >> /etc/profile.d/anyenv.sh
echo 'eval "$(anyenv init -)"' >> /etc/profile.d/anyenv.sh
exec $SHELL -l

勿論、直ぐにphpenvをインストールしたりしたければ、上記の設定が反映されないと動けないです。
*2019-10-28:以下の実装を入れた方が良いかと

ln -s /opt/anyenv/envs/phpenv/shims/php /bin/php

phpenvでの注意点

基本的にversionのインストールはroot権限があるユーザーで行う設定ですが、phpenvでインストールした後にcomposerを実行すると「/opt/anyenv/envs/phpenv/shims/composer」が実行されてcomposerをインストールを行います。
ただし、ファイルの権限で以下のようになってしまい、他のユーザーが使用時にpermissionエラーが出る場合があります。

# /opt/anyenv/env/phpenv/versions/*.*.*/composer/の内容
-rw-------  1 root root     124 Nov 11 12:32 auth.json
-rwxr-xr-x  1 root root 1933813 Nov 11 12:32 composer.phar
-rw-------  1 root root      21 Nov 11 12:32 config.json
-rw-r--r--  1 root root      13 Nov 11 12:32 .htaccess

なので以下のコマンドでpermissionの修正をした方が良いです。phpenvの設定でできるか調べてはいますが、まだ見つからない状態です。

# chmode 644 *.json

AWS Linux2での注意点

phpenvでphp7.3.*をインストールする際に以下の物を先にインストールしました。

sudo yum -y install gcc libxml2 libxml2-devel libcurl libcurl-devel libpng libpng-devel libmcrypt libmcrypt-devel libtidy libtidy-devel libxslt libxslt-devel openssl-devel bison libjpeg-turbo-devel readline-devel autoconf bzip2-devel libicu-devel gcc-c++ libzip libzip-devel re2c libtidy

だが、AWS Linux2では以下のエラーでlibtidyが出来ませんでした。

$ yum -y install libtidy libtidy-devel
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
26 packages excluded due to repository priority protections
No package libtidy available.
No package libtidy-devel available.

原因は「amzn-main?」ではlibtidyがないことでした。それで以下のコンマンドでインストールがでいました。
参考:https://dev.classmethod.jp/cloud/aws/amazon-linux-2-enable-epel-repository-with-amazon-linux-extras/

amazon-linux-extras install -y epel
yum --enablerepo=epel install libtidy-devel
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1