웹구축하기-APM설치
ⓐ 운영환경
Ubuntu 24.04 LTS
gcc 11+
  ⓑ 필요한 소스를 다운받기
  /usr/local/src/ 로 다운 받습니다.
mkdir -p /usr/local/src && cd /usr/local/src

# Ubuntu 24.04 LTS 권장 버전
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.44.tar.gz
wget https://archive.apache.org/dist/httpd/httpd-2.4.58.tar.gz
wget https://www.php.net/distributions/php-7.4.33.tar.gz
ⓒ 빌드하기 MySQL → Apache → PHP 순으로 설치합니다.
MySQL 8 (Ubuntu 24.04) 설정하기
MySQL 서버 설치
Ubuntu 24.04에서 기본 저장소를 통해 MySQL 8 서버를 설치합니다.
sudo apt update
sudo apt install mysql-server -y
MySQL 보안 설정 및 root 비밀번호 설정
설치 후 실행되는 보안 설정 마법사를 통해 root 비밀번호 설정, 익명 사용자 제거, 테스트 DB 삭제 등을 진행합니다.
sudo mysql_secure_installation
MySQL 접속
root 계정으로 MySQL에 접속하여 내부 설정을 계속 진행합니다.
sudo mysql -u root -p
원격 접속을 위한 사용자 계정 생성
원격에서 접속 가능한 사용자 계정을 생성하고 전체 권한을 부여합니다.
CREATE USER 'myuser'@'%' IDENTIFIED WITH mysql_native_password BY 'mypassword';
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
방화벽 설정 (3306 포트 허용)
MySQL의 기본 포트인 3306번 포트를 방화벽에서 허용합니다.
sudo ufw allow 3306
MySQL 설정파일 변경 (bind-address 수정)
외부 접속을 허용하기 위해 bind-address 값을 0.0.0.0으로 수정합니다.
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
파일 내에서 다음과 같이 변경:
bind-address = 0.0.0.0
MySQL 재시작
설정 변경 사항을 적용하기 위해 MySQL 서버를 재시작합니다.
sudo systemctl restart mysql
Apache2 + PHP (소스 설치)
Apache2 압축 해제
소스 파일을 압축 해제합니다.
tar xvfz httpd-2.0.52.tar.gz
cd httpd-2.0.52
Apache2 환경설정 및 설치
DSO(dynamic shared object) 모듈을 활성화하고 Apache2를 빌드 및 설치합니다.
./configure --enable-so
make
make install
PHP 설치
라이브러리 경로 등록
PHP 컴파일 시 필요한 라이브러리를 시스템에 인식시키기 위해 설정 파일을 수정합니다.
vi /etc/ld.so.conf
다음 내용을 추가합니다:
/lib
/usr/lib
/usr/local/lib
/usr/local/mysql/lib/mysql
설정 후 적용:
ldconfig
PHP 소스 압축 해제 및 이동
tar xvfz php-4.3.9.tar.gz
cd php-4.3.9
PHP 환경설정
MySQL 및 Apache2 연동을 위한 configure 명령어를 실행합니다.
CFLAGS="-L/usr/local/mysql/lib/mysql -lmysqlclient" ; \
./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-config-file-path=/usr/local/apache2/conf \
--with-mysql=/usr/local/mysql \
--with-mod-charset \
--with-xml \
--with-track-debug \
--enable-track-vars \
--enable-calendar \
--enable-shmop \
--enable-ftp \
--enable-sockets \
--enable-mailparse \
--enable-magic-quotes \
--enable-track-vars=yes \
--with-language=korean \
--enable-module=so \
--enable-versioning \
--with-charset=euc_kr \
--disable-cgi ;
PHP 컴파일 및 설치
make
make install
PHP 설정파일 복사 및 수정
기본 설정 파일을 Apache2 디렉토리로 복사합니다.
cp php.ini-dist /usr/local/apache2/conf/php.ini
파일을 열고 다음 항목을 수정합니다:
vi /usr/local/apache2/conf/php.ini
register_globals = On
Apache의 httpd.conf 파일 수정하여 PHP 모듈을 적용시킵니다.
vi /usr/local/apache2/conf/httpd.conf
다음 내용을 추가합니다:
AddType application/x-httpd-php .php .html .htm
AddType application/x-httpd-php .php-source .phps
기본 문자셋 설정도 EUC-KR로 수정합니다:
AddDefaultCharset EUC-KR
ⓓ 테스트하기
Apache2와 PHP가 정상적으로 연동되었는지 테스트하기 위해 PHP 테스트 파일을 생성합니다.

다음 명령어를 실행하여 테스트 파일을 생성합니다:
vi /usr/local/apache2/htdocs/test.php
파일에 아래 내용을 입력합니다:
<?php phpinfo(); ?>

이제 웹 브라우저를 열고 다음 주소 중 하나를 입력하여 테스트합니다:
http://localhost/test.php
또는 서버 IP 주소를 이용하여 접근할 수 있습니다:
http://xxx.xxx.xxx.xxx/test.php
정상적으로 phpinfo 페이지가 출력되면 Apache2와 PHP가 성공적으로 연동된 것입니다.
ⓔ 기타
서버 부팅 시 자동으로 Apache2와 MySQL이 실행되도록 스크립트를 설정할 수 있습니다.
간단한 예제로 /etc/rc.local 파일을 편집합니다.
vi /etc/rc.local
파일에 다음 내용을 추가합니다:
if [ -f /usr/local/mysql/bin/mysqld_safe ]; then
/usr/local/mysql/bin/mysqld_safe &
fi
/usr/local/apache2/bin/apachectl start

또한, 시스템에서 한글이 깨져 보일 경우 로케일 설정 파일을 수정하여 한글 인코딩을 지정해줍니다.
vi /etc/sysconfig/i18n
파일에 아래 내용을 추가하거나 수정합니다:
LANG="ko_KR.eucKR"
SUPPORTED="en_US.UTF-8:en_US:en:ja_JP.UTF-8:ja_JP:ko_KR.eucKR.eucKR:ko_KR:ko"
SYSFONT="lat0-sun16"
SYSFONTACM="ISO15"
이 설정을 저장하고 재부팅하면 콘솔에서 한글이 정상적으로 출력됩니다.