본문 바로가기
Linux/APM

[CentOS7] php 5.2 + apache 2.2 설치 및 연동

by aegypius 2020. 4. 27.
728x90
반응형

  사이트 개발자에 의하면 php 5.3이하, mysql 5.2, 아파치 2.4.x에 centos 64-bit라고 했는데 그간의 테스트 경험을 토대로 보자면......그냥 믿을 수가 없다. 2020년도에 제작한 기업용 쇼핑몰을 php 5.2로 만들었다는 것 자체가 이해는 안되지만 일단 php5.2를 설치했으니 나중을 위해서 정리해둔다. 

  php-fpm.org에서 php-5.2.17 버전을 위한 patch를 제공하고 있는데 테스트 해보지는 않았다. 링크만 걸어둔다.
https://php-fpm.org/downloads/

 

Index of /downloads/

 

php-fpm.org

  서버환경은 아래와 같다.
   OS : CentOS-7-x86_64-Minimal-1908 (링크 : http://isoredirect.centos.org/centos/7/isos/x86_64/)
   Apache : httpd-2.2.34.tar.gz (링크 :https://archive.apache.org/dist/httpd/)
   PHP : PHP-5.2.17.tar.gz (링크 : https://www.php.net/releases/) 5.3.3과 5.3.4 사이에 있다 -_-;

  os와 apache 설치는 이전에 정리했으므로 php 설치 부분만 다시 정리한다. php의 configure 옵션은 아래와 같다.

./configure \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-config-file-path=/usr/local/httpd \
--with-mysql=/usr/local/mysql \
--disable-debug

  만약에 apxs관련 오류가 발생한다면 apache의 설치디렉토리(/usr/local/httpd) 하위의 bin 디렉토리에 위치한 apxs를 열어보자. (# vi /usr/local/httpd/bin/apxs) 첫 번째 줄이 #!/replace/with/path/to/perl/interpreter -w로 되어 있을 것이다. 이를 perl이 설치된 경로로 바꿔주자. 기본적으로 perl은 /usr/bin에 위치하고 있을 것이기에 아래와 같이 수정해 주면 된다. 혹시 perl이 설치되어 있지 않다면 당연히 설치해야 한다. (yum install perl)

#!/usr/bin/perl -w

  위 내용은 컴파일 했던 디렉토리의 config.nice를 출력한 것이다. 며칠전 포스팅에서 언급한대로 컴파일 과정에서 오류가 발생할 것이다. 패치를 완료한 후에 다시 작업을 진행하여 설치를 마쳐야 한다. 진행중에 특정 모듈이 없다는 오류가 나온다면 하나하나 설치하여 해결하자.

make: *** [ext/dom/documenttype.lo] 오류 1
make: *** 끝나지 않은 작업을 기다리고 있습니다....
make: *** [ext/dom/node.lo] 오류 1

  컴파일과 설치가 끝났다면

1. php.ini-recommended를 /usr/local/httpd에 php.ini이름으로 복사해두자.
2. 복사해둔 php.ini를 열어서 short_open_tag 옵션을 On으로 수정하자. (132번째 줄...)
3. /usr/local/httpd/conf/extra에 httpd-php5.conf를 만들고 내용은 아래와 같이 하자.

<IfModule !mod_php5.c>
   LoadModule php5_module modules/libphp5.so
</IfModule>

<IfModule mod_mime.c>
   AddType application/x-httpd-php .php .php3 .phtml
   AddType application/x-httpd-php-source .phps
</IfModule>

4. httpd.conf의 하단부에 다음의 한 줄을 추가하자.

Include conf/extra/httpd-php5.conf


  아파치를 재시동 한 후에 phpinfo()를 띄워보자. 아래와 같이 나오면 성공이다.


  가상호스트 설정에서 DocumentRoot의 위치에 있는 index.html은 기본으로 열리는데 index.php는 열리지 않는 문제가 발생했다. 즉, http://내부아이피로 접속할 경우 index.html은 열리는데 index.php는 http://내부아이피/index.php로 해야지만 열린다.

  httpd.conf의 <IfModule dir_module> 구문의 한 줄을 아래와 같이 수정했다. (index.php 추가)

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

 

728x90
반응형

댓글