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
関連記事
-  
            
              - 
      
S3に置いたMP3ファイルをTwilioから電話再生する(AWS Lambda Python)
Google Calendar Twilio ReminderのTwilioを使 …
 
-  
            
              - 
      
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト – プロフェッショナル」を執筆しました
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテク …
 
-  
            
              - 
      
AWS CodPipelineの実行モードの動作確認しました
AWS CodePipelineの3つの実行モード(SUPERSEDED(優先済 …
 
-  
            
              - 
      
CloudFormation Lambda-backedカスタムリソースチュートリアルをやりました
チュートリアル: Amazon マシンイメージ ID を参照するの手順に従ってや …
 
-  
            
              - 
      
EC2スケジュールリザーブドインスタンスって終わりましたん?
ユーザーガイドのScheduled Reserved Instancesを見ると …
 
-  
            
              - 
      
Cloud9でSAMローカルテスト
せっかくテストするので、Amazon CloudSearchからAmazon E …
 
-  
            
              - 
      
re:Invent 徒歩記(シアトルも)
このブログは、AWS re:invent 2018 Advent Calenda …
 
-  
            
              - 
      
AWS Organizationsで組織全体のAWS CloudTrailを有効にしました
Organizationsのサービスメニューから、CloudTrailを選択して …
 
-  
            
              - 
      
Amazon Pollyを使って覚えたい資料を耳から身体に染み込ませる
Amazon Pollyを使うとソースコードを一切かかなくても、テキストを音声に …
 
-  
            
              - 
      
AWS Toolkit for Eclipseをセットアップ(2021年版)
AWS Toolkit for Eclipseをセットアップするで6年前に書いて …
 


