테스트 사이트 - 개발 중인 베타 버전입니다

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

· 3년 전 · 3323 · 5

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 저장소와 필요한 패키지를 설치해줍니다.

  • yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
  • yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
  • yum -y install yum-utils

위 명령어들을 차례로 입력하여 설치해줍니다. (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개

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

게시글 목록

번호 제목
16329
16328
16327
16326
16325
16324
16323
16322
16321
16320
16319
16318
16317
16316
16315
16310
16309
16308
16305
16304
16303
16302
16301
16300
16299
16298
16297
16295
16294
16293