2026, 새로운 도약을 시작합니다.

Amazon linux2 에 REMI 저장소를 사용하여 PHP 8.1 버전 설치하기

AWS 인스턴스를 새로 생성합니다. 

1888934781_1646028503.9556.png

amazon-linux-extras 를 사용하여 Nginx , Mariadb 설치

1888934781_1646028761.7164.png

su 권한으로 접근하시고 amazon-linux-extras 리스트를 출력해보면

1888934781_1646028854.4935.png

설치 가능한 목록이 나옵니다. 

  • [root@ip-172-26-11-232 ec2-user]# amazon-linux-extras install nginx1 mariadb10.5

입력하여 nginx와 mariadb를 설치

이제 REMI 저장소와 필요한 패키지를 설치해줍니다.

위 명령어들을 차례로 입력하여 설치해줍니다. (root권한이 아니면 앞에 sudo 를 붙여줘야합니다.)

위 3가지를 설치 완료하면 yum repolist를 입력하여 설치된 저장소를 확인합니다.

  • yum repolist

1888934781_1646030516.5566.png

php 8.1 버전을 설치할 remi 저장소를 허용해줍니다

  • yum-config-manager --disable 'remi-php*'
  • yum-config-manager --enable remi-php81

이제 php 8.1 버전을 설치합니다.

  • yum install php81

php81 --version 으로 설치된 버전을 확인해줍니다.

1888934781_1646030848.0097.png

이제 php 확장 모듈을 설치해줍니다

  • sudo yum install php81-php-{cli,fpm,mysqlnd,devel,gd,mbstring,curl,xml,pear,bcmath,json,opcache,ldap}
  • yum install php81-php-soap

설치가 마무리되면 php81 --modules로 설치된 모듈을 확인해줍니다

1888934781_1646031391.3019.png

설치를 완료했으니 설정을 해줄 차례입니다

php-fpm 설정

  • vi /etc/opt/remi/php81/php.ini

아래 내용들을 추가 및 수정 해줍니다

(추가)

date.timezone = Asia/Seoul 

(수정)

expose_php = Off
post_max_size = 500M
upload_max_filesize = 200M
memory_limit = 512M

php-fpm.conf 파일 수정

  • cd /etc/opt/remi/php81
  • vi php-fpm.conf

daemonize = yes 주석이 되어있으면 해제

include 문이 주석해제 되어있는지 확인

