본문 바로가기
관심분야

AWS|EC2 마젠토 2.4 설치를 위한 Apache,Mysql,PHP설치하기

by beresford 2023. 2. 11.

AWS에서 EC2 인스턴스(Ubuntu 22.04.1 LTS)가 준비되었으면 다음단계로 마젠토 설치를 위한 첫 단계로 Apache, Apache, MySQL, PHP설치하는 과정을 알아보도록 하겠습니다LAPM 즉 Linux+Apache+MySQL+PHP의 조합은 상호 연동이 잘되면서도 오픈소스로 개발되는 무료 프로그램이어서 홈페이지나 인터넷쇼핑몰 등 일반적인 웹 개발에 널리 사용되고 있습니다. 마젠토 2.4부터는 설치 마법사가 지원되지 않아서 모든 설치는 Command 실행(CLI)을 통해서수행해야 하므로 Linux 명령어에 익숙하지 않은 사용자에게는 마젠토 설치과정이 어려워졌습니다.  

 

Apache 설치

현재 거의 모든 리눅스 배포판이 아파치를 지원합니다. 먼저 아파치 웹서버를 설치하도록 하겠습니다. root권한이 필요하며 SSH로 로그인합니다. 

1) 아파치를 설치하기 전에 레파지토리의 패키지 목록을 update 합니다.

$ sudo apt update

2) 아파치를 설치합니다.

$sudo apt install apache2

Apache2 설치
Apache2 설치

3) 웹브라우저에서 도메인 네임이나 서버 IP를 입력해서 Apache2의 초기화면이 보이면 설치가 정상적으로 완료된 상태입니다.

Apache2 초기화면
Apache2 초기화면

4)  apache2를 start, stop, reload 수행을 systemctl명령어로 실행할 수 있으며 status의 상태정보도 확인할 수 있습니다.

◇ 서비스 시작: sudo systemctl start apache2.service

 서비스중단: sudo systemctl stop apache2.service

 서비스 상태확인: sudo systemctl status apache2.service

 서비스를 중지하지 않고 설정값을 반영: sudo systemctl reload apache2.service

 

humber@ip-172-31-47-0:~$ systemctl status apache2
     apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>
     Active: active (running) since Fri 2023-02-10 17:12:09 UTC; 15min ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 12136 (apache2)
      Tasks: 55 (limit: 1143)
     Memory: 5.3M
        CPU: 77ms
     CGroup: /system.slice/apache2.service
             ├─12136 /usr/sbin/apache2 -k start
             ├─12138 /usr/sbin/apache2 -k start
             └─12139 /usr/sbin/apache2 -k start

 

5) Apache2의 버전 및 alive확인

humber@ip-172-31-47-0:~$ apache2 -v
Server version: Apache/2.4.52 (Ubuntu)
Server built:   2023-01-23T18:34:42

Mysql 설치

MYSQL은 빠르고 유연하며 사용하기 쉬운 특징을 가지고 있으며 전 세계적으로 가장 널리 사용되고 있는 오픈 소스의 데이터베이스 관리시스템(DBMS)입니다.  

1) Mysql를 설치하기 전에 레파지토리의 패키지 목록을 update 합니다.

$ sudo apt update

 

2) Mysql서버 설치합니다.

humber@ip-172-31-47-0:~$ sudo apt install mysql-server

 

3) 설치된 Mysql서버 Version확인하기 위해서  mysql -v 명령을 수행합니다.

humber@ip-172-31-47-0:~$ sudo mysql -v
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.32-0ubuntu0.22.04.2 (Ubuntu)


4) root권한으로 DBMS에 로그인하여 sql문으로 사용자계정정보를 조회하고 roor계정에 패스워드를 설정합니다.

humber@ip-172-31-47-0:~$ sudo mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.32-0ubuntu0.22.04.2 (Ubuntu
mysql>  SELECT user,authentication_string,plugin,host FROM mysql.user;
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| user             | authentication_string                                                  | plugin                | host      |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| debian-sys-maint | $A$005$~M"r^fAs}QLUjL?ZmmeuLNh6a5MKIhvG1sHoJxS/IQDyNLp7VQoZXcMM/4 | caching_sha2_password | localhost |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| root             |                                                                        | auth_socket           | localhost |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
5 rows in set (0.00 sec)
mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_secure_password';
mysql>exit

 

6) root계정으로 로그인하여 magento2용 데이터베이스를 생성하고 show명령으로 확인합니다.

