웹서버 설치

✒️ 2025-05-22 15:20 내용 수정


APM 설치


1. httpd, Apache 설치

CentOS 7

  1. http 패키지를 yum install -y httpd로 다운 받는다.
    • 패키지를 다운 받았다면 항상 로 확인한다.

apm 1.png

  1. http 버전을 httpd -vhttpd -V로 확인한다.
    • httpd -V가 더 상세한 정보를 제공한다.
    • Apache 2.4.6버전이 설치된 것을 확인하였다.

apm 2.png

  1. ls /etc/httpdls /var/www/ 로 웹서버와 관련된 파일들이 있는지 확인한다.
    • /etc/httpd/ : 환경 설정 파일(conf)
    • /var/www/ : 홈페이지 관련 파일

apm 3.png

  1. 웹서버 데몬 서비스를 실행하고 서비스의 부팅 옵션을 설정한다.
    • systemctl enable httpd && systemctl start httpd : 서비스 재부팅 시 시작 및 서비스 실행
    • systemctl status httpd : 서비스 상태 확인

apm 4.png

  1. 로컬 pc에서 크롬이나 혹은 리눅스에서 웹 브라우저를 통해 사이트 연결을 확인한다.
    • http://리눅스ip주소 로 입력한다.(http 생략 시 자동으로 https로 연결됨)
    • /var/www/html/ 디렉터리에 html 확장자 파일을 생성하고 html 내용을 입력하면 사이트에 적용된다.
    • CLI 모드에서 curl ip주소로도 확인이 가능하다. yum install -y curl로 패키지를 설치하고 진행해야 한다.

apm 5.png
기타 2.png
기타 3.png

  1. 기타 사항
    • 웹 서버의 로그는 /var/log/httpd/에 저장된다.
    • 파일 이름에 ssl이 있으면 SSL(7계층 웹 서버 보안 프로토콜, https)의 로그 파일들이며, http는 access_log와 error_log 파일에 로그를 저장한다.
    • access_log : 웹 서버 접속 기록, tail -f access_log를 사용하면 실시간 접속 로그 추적이 가능하다.
      • awk 명령어로 정보를 쉽게 추출할 수 있다. 참고 자료 : https://recipes4dev.tistory.com/171
      • 사진에선 awk '{print $1, $4}' access_log를 사용해 ip와 접속 시간만 출력했다.
    • error_log : 웹 서버 에러 기록

기타 1.png
기타 4.png


Rocky 9

  1. dnf -y install httpd로 http 패키지를 설치하고, rpm -qa | grep httpd로 패키지가 제대로 설치되었는지 확인한다.

rhttpd 1.png

  1. systemctl start httpd로 서비스를 실행하고, systemctl enable httpd로 재부팅 옵션을 설정한 뒤, systemctl status httpd로 서비스 상태를 체크한다.

rhttpd 2.png

  1. firewall-config로 방화벽 GUI를 열어 방화벽에 http를 등록한다.
    • 영역 -> 설정을 영구적 -> 서비스에 http를 체크 -> 메뉴바에서 옵션 중 Firewalld 다시 불러오기(데몬 재실행)
  2. 또는 firewall-cmd --permanent --add-service=http를 터미널에 입력하여 http를 등록한 다음 firewall-cmd --reload로 Firewalld를 재실행해도 된다.
  1. 웹 브라우저에 http 호스트 ip를 입력해서 테스트 페이지가 뜨는지 확인한다.
    • 현재는 본인 컴퓨터가 호스트이므로, http://본인컴퓨터의ip를 입력한다.

rhttpd 6.png

  1. Rocky에서도 http의 로그 파일은 /var/log/httpd 에 있다.

rhttpd 7.png


2. PHP 설치

  1. 패키지를 yum update -y 로 업데이트 한다.

    • 인터넷 상태에 따라 시간이 조금 걸린다.
  2. 데이터베이스 및 PHP 관련 저장소를 추가한다.

    • yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
  3. yum install -y yum-utils로 yum 유틸 파일을 받는다. 이미 최신 버전이라면 안내 문구가 뜬다.

  4. php 7.3 버전을 저장소에 위해 yum에 yum-config-manager --enable remi-php73로 설정해준다.

    • 실습에는 5 버전이 아닌 7 버전이 필요해 따로 설정하였다.

php 1.png

  1. php 패키지와 추가 패키지를 받는다.

php 2.png

  1. /var/www/html/ 디렉터리에 gedit phpinfo.php로 php 파일을 생성한다.
    • 파일 내용은 연결 테스트를 위해 <?php phpinfo(); ?>만 입력한다.

php 3.png

  1. 웹서버 데몬을 systemctl restart httpd로 재실행한 뒤 http://리눅스ip주소/phpinfo.php 로 접속해서 PHP 도움말 화면이 뜨는지 확인한다.

php 4.png


