Ubuntu에 Php 설치하기

ik_13038·2022년 8월 8일
0

라이징캠프 1주차

목록 보기
5/7
post-thumbnail

첫 주차 과제

Ubuntu 설치하기👌
Ubuntu에 Apache 설치하기👌
Ubuntu에 PHP 설치하기 👌
Ubuntu에 MySQL 설치하기 👌
기타 SQL 쿼리문 연습해보기
Linux CLI 환경에 익숙해지기

아무쪼록 저번에 MySQL까지 정상구동되는 것을 확인했으니
이번에는 PHP를 설치하고 연동할 차례이다.
공식 홈페이지 버전이 굉장히 다양하길래 찾아보고 고민을 많이 했는데 생각보다 최신 8.1 버전이 여타 소프트웨어를 호환하지 않는 경우가 많아 고민이 있었다.(워드프레스 등) 현재 봤을 때는 프로젝트용이기도 하고 오류가 날 시 해결하는 것도 배우는 과정이라고 생각하여 일단은 최신 버전을 설치하기로 했다.

  • 현재 가장 많이 사용되는 버전은 7.4 버전으로 보인다. 그 이하 (5.x) 버전을 사용하는 분들도 php 커뮤니티에는 많았다.

Php의 경우 설치 메뉴얼을 통해 소스설치 가이드도 친절하게 제공한다.

필수 패키지 설치


$ apt-get install libxml2-dev
$ apt-get install libjpeg-dev
$ apt-get install libpng-dev
$ sudo apt-get install libsqlite3-dev

  • sqlite3의 경우 중간에 없다고 팅기는 경우가 본인도 발생했기에 미리 패키지를 설치하는 것을 권장한다.

PHP 8.1.9 소스설치 파일 다운로드 및 압축해제

/usr/local# wget https://www.php.net/distributions/php-8.1.9.tar.gz
/usr/local# tar xvfz php-8.1.9.tar.gz

PHP configure 한 후, make, make install 해주기

/usr/local# cd php-8.1.9
$ ./configure \
--with-apxs2=/usr/local/apache2.4/bin/apxs \
--enable-mysqlnd \
--with-mysql-sock=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-imap-ssl \
--with-iconv \
--enable-gd \
--with-jpeg \
--with-libxml \
--with-openssl

$ make
$ make test
$ make install

이번 과정은 생각보다 시간이 오래 걸리지는 않았다.

  • 단 Make install 과정에서 위와 같은 warning이 떠서 알아보았다.

  • 링크에서는
    libtool은 "make install" 단계 동안 Php에 지정된 접두사가 "make install"을 실행할 때와 다르다고 하기 때문에 나는 에러라고 한다. 아마 configure 시에 설정해주면 해결되는 warning이기에 큰 경고는 아닌 것으로 보인다. 혹여나 위와 같은 warning으로 에러가 발생하는 경우에는 이 링크를 참고하여 configure를 수정하여 make를 다시 해볼 것을 권장한다.

Apache와 PHP 연동


httpd.conf에서 모듈 설치 확인, AddType 추가

/usr/local# cd apache2.4/conf
/usr/local/apache2.4/conf# vi httpd.conf

모듈은 165줄쯤에서 확인할 수 있었다.
vi 편집기에서 :set number를 입력하면 라인 번호를 확인할 수 있으므로 세팅 후 :165를 통해 이동해서 확인해보도록 하자. (노란색 표시한 부분)

추가로 400라인 근처에 IfModule mime_module 부분이 있다. 아래에 AddType으로 아래 명령어를 추가한다.

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

php.ini 파일 설정

/usr/local # cd php-8.1.9
/usr/local/php-8.1.9 # cp php.ini-production /usr/local/lib/php.ini

production 시스템용 설정 파일인 php.ini-production 파일을 /usr/local/lib/php.ini에 복사한다.
php configure 시에 옵션으로 php.ini의 위치를 지정하지 않으면 기본으로 /usr/local/lib/php.ini를 사용한다.
php.ini은 PHP설정 파일인데 php-8.1.9 디렉토리로 가면 php.ini-development와 php.ini-production 두개의 파일이 있다. development는 개발용, production은 프로덕션 시스템용 버전으로 개발용 같은 경우 더 많은 오류와 경고를 표시해주지만 보안상 문제가 생길 수 있으므로 개발 환경에서만 사용해야한다..고한다.

테스트용 php파일 세팅

아파치의 웹 콘텐츠(html, php 파일 등)는 htdocs 디렉토리에 위치한다.

$ cd /usr/local/apache2.4/htdocs
$ vi phpinfo.php

vi로 열은 phpinfo.php 편집기에 아래와 같이 입력한다.

<? 
phpinfo();
?>

아파치를 실행하고 PHP 연동 확인

$ sudo /usr/local/apache2.4/bin/httpd -k start
$ ps -ef|grep httpd|grep -v grep
$ sudo netstat -anp|grep httpd
$ sudo curl http://127.0.0.1

명령 자체는 첫번째 명령어만 terminal에 입력해도 실행이 된다.
두번째부터는 현재 프로세스에서 실행이 잘 되고 있는지 확인하는 명령어다.

이후 브라우저 주소창에 localhost/phpinfo.php 혹은 127.0.0.1/php.info.php로 들어가서 화면이 뜨면 성공이다.

근데 본인은 흰 화면만 나와서.. 해결하기 위해 검색해보았다.

주소창에 phpinfo 화면이 안 나오고 흰 화면이 나올 시

  1. 앞서 입력한 php.ini에 오타가 없는지 확인한다.
  • 모듈 확인

  • AddType 부분 확인

    본인은 혹시 몰라 링크에 따라 마지막 AddType을 추가해보았다.

  1. php.ini에서 short_open_tag를 on으로 변경한다.

    본인도 off로 되어있길래 on으로 수정했다. 참고 링크

다시 재구동해보자.

$ sudo /usr/local/apache2.4/bin/httpd -k stop
$ sudo /usr/local/apache2.4/bin/httpd -k start

정상적으로 브라우저에 phpinfo 화면이 나왔다.

profile
글 연습, 정보 수집

0개의 댓글