Amazon Linux2(EC2)にEC-CUBE 4をインストール
2021/06/06
こちらのHOMEお知らせ・コラムAmazon Linux2にEC-CUBE4.0.4をインストールする手順~1~
Amazon Linux2にEC-CUBE4.0.4をインストールする手順を参考に、少し手順を変えて実行しています。
変えたポイントは以下です。
* セッションマネージャが使いたかったのでec2-userではなくssm-userで実行。
* composer2だとエラーになるのでcomposerのインストールでバージョン指定。
目次
EC2とRDS
Amazon Linux 2
t3.small
Aurora Serverless (MySQL 5.7)
ACU 1~4
最初のデータベースでeccube作成
事前設定とEC-CUBEインストール
Rootに変更してタイムゾーン、文字コードの変更、モジュールアップデート
1 2 3 4 5 |
$ sudo su - timedatectl set-timezone Asia/Tokyo sed -i "s/en_US\.UTF-8/ja_JP\.UTF-8/g" /etc/sysconfig/i18n yum update -y |
MySQLクライアントをインストールしてログイン確認
1 2 3 |
yum install -y mysql mysql -h ec-cube.cluster-xxxxxxxx.us-east-1.rds.amazonaws.com -u admin -p |
データベースの存在確認
1 2 3 4 5 6 7 8 9 10 11 12 13 |
MySQL [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | eccube | | mysql | | performance_schema | | sys | +--------------------+ MySQL [(none)]> quit Bye |
Apacheインストールと自動起動
1 2 3 |
yum install -y httpd systemctl enable httpd.service |
Apacheの設定
1 2 |
vim /etc/httpd/conf/httpd.conf |
AddType application/x-httpd-php .phpを追記
1 2 3 4 5 6 7 |
<IfModule mime_module> ~省略~ AddType text/html .shtml AddOutputFilter INCLUDES .shtml AddType application/x-httpd-php .php # 追加 </IfModule> |
AllowOverride NoneをAllに変更
1 2 3 4 5 6 7 8 9 10 |
<Directory "/var/www/html"> ~省略~ #AllowOverride None # コメントアウト AllowOverride All # 追加 # # Controls who can get stuff from this server. # Require all granted </Directory> |
PHP7.2と必要ライブラリのインストール
1 2 3 |
amazon-linux-extras install -y php7.2 yum install -y php-mbstring php-xml php-intl |
メモリサイズ変更
1 2 |
vim /etc/php.ini |
1 2 3 |
# memory_limit = 128M # コメントアウト memory_limit = 256M #追加 |
Apache再起動
1 2 |
systemctl restart httpd.service |
Gitインストール
1 2 |
yum install -y git |
ssm-userをapacheグループに追加して、パーミッションの変更
1 2 3 4 5 6 |
usermod -a -G apache ssm-user chown -R ssm-user:apache /var/www chmod 2775 /var/www find /var/www -type d -exec sudo chmod 2775 {} \; find /var/www -type f -exec sudo chmod 0664 {} \; |
ssm-userに戻る
1 2 3 4 |
exit $ bash $ cd ~ |
composer 1.10.10インストール
Composer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" $ php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" $ php composer-setup.php --version=1.10.10 $ php -r "unlink('composer-setup.php');" $ sudo mv composer.phar /usr/local/bin/composer $ composer -v ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 2.0.14 2021-05-21 17:03:37 ~省略~ |
EC-CUBEインストール
1 2 3 4 5 6 7 8 9 10 |
$ cd /var/www/html/ $ git clone https://github.com/EC-CUBE/ec-cube.git $ chmod 764 ec-cube/bin/console $ cd ec-cube/ $ composer install ~省略~ Executing script cache:clear --no-warmup [OK] Executing script cache:warmup --no-optional-warmers [OK] Executing script assets:install --symlink --relative html [OK] |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
$ bin/console eccube:install EC-CUBE Installer Interactive Wizard ==================================== If you prefer to not use this interactive wizard, define the environment valiables as follows: $ export APP_ENV=prod $ export APP_DEBUG=0 $ export DATABASE_URL=database_url $ export DATABASE_SERVER_VERSION=server_version $ export MAILER_URL=mailer_url $ export ECCUBE_AUTH_MAGIC=auth_magic ... and more $ php bin/console eccube:install --no-interaction Database Url [sqlite:///var/eccube.db]: > mysql://admin:password@ec-cube.cluster-xxxxxxxx.us-east-1.rds.amazonaws.com/eccube Mailer Url [null://localhost]: > smtp://smtp.gmail.com:465 Auth Magic [5FOKdTFHX4oiUUiz]: > ! ! [CAUTION] Execute the installation process. All data is initialized. ! Is it OK? (yes/no) [yes]: > yes Run doctrine:database:create --if-not-exists... Database `eccube` for connection named default already exists. Skipped. Run doctrine:schema:drop --force... Dropping database schema... [OK] Database schema dropped successfully! Run doctrine:schema:create... ! [CAUTION] This operation should not be executed in a production environment! Creating database schema... [OK] Database schema created successfully! Run eccube:fixtures:load... > Finished Successful! Run cache:clear --no-warmup... // Clearing the cache for the prod environment with debug // false [OK] Cache for the "prod" environment (debug=false) was successfully cleared. [OK] EC-CUBE installation successful. |
確認と初期処理
EC2のパブリックDNSに /ec-cube/ を付加してブラウザからアクセス。
管理画面が表示されました。
admin, passwordが初期状態です。
ログインしてパスワードを変更しました。
このあと、例えばALBを使ったり、ElasticIPでIPアドレスを固定化することで、DNSが変更となった場合も、EC-CUBE4ではドメインの設定は必要ないそうです。
私もEC2インスタンスを停止して開始してパブリックDNSが変わってもそのままアクセスできました。
Composer2 でインストールしようとしたときのエラー
1 2 |
$ composer install |
実行時にエラー
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Your lock file does not contain a compatible set of packages. Please run composer update.
Problem 1
– ec-cube/plugin-installer is locked to version 0.0.8 and an update of this package was not requested.
– ec-cube/plugin-installer 0.0.8 requires composer-plugin-api ^1.0 -> found composer-plugin-api[2.0.0] but it does not match the constraint.
Problem 2
– ocramius/package-versions is locked to version 1.4.2 and an update of this package was not requested.
– ocramius/package-versions 1.4.2 requires composer-plugin-api ^1.0.0 -> found composer-plugin-api[2.0.0] but it does not match the constraint.
Problem 3
– ocramius/package-versions 1.4.2 requires composer-plugin-api ^1.0.0 -> found composer-plugin-api[2.0.0] but it does not match the constraint.
– ocramius/proxy-manager 2.1.1 requires ocramius/package-versions ^1.1.1 -> satisfiable by ocramius/package-versions[1.4.2].
– ocramius/proxy-manager is locked to version 2.1.1 and an update of this package was not requested.
ocramius/package-versions only provides support for Composer 2 in 1.8+, which requires PHP 7.4.
If you can not upgrade PHP you can require composer/package-versions-deprecated to resolve this with PHP 7.0+.
You are using Composer 2, which some of your plugins seem to be incompatible with. Make sure you update your plugins or report a plugin-issue to askthem to support Composer 2.
PHPを7.4でやり直しても同じエラー
なので、Composerのインストールで元手順の1.10.10になるようにあわせました。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
AWS CloudShellでboto3(SDK for Python)使うならpython3
本の執筆をしていて、ちょっとAWS CLIやSDKのふるまいを確認したいことがあ …
-
Cloud9でSAMローカルテスト
せっかくテストするので、Amazon CloudSearchからAmazon E …
-
ヤマムギvol.27 Amazon Route 53プライベートホストゾーンとリゾルバーのデモをしました
今日は『AWS認定資格試験テキスト&問題集AWS認定ソリューションアーキ …
-
AWS Lambda KMSを使って環境変数を暗号化、復号化する(Python)
Lambda内で外部APIを使用する場合などをユースケースとして、環境変数をKM …
-
AWS Savings Plansを検討しました
今、個人でAWSアカウントを7つ使っています。 Savings Plansが使え …
-
リザーブドインスタンスはじめました
このブログも2014年9月にはじめたので、もうすぐ3年。 1件~17件とばらつき …
-
AWS Organizations組織でCompute Optimizerを有効にしました
OrganizationsでCompute Optimizerの信頼されたアクセ …
-
AWS EC2 Amazon Linuxにmauticをインストールする(Sendgrid, Nginx, MySQL on RDS)
mauticをAmazon LinuxとNginx,MySQL on RDSにイ …
-
AWSアカウント内特定リージョン内のDynamoDBテーブルを全削除するLambda(Python)
やりたいこと タイトル通りですが、特定アカウントの特定リージョン内のDynamo …
-
AWS Lambda(Python)からTwitterに投稿する
「GoogleフォームからAPI Gatewayで作成したREST APIにPO …