3. MariaDB 설치

  1. gedit /etc/httpd/conf/httpd.conf 으로 /etc/httpd/conf/httpd.conf 파일의 내용을 수정한다.
    • 42번 라인에 기본 80 -> 5050으로 수정한다.

mariadb 1.png

  1. cd /etc/yum.repos.d로 /etc/yum.repos.d 디렉터리 이동 후에 gedit MariaDB.repo 파일을 생성하여 아래 내용을 작성한다.
[mariadb]
name = MariaDB
baseurl = https://yum.mariadb.org/10.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

mariadb 2.png

  1. MariaDB를 yum install -y MariaDB로 설치한다.
    • 패키지를 rpm -aq | grep MariaDB로 확인한다.

mariadb 3.png

  1. MariaDB 서비스 데몬을 systemctl enable mariadb && systemctl start mariadb으로 활성화 및 재부팅해준다.
    • 서비스 데몬의 상태를 systemctl status mariadb로 확인한다.

mariadb 4.png

  1. # mysql_secure_installation로 MariaDB의 암호 및 설정들을 초기화한다.
Enter current password for root (enter for none): 
--초기 설정 암호는 없으므로 enter로 넘어감(있다면 입력)
Switch to unix_socket authentication [Y/n]:
-- 암호화 보안인증 여부. 실습에선 no로 설정
Change the root password? [Y/n]:
-- 관리자 암호 변경 여부. yes로 설정
-- yes로 설정했다면 암호를 입력한다.
Remove anonymous users? [Y/n]:
-- 기타 계정 삭제 여부. 상황에 따라 설정.
Disallow root login remotely? [Y/n]:
-- 관리자 계정으로 원격 접속 허용 차단 여부. 실습에선 no로 설정
Remove test database and access to it? [Y/n]:
-- 테스트용 DB 삭제 및 접근 여부. 
Reload privilege tables now? [Y/n]:
-- 관리자 권한으로 DB 재실행 여부. yes로 설정.
-- Thanks for using MariaDB! 가 뜨면 설정이 완료된다.

mariadb 5.png

  1. # mysql -u root -p로 MariaDB를 관리자 계정으로 로그인 한 후, sql문으로 사용자를 추가한다.
CREATE USER 'owncloud'@'%' IDENTIFIED BY '1234';
CREATE USER 'owncloud'@'localhost' IDENTIFIED BY '1234';
CREATE USER 'owncloud'@'127.0.0.1' IDENTIFIED BY '1234';
FLUSH PRIVILEGES;

mariadb 6.png

  1. 웹하드에서 사용할 데이터베이스를 생성한다.
CREATE DATABASE ownclouddb;
SHOW DATABASES; --해당 데이터베이스는 비어있다.

mariadb 7.png

  1. 생성된 데이터베이스를 사용할 수 있는 유저에게 권한을 설정해준다. (퍼미션 부여)
GRANT ALL PRIVILEGES ON ownclouddb.* TO 'owncloud'@'%';
GRANT ALL PRIVILEGES ON ownclouddb.* TO 'owncloud'@'localhost';
GRANT ALL PRIVILEGES ON ownclouddb.* TO 'owncloud'@'127.0.0.1';
EXIT; -- MariaDB 종료

mariadb 8.png

  1. cd /var/www로 /var/www/ 디렉터리로 이동한 후, owncloud를 wget https://download.owncloud.com/server/stable/owncloud-10.8.0.tar.bz2 로 다운받는다.

mariadb 9.png

  1. 받은 파일을 tar xvfj owncloud-10.8.0.tar.bz2로 압축 해제한다.

  2. 디렉터리와 그 하위 디렉터리의 소유권을 chown -R apache:apache /var/www/owncloud로 변경한다.

mariadb 10.png

  1. 웹하드 환경 설정을 만든다. gedit /etc/httpd/conf.d/owncloud.conf로 /etc/httpd/conf.d/owncloud.conf 파일 생성 후 아래 내용을 입력 후 저장하고 종료한다.
Alias /owncloud "/var/www/owncloud/"

<Directory /var/www/owncloud/>
	Options +FollowSymlinks
	AllowOverride All
	<IfModule mod_dav.c>
		Dav off
	</IfModule>
	SetEnv Home /var/www/owncloud
	SetEnv HTTP_HOME /var/www/owncloud
</Directory>

mariadb 11.png

  1. 웹서버 서비스를 systemctl restart httpd로 재실행한 뒤 http://localhost:5050/owncloud/ 혹은 http://ip주소:5050/owncloud/ 로 접속해서 연결을 확인한다.

  2. 웹 페이지에서 접속이 되었다면 사용자를 생성 후 로그인한다.

    • 로컬에서 /var/www/owncloud/data/사용자이름 위치 폴더에 사용자의 파일들이 저장된다.

mariadb 12.png

mariadb 13.png

mariadb 14.png