요즘은 거의 CentOS를 주로 사용해서 필요한 거 설치할때 yum을 이용해서 rpm파일들
설치했는데 소스 설치는 실로 오랜만에 해본다~
아래부터 참고
CentOS에 APM(Apache,PHP,MySQL)을 설치하는데, yum을 통한 자동설치가 아닌 Source 설치로 진행한다. (아래 스크립트 중 yum 명령어는 Obuntu OS에서는 해당되지 않으므로, apt-get 명령어를 사용해야한다)
yum으로 설치할 경우, 설치가 빠르고 편리하다는 이점이 있지만 설치버전이 최신버전이 아닌 안정화된 버전(즉, 상대적으로 낮은 버전)으로 설치되는 단점 아닌 단점이 있다. 각각 장,단점이 있으므로 환경이나 여건에 맞게 진행하면 된다.
참고로 아래 설치하는 중간에 종종 vi에디터로 파일을 수정하는 경우가 있는데, 수정할 땐 i키를 눌러 insert 상태로 만들어 수정하고 저장할 땐 ESC키를 누른 다음 :wq를 입력하면 저장된다.
[설치환경 / 2016.11.24기준]
1. OS : CentOS 6.8 (x64)
2. Apache : httpd-2.4.23
3. MySQL : mysql-5.6.30
4. PHP : php-5.6.25
5. VirtualBox에서 진행
[Apache Source 설치]
1. 기존에 설치된 Apache 웹서버 제거
yum remove -y httpd httpd-*
2. 빌드 환경 설정
yum install -y make gcc g++ gcc-c++ autoconf automake libtool pkgconfig findutils oepnssl openssl-devel openldap-devel pcre-devel libxml2-devel lua-devel curl curl-devel libcurl-devel flex
3. 관련 모듈 다운로드 및 설치
(1) apr 다운로드
cd /usr/local/src wget http://mirror.apache-kr.org/apr/apr-1.5.2.tar.gz tar xvfz apr-1.5.2.tar.gz cd apr-1.5.2 ./configure --prefix=/usr/local/apr make make install
(2) apr-util 다운로드
cd /usr/local/src wget http://mirror.apache-kr.org/apr/apr-util-1.5.4.tar.gz tar xvzf apr-util-1.5.4.tar.gz cd apr-util-1.5.4 ./configure --with-apr=/usr/local/apr/ make make install
(3) pcre 다운로드
cd /usr/local/src wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz tar xvzf pcre-8.37.tar.gz cd pcre-8.37 ./configure --prefix=/usr/local/pcre make make install
4. Apache 웹서버 다운로드 및 설치
cd /usr/local/src wget http://mirror.apache-kr.org/httpd/httpd-2.4.23.tar.gz tar xvfz httpd-2.4.23.tar.gz mv apr-1.5.2 httpd-2.4.23/srclib/apr mv apr-util-1.5.4 httpd-2.4.23/srclib/apr-util cd httpd-2.4.23 ./configure --enable-module=so --enable-mods-shared=most --enable-maintainer-mode --enable-deflate --enable-headers --enable-rewrite --enable-ssl --enable-proxy --enable-proxy-http --enable-proxy-ajp --enable-proxy-balance --with-pcre=/usr/local/pcre --prefix=/usr/local/apache make make install
5. Apahce 웹서버 서비스 등록 및 실행
(1) httpd 서비스 파일 만들기
cp /usr/local/apache/bin/apachectl /etc/init.d/httpd vi /etc/init.d/httpd
vi에디터로 httpd 파일이 열리면 아래 #으로 처리된 내용을 그대로 추가하고 저장한다.
#!/bin/sh # chkconfig: 2345 90 90 # description: init file for Apache server daemon # processname: /usr/local/apache/bin/apachectl # config: /usr/local/apache/conf/httpd.conf # pidfile: /usr/local/apache/logs/httpd.pid
(2) httpd.conf 파일 수정
vi /usr/local/apache/conf/httpd.conf
ServerName localhost
#LoadModule unique_id_module modules/mod_unique_id.so
(3) httpd 서비스 시작
service httpd start
(4) httpd 서비스 실행 확인
ps -ef | grep httpd
(5) 리눅스 시작 시, httpd 서비스 자동실행
chkconfig httpd on
(6) httpd 서비스가 자동시작되도록 설정되었는지 확인
chkconfig | grep httpd
6. 방화벽 설정
※ CentOS 7부터는 방화벽으로 iptables를 사용하지 않고, firewalld를 사용한다. (/etc/sysconfig/iptables에 파일이 없음)
따라서, 포트를 열여줘야 한다면 조금 다른 방법으로 진행해야 한다.
아파치 웹서버를 외부에서 웹브라우저로 접속하기 위해서는 TCP 80 포트를 방화벽에서 열어줘야만 한다.
vi /etc/sysconfig/iptables
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT #-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
service iptables restart
여기까지 설정했다면 Apache 웹서버 설치가 완료되었다.
이제 브라우저를 실행해 주소창에 localhost를 입력해 보면 It Works! 라는 텍스트가 표시될 것이다.
Apache 웹서버 설치 완료 후 MySQL을 이어서 설치한다.
아직 Apache를 설치하지 않았다면 아래 포스트를 먼저 진행하고 오자.
[Linux] CentOS에 APM Source 설치 (Apache,PHP,MySQL) - 1 http://jguru-study.tistory.com/29
[설치환경 / 2016.11.24기준]
1. OS : CentOS 6.8 (x64)
2. Apache : httpd-2.4.23
3. MySQL : mysql-5.6.30
4. PHP : php-5.6.25
5. VirtualBox에서 진행
[MySQL Source 설치]
1. 기존에 설치된 MySQL과 cmake 삭제
yum remove -y mysql* cmake
2. 빌드 환경 설정
yum install -y zlib zlib-devel cpp perl bison freetype freetype-devel freetype-utils ncurses-devel libtermcap-devel bzip2-devel
3. cmake 다운로드 및 설치
MySQL 5.5부터는 ./configure가 아닌 cmake를 통해 컴파일을 진행해야 한다.
cd /usr/local/src wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz tar xvfz cmake-3.5.2.tar.gz cd cmake-3.5.2 ./bootstrap make && make install
4. MySQL 그룹 및 계정 만들기
groupadd mysql useradd -g mysql mysql
5. MySQL 다운로드
cd /usr/local/src wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.30.tar.gz tar xvfz mysql-5.6.30.tar.gz cd mysql-5.6.30
6. MySQL cmake 컴파일
/usr/local/bin/cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DENABLED_LOCAL_INFILE=1 \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DMYSQL_USER=mysql \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ -DMYSQL_TCP_PORT=3306 make make install
위 컴파일 내용을 간단히 설명하자면 다음과 같다.
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ //mysql 설치할 디렉토리
-DMYSQL_DATADIR=/usr/local/mysql/data \ //db설치(data폴더)할 디렉토리
-DDEFAULT_CHARSET=utf8 \ //mysql 서버의 문자셋
-DDEFAULT_COLLATION=utf8_general_ci \ //db의 문자셋
-DWITH_EXTRA_CHARSETS=all \ //추가로 지원할 문자셋
-DENABLED_LOCAL_INFILE=1 \ //local_infile변수 사용가능여부, 텍스트 파일의 데이터를 특정 테이블에 저장하는 변수
-DMYSQL_USER=mysql \ //mysql유저를 지정
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ //스토리지 엔진, default innodb
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ //스토리지 엔진
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ //스토리지 엔진
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ //스토리지 엔진
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ //mysql 소켓 디렉토리
-DMYSQL_TCP_PORT=3306 //mysql 포트번호, default가 3306임
7. mysql그룹/계정 권한주기
chown -R (계정명):(그룹명) /usr/local/mysql chown -R mysql:mysql /usr/local/mysql chown -R mysql:mysql /usr/local/mysql/data
8. DB 생성
cd /usr/local/mysql ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
9. MySQL 설정파일 및 데몬 복사 / base, datadir지정
cp support-files/my-default.cnf /etc/my.cnf #(메모리 용량에 따라 my- 뒤에 이름이 다를 수 있음) #(이미 존재하는 파일이라면 덮어씌우면 됨) 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
10. 환경변수 등록 및 MySQL 데몬 실행
cd ~ vi .bash_profile #PATH부분에 아래 내용을 추가한다 PATH=$PATH:$HOME/bin:/usr/local/mysql/bin source .bash_profile service mysqld start
11. MySQL root 계정 비밀번호 변경
# mysqladmin -u root password 암호 mysqladmin -u root password root123 암호 설정 후 root 유저로 접속 테스트 mysql -u root -p Enter password :
12. 리눅스 시작시 mysql 구동되도록 설정
chkconfig --add mysqld chkconfig mysqld on chkconfig --list mysqld
여기까지 했다면 Apache 웹서버에 이어 MySQL까지 설치가 완료되었다.
이제 PHP만 남았다.
ps. MySQL 5.7부터는 cmake에 이어 boost를 설치해야 컴파일이 가능하다. 이 부분에 대해서는 차후 별도의 포스트를 통해 따로 다룰 예정이다.
이제 마지막.. PHP 설치를 진행하자.
혹 아직 Apache나 MySQL을 설치하지 않았다면 아래 포스트를 먼저 진행하고 오자.
[Linux] CentOS에 APM Source 설치 (Apache,PHP,MySQL) - 1 http://jguru-study.tistory.com/29
[Linux] CentOS에 APM Source 설치 (Apache,PHP,MySQL) - 2 http://jguru-study.tistory.com/30
1. 빌드 환경 설정
yum install -y libjpeg libjpeg-devel libjpeg-turbo-devel gd gd-devel gdbm-devel php-mbstring libexif-devel libmcrypt libmcrypt-devel libvpx libvpx-devel libXpm libXpm-devel icu libicu libicu-devel t1lib t1lib-devel gmp-devel mhash* gettext gettext-devel libtidy libtidy-devel libxslt libxslt-devel libedit-devel libc-client libc-client-devel pam-devel readline-devel libpng libpng-devel krb5-devel db4-devel expat*
1-1. libmcrypt & libmcrypt-devel 패키지 설치
CentOS에서는 위 패키지가 yum에 포함되어있지 않아 직접 설치해야 한다. Ubuntu는 확인하지 못했는데 apt-get으로 된다면 그렇게 설치하면 된다.
cd /usr/local/src wget http://elders.princeton.edu/data/puias/unsupported/6/x86_64/libmcrypt-2.5.8-9.puias6.x86_64.rpm wget http://elders.princeton.edu/data/puias/unsupported/6/x86_64/libmcrypt-devel-2.5.8-9.puias6.x86_64.rpm rpm -ivh libmcrypt-2.5.8-9.puias6.x86_64.rpm rpm -ivh libmcrypt-devel-2.5.8-9.puias6.x86_64.rpm
2. MySQL 라이브러리 참조
cd /usr/local/mysql ln -s lib lib64
3. PHP 다운로드 및 컴파일
cd /usr/local/src wget http://kr1.php.net/get/php-5.6.25.tar.gz/from/this/mirror tar xvfz mirror cd php-5.6.25 ./configure --prefix=/usr/local/php \ --with-apxs2=/usr/local/apache/bin/apxs \ --with-config-file-path=/usr/local/apache/conf \ --with-mysql=/usr/local/mysql \ --with-mysql-sock=/usr/local/mysql \ --with-mysqli=/usr/local/mysql/bin/mysql_config \ --with-pdo-mysql=/usr/local/mysql \ --with-regex=php \ --with-libxml-dir=/usr \ --with-openssl --with-pcre-regex --with-zlib \ --with-bz2 --with-curl --with-gdbm \ --with-db4=/usr --with-dbm --with-pcre-dir=/usr --with-openssl-dir=/usr \ --with-libxml-dir=/usr --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr \ --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr \ --with-t1lib=/usr --with-gettext --with-gmp --with-mhash --with-imap \ --with-imap-ssl --with-kerberos --with-icu-dir=/usr --with-ldap \ --with-ldap-sasl --with-libmbfl --with-onig --with-mcrypt \ --with-libedit --with-readline --with-tidy --with-libexpat-dir=/usr \ --with-xmlrpc --with-xsl --with-pear --with-pic --with-libdir=lib64 \ --enable-bcmath --enable-calendar --enable-exif \ --enable-ftp --enable-pcntl --enable-gd-native-ttf \ --enable-gd-jis-conv --enable-intl --enable-mbstring \ --enable-shmop --enable-sockets --enable-sysvmsg \ --enable-sysvsem --enable-sysvshm --enable-wddx \ --enable-zip --enable-mysqlnd --enable-dba=shared \ --enable-mod-charset --enable-dom --enable-mbregex \ --enable-inline-optimization --enable-sigchild --enable-soap \ --enable-maintainer-zts --enable-opcache=nom make make install
4. PHP 환경설정
cp php.ini-production /etc/httpd/php.ini vi /etc/httpd/php.ini
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Module Settings;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [Date] date.timezone = "Asia/Seoul"
5. Apache 환경설정
vi /usr/local/apache/conf/httpd.conf # httpd.conf 내에서 PHP모듈이 정상적으로 추가되어있는지 확인 (자동으로 연동되어 등록됨) LoadModule php5_module modules/libphp5.so #<IfModule dir_module>을 찾아 아래 내용 추가 <IfModule dir_module> DirectoryIndex index.html index.htm index.php index.cgi </IfModule> #<IfModule mime_module> 을 찾아 아래 내용 추가 <IfModule mime_module> AddType application/x-compress . z AddType application/x-gzip . gz . tgz AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml .html .htm .inc AddType application/x-httpd-source .phps </IfModule> #httpd.conf 저장한 뒤 /etc/init.d/httpd restart
6. 환경변수 등록
cd ~ vi .bash_profile #PATH부분에 아래 내용을 추가한다 PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/php/bin #.bash_profile 저장한 뒤 source .bash_profile
7. 연동 확인
vi /usr/local/apache/htdocs/phpinfo.php <? php phpinfo(); ?> # 입력 후 저장
이렇게 APM 설치를 마무리했다.
각 버전마다 컴파일 설정값이나 관련 라이브러리가 바뀌는 등 여러가지 변수가 있을 수 있으니, 실제 진행할 때 이 점을 유의해야한다.
이번 포스팅을 진행할 때, 사용한 버전은 최대한 이것저것 테스트 해보긴 했지만 부족한 부분이나 잘못된 부분이 있다면 언제든 댓글 부탁드립니다.
출처: http://jguru-study.tistory.com/31 [ITstudy]
'프로그램개발 > Linux(Apache.vim)' 카테고리의 다른 글
VIM에서 Vundle 사용하기 (0) | 2018.05.18 |
---|---|
centos에서 node삭제후 업데이트 (0) | 2018.04.26 |
리눅스 엔지니어 기술 면접 질문지 (0) | 2017.11.01 |
자바,톰캣 설치시 참고 (0) | 2017.11.01 |
Linux Bash Shell Cheat Sheet (0) | 2017.09.30 |