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
3) 웹브라우저에서 도메인 네임이나 서버 IP를 입력해서 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
마무리
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
'관심분야' 카테고리의 다른 글
AWS|EC2 웹서버 설치후 "This site can’t be reached" 에러 조치 (0) | 2023.02.12 |
---|---|
Ubuntu에서 MySQL 로그 설정 및 장애대응 로그 확인 방법 (0) | 2023.02.11 |
AWS|EC2 Ubuntu에서 사용자 생성 및 SSH접속하기 (0) | 2023.02.09 |
지게차 운전기능사 필기시험을 기출문제로 공부해서 합격하기 (0) | 2023.02.02 |
Linux-sudo명령어 사용권한 문제 (0) | 2023.01.29 |
댓글