다운로드 링크:
아파치 : https://archive.apache.org/dist/httpd/
mysql : https://downloads.mysql.com/archives/installer/
php : https://www.php.net/releases/
apr,utils : https://dlcdn.apache.org/apr/
pcre : https://sourceforge.net/projects/pcre/files/pcre/
pecl : https://pecl.php.net/package-stats.php
APR : (아파치 포터블 런타임)는 아파치 HTTP 서버 2.x.의 핵심이며 휴대용 라이브러리입니다.
이런 APR은 고급 IO 기능(예:sendfile, epoll and OpenSSL 등)에 대한 접근을 포함하여 OS 수준의 기능 (난수 생성, 시스템 상태), 그리고 기본 프로세스 처리(공유 메모리, NT 파이프와 유닉스 소켓) 등 많은 용도로 사용되고 있습니다.
PCRE(**** Perl Compatible Regular Expressions )는 펄 호환 정규 표현식으로서, 정규식 패턴 일치를 구현하는 함수의 집합입니다.
요즘에는 Apache, PHP, KDE 등을 포함한 오프 소스 프로젝트에서 사용되고 있으며, 아파치 2.4 버전을 설치할 때는 pcre를 설치해야 합니다.
tar [OPTION...] [FILE]...
-f : 대상 tar 아카이브 지정. (기본 옵션)
-c : tar 아카이브 생성. 기존 아카이브 덮어 쓰기. (파일 묶을 때 사용)
-x : tar 아카이브에서 파일 추출. (파일 풀 때 사용)
-v : 처리되는 과정(파일 정보)을 자세하게 나열.
-z : gzip 압축 적용 옵션.
-j : bzip2 압축 적용 옵션.
-t : tar 아카이브에 포함된 내용 확인.
-C : 대상 디렉토리 경로 지정.
-A : 지정된 파일을 tar 아카이브에 추가.
-d : tar 아카이브와 파일 시스템 간 차이점 검색.
-r : tar 아카이브의 마지막에 파일들 추가.
-u : tar 아카이브의 마지막에 파일들 추가.
-k : tar 아카이브 추출 시, 기존 파일 유지.
-U : tar 아카이브 추출 전, 기존 파일 삭제.
-w : 모든 진행 과정에 대해 확인 요청. (interactive)
-e : 첫 번째 에러 발생 시 중지.
./configure = 설치를 위한 환경 설정 | --prefix = 절대경로 --with 라이브러리 참조
make = configure에 의해 만들어진 makefile로 프로그램 컴파일
make install = 컴파일된 프로그램, 환경파일, 데이터 파일을 지정된 위치에 복사하는 과정
* 아파치 컴파일 설치
wget https://archive.apache.org/dist/httpd/httpd-2.4.60.tar.gz
tar -xvf httpd-2.4.62.tar.gz
yum install gcc gcc-c++ expat expat-devel make (기본 소스설치)
wget https://dlcdn.apache.org/apr/apr-1.7.0.tar.gz
wget https://dlcdn.apache.org/apr/apr-util-1.6.3.tar.bz2
wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz
tar -xvf apr-1.7.0.tar.gz
tar -xvf apr-util-1.6.3.tar.bz2 (bzip없으면 설치(yum install bzip))
tar -xvf pcre-8.45.tar.gz
-소스 컴파일-
- apr 컴파일
cd apr-1.7.0/
./configure --prefix=/usr/local/src/apr-1.7.0 (경로 지정)
make && make install
-apr-util 컴파일
cd ~/apr-util-1.6.3/
./configure --prefix=/usr/local/src/apr-util-1.6.3 --with-apr=/usr/local/src/apr-1.7.0 (경로 apr 지정)
make && make install
-pcre 컴파일
wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz
tar xvfz pcre-8.45.tar.gz
cd ~/pcre-8.45/
./configure --prefix=/usr/local/src/apr-util-1.6.3 --with-apr=/usr/local/src/apr-1.7.0 (apr , apr-util 지정)
make && make install
-apache 컴파일
cd /usr/local/src/httpd-2.4.59/
./configure --prefix=/usr/local/apache --enable-modules=most --enable-mods-shared=all --enable-so --with-apr=/usr/local/src/apr-1.7.4 --with-apr-util=/usr/local/src/apr-util-1.6.3
make && make install
mysql 설치
yum install -y zlib zlib-devel cpp perl bison freetype freetype-devel freetype-utils ncurses-devel libtermcap-devel bzip2-devel
cmake 설치
wget https://github.com/Kitware/CMake/releases/download/v3.29.2/cmake-3.29.2.tar.gz
tar -xvf cmake-3.29.2.tar.gz
cd cmake-3.29.2/
./bootstrap && make && make install
binary , 소스 설치 차이점 이해하기
소스 코드 디렉토리는 소스 코드 파일과 빌드 설정 파일(CMakeLists.txt, Makefile 등)을 포함하는 디렉토리로, CMake나 make 명령을 통해 컴파일하고 빌드할 수 있는 디렉토리입니다.
바이너리 배포판은 이미 컴파일되어 실행 가능한 형태로 제공되는 파일들을 포함한 디렉토리로, 추가적인 컴파일 없이 바로 설치하고 사용할 수 있습니다.
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DSYSCONFDIR=/etc \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/mysql/boost
make && make install
MySQL 초기화:
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
FATAL 에러 발생시
sudo /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
FATAL ERROR: please install the following Perl modules before executing /usr/local/mysql/scripts/mysql_install_db:
Data::Dumper
yum install perl-Data-Dumper
mysql 데몬 등록
cp support-files/my-default.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
vi /etc/init.d/mysqld
#아래 내용 추가
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
cd ~
vi .bash_profile
# **PATH부분에 아래 내용을 추가한다**
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
source .bash_profile
service mysqld start
sudo chown -R mysql:mysql /usr/local/mysql
sudo chmod -R 755 /usr/local/mysql
service mysqld start
-php 설치
- 기본 패키지 설치
yum -y install libjpeg* libpng* freetype* gd-* ncurses* libtermcap* libxml* curl-devel gcc* cpp* compat-gcc* flex*
- php 파일 다운 후 컴파일
```bash
wget https://www.php.net/distributions/php-7.4.33.tar.gz
tar -xvf php-7.4.33.tar.gz
cd php-7.4.33
./configure --prefix=/usr/local/php7 --with-apxs2=/usr/local/apache/bin/apxs --enable-fpm
./configure \ - -prefix=/usr/local/php7 \
- -with-config-file-path=/etc/php7 \
- -with-apxs2=/usr/local/apache/bin/apxs \
- -with-mysql-sock=/var/lib/mysql/mysql.sock \
- -with-mysqli=mysqlnd \
- -with-pdo-mysql=mysqlnd \
- -with-curl \
- -disable-debug \
- -enable-sockets \
- -enable-sysvsem=yes \
- -enable-sysvshm=yes \
- -enable-ftp \
- -enable-gd-native-ttf \
- -enable-inline-optimization \
- -enable-bcmath \
- -with-zlib \
- -with-gettext \
- -with-libxml-dir=/usr \
- -enable-exif \
- -enable-mbstring \
- -with-openssl \
- -with-gd \
- -with-jpeg-dir=/usr \
- -with-png-dir=/usr \
- -with-freetype-dir=/usr \
- -enable-fpm \
- -enable-zts
make && make install
#### 에러발생시 참고사항
```bash
에러 1:
configure: error: xml2-config not found. Please check your libxml2 installation.
yum install libxml2-devel -y
에러 2:
No package 'oniguruma' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables ONIG_CFLAGS
and ONIG_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
yum install epel-release
yum install oniguruma-devel
오류 발생 시 make clean all 한번 하고 진행
sudo cp /root/php-7.4.33/php.ini-development /usr/local/php7/lib/php.ini
sudo cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
apache - php 연동
httpd.conf 파일 (vi /usr/local/apache/conf/httpd.conf) (LoadModule에 php5 , php7 모듈 생겼는지 확인)
126 LoadModule proxy_module modules/mod_proxy.so (주석 해제)
130 LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so (주석해제)
202 <Directory />
203 AllowOverride none
204 # Require all denied
205 Require all granted --> 추가
253 DirectoryIndex index.htm -> 253 DirectoryIndex index.html index.html.var index.php index.php3 (추가)
389 AddType application/x-compress .Z
390 AddType application/x-gzip .gz .tgz
391 AddType application/x-httpd-php .php .inc ---- > 추가
392 AddType application/x-httpd-php-source .phps ----> 추가
PHP 7 FPM 기동
/usr/local/php7/sbin/php-fpm -c /usr/local/php7/lib/php.ini -y /usr/local/php7/etc/php-fpm.conf
PHP 7 FPM 중지
/usr/local/php7/sbin/php-fpm -t (syntax 체크)
/usr/local/php7/sbin/php-fpm -y /usr/local/php7/etc/php-fpm.conf --stop
php ini 확인
/usr/local/php7/bin/php --ini
php 모듈 확인
/usr/local/php7/bin/php -m | grep 모듈 이름
'리눅스 > APM(Apache,php,mysql)' 카테고리의 다른 글
Apache GeoIP설정(vhost설정) (0) | 2025.01.13 |
---|---|
DB 이중화 작업(Replication 설정) (0) | 2025.01.09 |
Centos6 Geoip(iptables 설정) (0) | 2025.01.07 |