humber@ip-172-31-47-0:~$ sudo mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.0.32-0ubuntu0.22.04.2 (Ubuntu)

mysql> create database magento2;

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| magento2           |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)

 

6) Magento2에 사용할 사용자계정을 만들어 패스워드를 설정하고 권한을 부여합니다.
mysql>CREATE USER 'magento2user'@'localhost' IDENTIFIED BY 'your_secure_password';
mysql>ALTER USER 'magento2'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_secure_password';
mysql>GRANT ALL PRIVILEGES ON *.* TO 'magento2user'@'localhost' WITH GRANT OPTION;

PHP설치

PHP 서버단에서 동작하는 웹서버 스크립트입니다. MySQL 연동하여 magento 등인터넷쇼핑몰, CMS구축에 마젠토 2.4를 지원하는 php 8.1을 설치합니다.

1) repository 및 php설치합니다.

humber@ip-172-31-47-0:~$ sudo apt install software-properties-common && sudo add-apt-repository ppa:ondrej/php -y sudo apt update

 

2) 마젠토 2에서 필요한 extension설치합니다.

humber@ip-172-31-47-0:~$ sudo apt -y install php8.1-bcmath php8.1-common php8.1-curl php8.1-fpm php8.1-gd php8.1-intl php8.1-mbstring php8.1-mysql php8.1-soap php8.1-xml php8.1-xsl php8.1-zip php8.1-cli

 

3)  PHP버전이나 설치된 extension을 확인할 수 있는  php -v, php -m을 실행합니다.

humber@ip-172-31-47-0:~$ php -v
PHP 8.1.2-1ubuntu2.10 (cli) (built: Jan 16 2023 15:19:49) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2-1ubuntu2.10, Copyright (c), by Zend Technologies
humber@ip-172-31-47-0:~$ php -m
[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
exif
FFI
fileinfo
filter
ftp
gd
gettext
hash
iconv
intl
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache

 

4)  ini파일의 환경설정을 위한 ini파일의 위치를 확인하고 magento2에서 권고하는 파라미터로 변경을 수행합니다. 
humber@ip-172-31-47-0:~$ php -i | grep "Configuration File"
Configuration File (php.ini) Path => /etc/php/8.1/cli
Loaded Configuration File => /etc/php/8.1/cli/php.ini

<php.ini>
memory_limit = 512M
upload_max_filesize = 128M
zlib.output_compression = On
max_execution_time = 600
max_input_time = 900
 
5)  Multi PHP를 사용할 경우 선택할수 있는 명령어입니다.
humber@ip-172-31-47-0:~$ sudo update-alternatives --config php
There are 2 choices for the alternative php (providing /usr/bin/php).
  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/php8.2   82        auto mode
  1            /usr/bin/php8.1   81        manual mode
  2            /usr/bin/php8.2   82        manual mode
 
Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/bin/php8.1 to provide /usr/bin/php (php) in manual mode
 

마무리

Ubuntu(Linux)에서 AMP(Apache, Mysql, PHP)를 설치하는 과정을 살펴보았습니다. 서버 내 이러한 서비스가 제대로 설치되었는지를 service command를 사용하여 확인해 볼 수 있습니다. '+'는 설치되어 있음을 표시합니다. apache2, mysql, php8.1-fpm으로 설치되어 있음을 확인할 수 있습니다.

humber@ip-172-31-47-0:~$ service --status-all
 [ + ]  acpid
 [ + ]  apache-htcacheclean
 [ + ]  apache2
 [ + ]  apparmor
 [ + ]  apport
 [ + ]  chrony
 [ - ]  console-setup.sh
 [ + ]  cron
 [ - ]  cryptdisks
 [ - ]  cryptdisks-early
 [ + ]  dbus
 [ - ]  grub-common
 [ - ]  hwclock.sh
 [ - ]  irqbalance
 [ - ]  iscsid
 [ - ]  keyboard-setup.sh
 [ + ]  kmod
 [ - ]  lvm2
 [ - ]  lvm2-lvmpolld
 [ + ]  multipath-tools
 [ + ]  mysql
 [ - ]  open-iscsi
 [ - ]  open-vm-tools
 [ + ]  php8.1-fpm
 [ + ]  plymouth
 [ + ]  plymouth-log
 [ + ]  procps
 [ - ]  rsync
 [ - ]  screen-cleanup
 [ + ]  ssh
 [ + ]  udev
 [ + ]  ufw
 [ + ]  unattended-upgrades
 [ - ]  uuidd
 

 

댓글