프로그램

[LINUX/CENTOS] PHP 소스 컴파일 설치 (APACHE 컴파일설치 연동)

네오류이 2021. 1. 9. 10:19
728x90
반응형

출처 : http://www.atblog.co.kr/?p=6287

 

저번에 포스팅한 글중 Apache 설치에 관한 글이 있는데
그 글에서 설치한 Apache와 연동되도록 PHP를 소스 설치하는 방법에 대해 포스팅 한다.
해당 글은  http://www.atblog.co.kr/?p=6255 에 있으니 Apache를 설치하지 않았다면 참고하길..

 

이 전과 마찬가지로 대부분 패키지파일은 내 서버에 올려놓고 해당 링크로 커맨드를 작성하니
필요 버전의 파일은 해당 모듈 홈페이지로 접속해 다운받길 바란다.

해당 포스팅은 Mysql과 연동하지않는 순수 PHP를 기반으로 작성했고
Mysql과 연동하는부분에선 같이 참고로 정보가 작성되어 있으니 이 역시 참고하길
– PHP : http://php.net/downloads.php

 

그리고 이 글을 읽기 전에 Mysql도 설치할 예정이라면 http://www.atblog.co.kr/?p=6305 부터 설치할것!

 

 

가장먼저 의존 라이브러리를 설치한다.

 

 

 

 

 

Shell

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

# 두개는 같은 명령어다. 하나씩치려면 위, 한번에 설치하려면 하단

# 개별 설치

$ yum install libxml2-devel

$ yum install bzip2-devel

$ yum install libcurl-devel

$ yum install gdbm-devel

$ yum install libvpx-devel

$ yum install libvpx

$ yum install libjpeg-turbo-devel

$ yum install libpng-devel

$ yum install libXpm libXpm-devel

$ yum install freetype-devel

$ yum install t1lib t1lib-devel

$ yum install gmp-devel

$ yum install libc-client libc-client-devel

$ yum install pam-devel

$ yum install libicu libicu-devel

$ yum install openldap-devel

$ yum install readline-devel

$ yum install libedit-devel

$ yum install libtidy libtidy-devel

$ yum install libxslt libxslt-devel

$ yum install krb5-devel

$ yum install openssl-devel

$ yum install db4-devel

$ yum -y install expat*

 

# 한번에 설치

yum -y install libxml2-devel bzip2-devel libcurl-devel gdbm-devel libvpx libvpx-devel libjpeg-turbo-devel libpng-devel libXpm \

libXpm-devel freetype-devel t1lib t1lib-devel gmp-devel libc-client libc-client-devel pam-devel libicu libicu-devel openldap-devel \

readline-devel libedit-devel libtidy libtidy-devel libxslt libxslt-devel expat* krb5-devel openssl-devel db4-devel

 

다음 libmcrypt를 설치한다. 그리고 심볼생성까지 마무리

 

 

 

 

 

Shell

 

1

2

3

4

5

6

7

$ wget http://www.atblog.co.kr/file/package/libmcrypt-2.5.8.tar.gz

$ tar zxvf libmcrypt-2.5.8.tar.gz

$ cd libmcrypt-2.5.8

$ ./configure

$ make

$ make install

$ ln -s /usr/local/lib/libmcrypt.so.4 /usr/local/lib64/libmcrypt.so.4

 

만약! Mysql을 설치했다면.. 아래 코드를 넣는다. Mysql 라이브러리 참조

 

 

 

 

 

Shell

 

1

$ ln -s /usr/local/mysql/lib /usr/local/mysql/lib64

 

다음 PHP소스를 다운받는다.

 

 

 

 

 

Shell

 

1

2

3

4

5

6

7

# libmcrypt-2.5.8 폴더로부터 다시 나온다.

$ cd ..

 

# 패키지를 받고 준비

$ wget http://www.atblog.co.kr/file/package/php-5.6.4.tar.gz

$ tar zxvf php-5.6.4.tar.gz

$ cd php-5.6.4

 

이제 PHP를 설치한다
여기서 중요! Mysql을 설치하지 않은상태거나, 설치하지 않을거라면 주석 처리된 부분은 지울것

 

 

 

 

 

Shell

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

./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=/var/mysql \     # Mysql 미사용 삭제

--with-mysqli=/usr/local/mysql/bin/mysql_config \                        # Mysql 미사용 삭제

--with-pdo-mysql=shared,/usr/local/mysql \                                   # 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 \                                                                           # Mysql 미사용 삭제

--enable-dba=shared --enable-mod-charset \

--enable-dom --enable-mbregex --enable-inline-optimization \

