読者です 読者をやめる 読者になる 読者になる

phpからconvertするとき、エラーを見る方法

qiita.com

EC2へのGDのインストール

qiita.com

 

phpから画像を作成しようとすると、動かない。

phpinfoでみると、GDが入ってないことに気づいた。

 

php -m | grep gd

 

yum install php-gd

でインストールしようとしたが、何かエラーで終わる。

 

yum list | grep gd

で調べる。

dbm.x86_64 1.8.0-36.6.amzn1 installed
gdbm-devel.x86_64 1.8.0-36.6.amzn1 @amzn-main
gdisk.x86_64 0.8.10-1.5.amzn1 installed
php70-gd.x86_64 7.0.16-1.21.amzn1 @amzn-main
rubygem20-bigdecimal.x86_64 1.2.0-1.29.amzn1 installed
gd.i686 2.0.35-11.10.amzn1 amzn-main
gd.x86_64 2.0.35-11.10.amzn1 amzn-main
gd-devel.x86_64 2.0.35-11.10.amzn1 amzn-main
gd-progs.x86_64 2.0.35-11.10.amzn1 amzn-main
gdb.x86_64 7.6.1-64.33.amzn1 amzn-main
gdb-doc.noarch 7.6.1-64.33.amzn1 amzn-main
gdb-gdbserver.x86_64 7.6.1-64.33.amzn1 amzn-main
gdbm.i686 1.8.0-36.6.amzn1 amzn-main
graphviz-gd.x86_64 2.38.0-18.50.amzn1 amzn-main
hunspell-gd.noarch 1.0.0-0.3.rc.2.2.amzn1 amzn-main
php-gd.x86_64 5.3.29-1.8.amzn1 amzn-main
php54-gd.x86_64 5.4.45-1.75.amzn1 amzn-main
php55-gd.x86_64 5.5.38-2.119.amzn1 amzn-main
php56-gd.x86_64 5.6.30-1.133.amzn1 amzn-main
rubygem-bigdecimal.noarch 1:2.0-0.3.amzn1 amzn-main
rubygem19-bigdecimal.x86_64 1.1.0-32.70.amzn1 amzn-main
rubygem21-bigdecimal.x86_64 1.2.4-1.19.amzn1 amzn-main
rubygem22-bigdecimal.x86_64 1.2.6-1.8.amzn1 amzn-main
rubygem23-bigdecimal.x86_64 1.2.8-1.13.amzn1 amzn-main

 

以下のコマンドを実行。

yum install php70-gd.x86_64

 

うまくいった。

 

 

EC2にS3をマウントする

<前準備>

◆稼働中のEC2にIAMロールを割り当てる

既存のAmazon EC2インスタンスにIAM Roleがアタッチできるようになりました | Amazon Web Services ブログ

IAMロールなしで起動された既存のEC2インスタンスにIAMロールをアタッチ」を参照

 

qiita.com

blog.proudit.jp

しかし、その前に、aws-cliのバージョンを最新にあげる必要があります。

$aws --version
aws-cli/1.11.76 Python/2.7.12 Linux/4.9.20-10.30.amzn1.x86_64 botocore/1.5.39

 

アップグレードは以下のコマンド。

sudo pip install -U awscli

と書いてあったが、

sudo: pip: command not found

となる。

パスが通ってないぽいので、結局、

sudo /usr/local/bin/pip install -U awscli

でできた。

 

※上のブログで、
$aws ec2 associate-iam-instance-profile --instance-id インスタンスID --iam-instance-profile Name=インスタンスプロファイル名

と書いているが少しわかりにくい。以下の方がわかりやすい。

$aws ec2 associate-iam-instance-profile --instance-id インスタンスID --iam-instance-profile Name=ロール名

 

<作業本番>

1.S3バケットの準備

ここは簡単なので割愛

 

2.goofysのインストール

goofysインストール
sudo yum update -y
sudo yum install golang fuse -y
export GOPATH=/home/XXXX/go (←自分の場合は、/home/photoXXXX/go ここにインストされる) 
go get github.com/kahing/goofys
go install github.com/kahing/goofys

 