include=/etc/opt/remi/php81/php-fpm.d/*.conf

socket이 생성될 위치를 정해서 디렉토리를 생성해줍니다.

  • mkdir -p /run/php/

재부팅시에 디렉토리 생성시켜주는 파일 생성

  • cd /usr/lib/tmpfiles.d
  • vi php.conf

php.conf 파일에 하단 내용 입력

d /run/php 0755 root root -

www.conf 파일 수정

  • cd /etc/opt/remi/php81/php-fpm.d
  • vi www.conf

user = apache
group = apache
listen.owner = nobody
listen.group = nobody
listen.mode = 0660

listen = 127.0.0.1:9000

↓↓↓↓↓↓↓↓↓

user = nginx
group = nginx
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

listen = /run/php/php-fpm.sock

access.log = log/$pool.access.log

access.log = /var/opt/remi/php81/log/php-fpm/$pool.access.log

위의 내용을 아래로 변경하고 주석은 전부 해제해줍니다.

로그 관련 내용 수정

----------------------------------------------------------------------------

access.log = log/$pool.access.log

↓↓↓↓↓↓↓↓↓

access.log = /var/opt/remi/php81/log/php-fpm/$pool.access.log

----------------------------------------------------------------------------
;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"

↓↓↓↓↓↓↓↓↓

access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"

----------------------------------------------------------------------------

slowlog = /var/opt/remi/php81/log/php-fpm/www-slow.log

↓↓↓↓↓↓↓↓↓

slowlog = /var/opt/remi/php81/log/php-fpm/$pool.slow.log

----------------------------------------------------------------------------

request_slowlog_timeout = 0

↓↓↓↓↓↓↓↓↓
request_slowlog_timeout = 5

----------------------------------------------------------------------------


;catch_workers_output = yes
↓↓↓↓↓↓↓↓

catch_workers_output = yes

----------------------------------------------------------------------------
 

nginx.conf 수정

  • cd /etc/nginx
  • vi nginx.conf

root 페이지 수정

 root    /home/ec2-user/www;

원하시는 위치로 설정

서버 설정

  • cd /etc/nginx/conf.d
  • vi default.conf

default.conf 파일을 생성해서 아래 내용을 입력해줍니다.

# PHP-FPM FastCGI server
# network or unix domain socket configuration

upstream php-fpm {
        server unix:/run/php/php-fpm.sock;
}  

  • cd ..
  • cd default.d
  • vi php.conf

php.conf 파일을 생성해서 아래 내용을 입력해줍니다.

# pass the PHP scripts to FastCGI server
#
# See conf.d/php-fpm.conf for socket configuration
#
index index.php index.html index.htm;

location ~ \.(php|phar)(/.*)?$ {
    fastcgi_split_path_info ^(.+\.(?:php|phar))(/.*)$;

    fastcgi_intercept_errors on;
    fastcgi_index  index.php;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param  PATH_INFO $fastcgi_path_info;
    fastcgi_pass   php-fpm;
}

테스트 파일 생성

  • cd /home/
  • chmod 701 ec2-user
  • cd /home/ec2-user/
  • mkdir www
  • chmod 701 www
  • cd www
  • chown ec2-user:ec2-user www
  • touch phpinfo.php
  • chown ec2-user:ec2-user phpinfo.php
  • vi phpinfo.php

<?php

    phpinfo();

?>

입력후 저장해줍니다.

설정을 완료했으니 패키지들을 실행시켜줍니다

1888934781_1646035795.2927.png

패키지들을 실행시켜주고 아까 만들었던 경로에 들어가면 

php 버전 정보를 확인 할 수 있습니다.

1888934781_1646036429.1058.png

이제 그누보드5를 설치해보겠습니다.

서버에 깃을 설치합니다.

  • sudo yum install git

DB를 만들고 그에 접근 가능한 계정을 하나 만들어주겠습니다.

  • mysql -uroot -p
  • password를 입력하라고 하면 아무것도 입력하지 않고 엔터를 눌러줍니다.
  • [mariadb]> use mysql
  • [mariadb]> create database 'DB이름';
  • [mariadb]> create user '유저명'@'%' identified by '비밀번호';
  • [mariadb]> select host, user, password from user; 명령어로 유저생성되었는지 확인
  • [mariadb]> show databases; 명령어로 DB 생성되었는지 확인해줍니다.
  • [mariadb]> grant all privileges on DB명.* to '유저명'@'%';
  • [mariadb]> flush privileges;

이제 DB와 %권한의 계정도 생성을 완료했습니다.

깃허브에서 그누보드5를 클론해옵니다.

그누보드 5를 실행해보면 이런창을 볼 수 있습니다.

1888934781_1646038070.991.png

페이지에서 요청하는대로 data 디렉토리를 707권한으로 생성해줍니다.

생성하고 새로고침을 누르면 아래 페이지로 동의를 구하는 페이지를 만나고

동의롤 해주면 데이터를 입력해주는 창이 나옵니다.

※ 여기서 수정해야할 부분

+ /install/ajax.install.check.php - 55~58라인
if(sql_query("DESCRIBE `{$table_prefix}config`", G5_DISPLAY_SQL_ERROR, $dblink)) {
    die(install_json_msg('주의! 이미 테이블이 존재하므로, 기존 DB 자료가 망실됩니다. 계속 진행하겠습니까?', 'exists'));
}

if(sql_fetch("SHOW TABLES LIKE '{$table_prefix}config'", G5_DISPLAY_SQL_ERROR, $dblink)) {
    die(install_json_msg('주의! 이미 테이블이 존재하므로, 기존 DB 자료가 망실됩니다. 계속 진행하겠습니까?', 'exists'));
}

+ /install/install_db.php - 97~98라인
$sql = " desc {$table_prefix}config";
$result = @sql_query($sql, false, $dblink);

$sql = "SHOW TABLES LIKE '{$table_prefix}config'";
$result = @sql_fetch($sql, false, $dblink);
 

코드를 수정해주시고

아까 만들었던 mysql 계정과 비밀번호 DB명을 입력해주고 admin 관리자 비밀번호는 

원하시는 정보로 입력해주시고  다음으로 진행하면

1888934781_1646038176.9635.png

1888934781_1646038812.4257.png

설치 완료된 화면을 볼 수 있습니다.

|

댓글 5개

내용과 흐름이 이 분거는 바로 될거 같네 ㅎㅎ 반바지 아저씨 동영상은 아주 코껴서 쓰레기통에 버렸는데 감사합니다.
좋은 정보 감사합니다. ^^ 꼭 한번 시도 해봐야겠네요
좋은팁 감사합니다

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.
번호 분류 제목 글쓴이 날짜 조회
5402 MySQL 6일 전 조회 21
5401 JavaScript 3주 전 조회 117
5400 MySQL 1개월 전 조회 222
5399 PHP 2개월 전 조회 470
5398 PHP 2개월 전 조회 353
5397 PHP 2개월 전 조회 286
5396 기타 5개월 전 조회 559
5395 PHP 6개월 전 조회 1,196
5394 MySQL 7개월 전 조회 793
5393 웹서버 9개월 전 조회 985
5392 1년 전 조회 1,310
5391 11개월 전 조회 1,319
5390 11개월 전 조회 1,114
5389 10개월 전 조회 1,030
5388 10개월 전 조회 1,170
5387 9개월 전 조회 962
5386 JavaScript 9개월 전 조회 1,148
5385 웹서버 9개월 전 조회 1,169
5384 JavaScript 10개월 전 조회 991
5383 기타 11개월 전 조회 1,417
5382 기타 11개월 전 조회 661
5381 JavaScript 11개월 전 조회 1,075
5380 기타 11개월 전 조회 833
5379 JavaScript 11개월 전 조회 831
5378 1년 전 조회 1,396
5377 기타 1년 전 조회 941
5376 jQuery 1년 전 조회 639
5375 jQuery 1년 전 조회 871
5374 기타 1년 전 조회 949
5373 MySQL 1년 전 조회 980
🐛 버그신고