--enable-sigchild --enable-soap \

--enable-maintainer-zts \

--enable-opcache=no

 

# 대충 아래와 같은 문구가 찍히면 설정 완료!

... 중략

Thank you for using PHP.

 

config.status: creating php5.spec

config.status: creating main/build-defs.h

config.status: creating scripts/phpize

config.status: creating scripts/man1/phpize.1

config.status: creating scripts/php-config

config.status: creating scripts/man1/php-config.1

config.status: creating sapi/cli/php.1

config.status: creating sapi/cgi/php-cgi.1

config.status: creating ext/phar/phar.1

config.status: creating ext/phar/phar.phar.1

config.status: creating main/php_config.h

config.status: executing default commands

 

 

$ make

 

# 대략 이런 로그...

Installing PHP SAPI module:       apache2handler

/usr/local/apache/build/instdso.sh SH_LIBTOOL='/usr/local/apr/build-1/libtool' libphp5.la /usr/local/apache/modules

/usr/local/apr/build-1/libtool --mode=install install libphp5.la /usr/local/apache/modules/

libtool: install: install .libs/libphp5.so /usr/local/apache/modules/libphp5.so

libtool: install: install .libs/libphp5.lai /usr/local/apache/modules/libphp5.la

libtool: install: warning: remember to run `libtool --finish /home/php-5.6.4/libs'

chmod 755 /usr/local/apache/modules/libphp5.so

[activating module `php5' in /usr/local/apache/conf/httpd.conf]

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20131226/

Installing PHP CLI binary:        /usr/local/php/bin/

Installing PHP CLI man page:      /usr/local/php/php/man/man1/

Installing PHP CGI binary:        /usr/local/php/bin/

Installing PHP CGI man page:      /usr/local/php/php/man/man1/

Installing build environment:     /usr/local/php/lib/php/build/

Installing header files:          /usr/local/php/include/php/

Installing helper programs:       /usr/local/php/bin/

  program: phpize

  program: php-config

Installing man pages:             /usr/local/php/php/man/man1/

  page: phpize.1

  page: php-config.1

Installing PEAR environment:      /usr/local/php/lib/php/

[PEAR] Archive_Tar    - already installed: 1.3.12

[PEAR] Console_Getopt - already installed: 1.3.1

[PEAR] Structures_Graph- already installed: 1.0.4

[PEAR] XML_Util       - already installed: 1.2.3

[PEAR] PEAR           - already installed: 1.9.5

Wrote PEAR system config file at: /usr/local/php/etc/pear.conf

You may want to add: /usr/local/php/lib/php to your php.ini include_path

/home/php-5.6.4/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin

ln -s -f /usr/local/php/bin/phar.phar /usr/local/php/bin/phar

Installing PDO headers:          /usr/local/php/include/php/ext/pdo/

 

# 끝으로 인스톨!

$ make install

#...중략 (그리고 길어서 생략)

 

이다음 환경설정해야 하는부분이 있는데 다른부분은 원하는대로 설정하고
우선 TImezone만 세팅해주자

 

 

 

 

 

 

1

2

3

4

$ cp php.ini-production /usr/local/apache/conf/php.ini

$ vi /usr/local/apache/conf/php.ini

 

date.timezone = "Asia/Seoul"

 

자 이제 설치가 끝났으나 잘 설치 되있나 확인 해 보자

 

 

 

 

 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

$ vi /usr/local/apache/conf/httpd.conf

 

# PHP 모듈이 정상적으로 추가되었는지 확인

LoadModule php5_module        modules/libphp5.so

 

# 마임타입 추가

 

    ... 중략 ...

    AddType application/x-httpd-php .php .html

    AddType application/x-httpd-php-source .phps

 

 

# index.php 연결

 

    DirectoryIndex index.php index.html

 

끝으로 심볼릭 PATH 등록을 해주자

 

 

 

 

 

Shell

 

1

2

3

$ ln -s /usr/local/php/bin/php /bin/php

$ ln -s /usr/local/php/bin/php-config /usr/local/bin/php-config

$ ln -s /usr/local/php/bin/phpize /usr/local/bin/phpize

 

설치가 끝났다.
이제 테스트용 문서를 작성하고 확인 해 보자

/usr/local/apache/htdocs 에 아래와 같은 내용으로 phpinfo.php를 만들어 주소창에 타이핑

 

 

 

 

 

Shell

 

1

$echo "<!--?php phpinfo(); ?-->" > /usr/local/apache/htdocs/phpinfo.php</code> 

 

여기까지해서 정상적으로 info 화면이 나온다면 끝!

728x90
반응형