3.S3マウント

$ mkdir /var/www/html/XXXXX/mount    ←マウントさせるディレクト

$ /home/photoXXXX/go/bin/goofys S3バケット名 /var/www/html/XXXXX/mount

 

4.自動マウント設定

上記の2番目のブログを参照

 

※rootのアクセスキーを変更した時

コマンドで

sudo aws configure

をやり直す。

 

AWSのアカウント設定でやること

AWSベストプラクティスに準拠させることが重要

Amazon EC2 のベストプラクティス - Amazon Elastic Compute Cloud

 

・IAM ユーザーの作成

・多要素認証(MFA)仮想デバイスの有効化

※IAMユーザーとrootユーザーの両方の設定が必要

 IAMユーザーでログインして設定し、ログアウト後、rootでログインし直し、

 再度設定

 

・IAMユーザーへの請求画面へのアクセス設定

 →rootでログイン→アカウント→「IAM ユーザー/ロールによる請求情報へのアクセス」の横の「編集」→「IAM アクセスのアクティブ化」にチェック

 

 

EC2への最新版ImageMagickのインストール覚書

基本的には、以下に書いてあるとおりである。

www.bunkei-programmer.net

qiita.com

しかし、そのまますると、途中で、

configure: error: no acceptable C compiler found in $PATH

というエラーがでた。

よって、先に

# yum -y install gcc

をしておく。

あと、試しに変換してみると以下のエラーが表示された。

convert: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/509.

 

PNGが変換できないというエラーだが、ここで5時間位、はまった。

 

当初、libpngの最新版をインストールしようとして

wgetで最新版を落としてインストールしたが、

どうやってもPNGが使えるようにならなかった。

 

解決策は、yum でlibpngを入れると使えるようになった。

libpng - How to install GraphicsMagick with PNG support on Amazon EC2? - Stack Overflow

 

なんでもかんでも最新版を入れればいいってもんじゃないんだな。

 

 

(参考にしたが、この方法では使えなかった) 

PNGが変換できないようなので、以下も必要

d.hatena.ne.jp

dqn.sakusakutto.jp

 

 

vi の覚書

viを終了することができない人のためのviの使い方 | 三度の飯とエレクトロン

i コマンドモードから入力モードにする
ESC 入力モードからコマンドモードにする。
コマンドモードで:wq 保存して終了
コマンドモードで:q! 保存しないで終了

作業の流れはこんな具合です。

  1. viを起動する
  2. iで入力モードにする
  3. 入力する
  4. ESCでコマンドモードにする
  5. :wqで保存して終了する

検索は、

/<文字列> 文字列 を検索する(順方向)
?<文字列> 文字列を検索する(逆方向)
n 順方向へ検索する
N 逆方向へ検索する

さらくへのLaravelのインストールメモ

1.teraterm起動

 

1.2.まず、/home/自分のアカウント/の下にbinを作成しておく

(ここにcomposerをインストールしないとコマンドがどこからでも通らなくて不便)

 

2.composerのインストール

% curl -sS https://getcomposer.org/installer | php -- --install-dir=bin --filename=composer

 

3.確認(一旦ログアウト後)

% composer

 

4.laravelのインストール

% composer create-project laravel/laravel testapp --prefer-dist

 

5.publicフォルダーを、www/自分のディレクトリ/public に移動

% mv public ../www/自分のディレクトリ/public

 

6.設定

www/自分のディレクトリ/XXX/index.php を開いて、22行目と36行目を修正

require __DIR__.'/../../../testapp/bootstrap/autoload.php';
 
$app = require_once __DIR__.'/../../../testapp/bootstrap/app.php';
 
7..htaccess を開いて、3行目のoptionをコメントアウト
 #Options -MultiViews
 
8.ブラウザからアクセス
http://自分のドメイン/public/index.php
(http://自分のドメイン/public/ でも可)
 
9.さくらの管理画面のドメイン設定「

 2. マルチドメインの対象のフォルダをご指定ください

」で、
/自分のドメイン/public/
を指定する。
 
10.これで、http://自分のドメイン/でアクセスできるようになる。
 
めでたしめでたし。