PHP 설치


PHP 설치

📌 PHP 의존성 패키지 설치

apt-get install libxml2-dev
apt-get install libjpeg-dev
apt-get install libpng-dev

📢 TIP

/var/lib/dpkg/lock 잠금파일을 얻을 수 없습니다.
위의 오류는 잦은 강제 리부팅 등이 발생했을때 나타납니다.
vm을 리부팅 하거나 /var/lib/dpkg/lock 삭제 후 다시시도 하면 해결됩니다.😉


📌 PHP 설치 (configure, make, make install)

cd /usr/local
wget https://www.php.net/distributions/php-7.4.1.tar.gz
tar xvfz php-7.4.1.tar.gz

/usr/local에 PHP를 다운받은 뒤 압축을 풀어줍니다.

cd php-7.4.1
./configure \
--with-apx2=/usr/local/apache2.4/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-imap-ssl \
--with-iconv \
--with-gd \
--with-jpeg \
--with-png \
--with-libxml \
--with-openssl


💡 ERROR 💡

php install error

오류가 등장했습니다.. PHP7부터는 –with-mysql 옵션을 지원하지 않는다고 합니다..🙅
$ apt-get install libsqlite3-dev 으로 libsqlite3-dev를 설치해준 뒤,

https://serverfault.com/questions/762616/compiling-php7-with-mysql-error
https://jirak.net/wp/php-mysqlnd-mysql-native-driver/

./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

위 링크의 configure 옵션을 참고하며 ./configure 옵션을 바꿔줍니다.

php install error

그런데 또 오류가 등장했습니다..😡 apache2.4 폴더를 못찾는 것 같으니 확인을 해봅니다.

php install error

왜그랬는지는 모르겠지만 apache2.4 폴더 이름을 apache24로 저장했었습니다! 😱

./configure \
--with-apxs2=/usr/local/apache24/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

원인을 찾았으니, configure의 apache 폴더를 apache24로 수정해서 다시 실행해줍니다.

php install step

configure에 성공했습니다! 😆

make -> 오래걸림
make test -> 더 오래걸림
make install -> 비교적 빨리 끝남

php install step

make가 완료되면 위와 같은 메시지가 출력됩니다.
메시지에도 적혀 있지만 반드시 make test 명령어를 수행해줘야 합니다.

make install까지 마치면 /usr/local/apache24/modules 디렉토리에서 php 파일이 제대로 설치되었는지 확인할 수 있습니다.

php install step

확인해보면 libphp7.so 파일이 설치되어 있는 것을 확인할 수 있습니다.
아파치는 DSO (Dynamic Shared Object : 동적 공유 객체 방식)으로 설치되어 있어서 아파치를 컴파일한 상태에서 새로운 모듈이 추가될 때 새로 또 컴파일하지 않아도 됩니다.
즉, httpd 에 기능이 포함되는 것이 아니라 외부에 기능을 두고 필요할때마다 동적으로 기능을 호출해서 사용하는 방식이라는 뜻입니다.
PHP는 대부분 이러한 DSO 모듈방식을 사용합니다.
참조링크:https://victorydntmd.tistory.com/222


📌 Apache와 PHP 연동

/usr/local/apache2.4/conf/httpd.conf 의 아파치 설정파일(httpd.conf)을 열어서 PHP 모듈이 설치되어 있는지 확인해봅니다.

php install step

잘 설치되어 있다면 아파치 설정파일(httpd.conf)을 vi 편집기로 열어 mime_module에 AddType을 해줍니다.

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

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



📌 PHP.ini 파일 세팅

php.ini 는 php 의 설정파일입니다.

  • php.ini-development(개발 시스템 용)과 php.ini-production(프로덕션 시스템용) 두 개의 파일이 있습니다.
  • 개발용은 더 많은 오류와 경고를 표시하지만, 보안상의 이유로 개발환경에서만 사용해야 합니다.

php install step

cd /usr/local/php-7.4.1
cp php.ini-production /usr/local/lib/php.ini



📌 테스트를 위한 PHP 파일 작성

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

<? php
phpinfo();
?>

http -k start 명령어로 아파치를 실행시킵니다.
{ %raw } ps-ef| grep httpd { %endraw } 명령어로 아파치가 실행중인지 확인합니다.

php install step

sudo /usr/local/apache2.4/bin/httpd -k start
ps -ef|grep httpd
apt install curl
sudo curl http://127.0.0.1



결과화면

php result

php result

PHP 설치 정보가 출력된다면 PHP 설치 및 아파치와의 연동이 성공적으로 된 것입니다! 🙆




© 2021.01. by gayeon

Powered by gayeon