일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- deeplearning
- 예제중심HTML&자바스크립트&CSS
- jupyter
- 크롤링
- 생활코딩
- image
- 셀레니움
- Selenium
- CBOW
- AndroidStudio를활용한안드로이드프로그래밍
- 수동설치
- 컴파일설치
- 머신러닝
- aws
- 비지도학습
- 한빛미디어
- MySQL
- Crawling
- 프로그램새내기를위한자바언어프로그래밍
- word2vec
- attention
- 가비아
- 한빛아카데미
- Apache
- 딥러닝
- 소스설치
- 밑바닥부터시작하는딥러닝2
- 밑바닥부터시작하는딥러닝
- 논문리뷰
- Lamp
- Today
- Total
안녕, 세상!
1-3. Lamp 소스 설치 및 구현 - PHP 컴파일 설치 본문
앞서 apache와 mysql을 설치 및 실행을 해보았습니다.
이제 amp의 마지막 부분인 php를 컴파일 설치를 해보겠습니다.
구현 환경
가상 환경 : vmware workstation 16 community player
OS : Ubuntu 18.04.05 Desktop 64bit (LTS)
Apache : Apache 2.4.46
mysql : MySQL 8.0.19
PHP : PHP 7.4.1
(1) 의존성 패키지 설치
php 공식 사이트 : ( www.php.net/manual/en/install.unix.apache2.php )
php도 설치를 하는데 의존성 패키지들이 필요합니다.
apache2 환경에서 php가 필요한 의존성 패키지들을 설치해줍니다.
$ sudo apt-get install libxml2-dev
$ sudo apt-get install libjpeg-dev
$ sudo apt-get install libpng-dev
$ sudo apt-get install libsqlite3-dev
(2) PHP tar.gz 다운로드
$ cd /usr/local
$ sudo wget https://www.php.net/distributions/php-7.4.1.tar.gz
$ sudo tar xvfz php-7.4.1.tar.gz
https://www.php.net/manual/en/install.unix.apache2.php
(3) PHP configure, make & make install
앞서 apache2와 mysql 컴파일 과정과 마찬가지로 configure과 make 명령어를 실행하여
설치 및 컴파일을 진행합니다.
$ cd php-7.4.1
$ sudo ./configure \
--with-apxs2=/usr/local/apache2.4/bin/apxs \ # apache2.4는 이전에 apache컴파일설치할 때 만듬
--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
configure 명령문을 실행시키면 다음과 같이 잘 나오는 것을 확인할 수 있습니다.
make 명령어를 실행시키면 잘 되는 것을 확인할 수 있습니다.
이 후 make test를 하면 다음과 같이 오류가 발생하긴 하지만 이는 무시해줘도 됩니다.
위의 오류를 무시하고 make install하면 잘 되는 것을 확인할 수 있습니다.
make install 까지 컴파일 설치를 모두 마치고
잘 설치되었는지 /usr/local/apache2.4/modules 디렉토리에서 php so 파일을 확인합니다.
다음과 같이 apache에 새로운 모듈(php 모듈)이 추가된 것을 확인할 수 있습니다.
apache는 DSO(Dynamic Shared Object) 동적 공유 객체 방식으로 설치되어 있습니다.
그러므로 apache가 이미 컴파일된 상태에서 위와 같이 새로운 모듈이 추가될 때
apache를 새로 또 컴파일하지 않아도 됩니다.
즉, httpd에 기능이 포함되어 있는것이 아니라
외부에 기능을 두고 필요할 때 마다 동적으로 기능을 호출해서 사용하는 방식입니다.
PHP는 대부분 DSO 모듈방식을 사용합니다.
( 참조 : victorydntmd.tistory.com/222 )
(4) apache와 php의 연동
/usr/local/apache2.4/conf/httpd.conf 의 아파치 설정파일 (httpd.conf) 을 열어서 PHP 모듈이 설치되어 있는지 확인합니다.
$ sudo vim /usr/local/apache2.4/conf/httpd.conf
apache 설정파일(httpd.conf)에 php so 파일이 잘 설치되었는지 확인되었으면,
밑으로 내려서 403번째 줄쯤에 아래의 그림과 같이 Addtype을 작성합니다.
(5) php.ini 파일 설정
php.ini는 php의 설정파일입니다.
위에서 설치한 php-7.4.1 디렉터리로 이동하면 php.ini-development 와 php.ini-production
두 개의 파일이 있습니다.
프로덕션 시스템용과 개발 시스템 용 두 가지 버전인데,
개발용은 더 많은 오류와 경고를 표시하지만, 보안상의 이유로 개발환경에서만 사용해야 합니다.
일단 프로덕션용파일을 /usr/local/lib/php.ini 에 복사합니다.
$ cd /usr/local/php-7.4.1
$ sudo cp php.ini-production /usr/local/lib/php.ini
php configure 시에 옵션으로 php.ini 의 위치를 지정하지 않으면
디폴트로 /usr/local/lib/php.ini를 사용합니다.
(6) php 파일 작성
apache의 웹 콘텐츠 (html, php 파일등) 는 htdocs 디렉토리에 위치합니다.
해당 디렉터리에 이동하여 php파일을 작성하겠습니다.
$ cd /usr/local/apache2.4/htdocs
$ sudo vim phpinfo.php
<? php
phpinfo();
?>
이제 php가 작동되는지 확인하기 위해서 apache를 실행시킵니다.
$ 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.01
firefox웹브라우저에 http://127.0.0.1/phpinfo.php로 접속합니다.
127.0.0.1은 필자가 실행시킨 apache 서버의 ip주소입니다.
php가 잘 나오는 것을 확인할 수 있습니다.
apache웹서버의 실행을 끄면 php도 실행이 안되는 것을 확인할 수 있습니다.
$ sudo service httpd stop
$ service httpd status
핵심 참조 : salix97.tistory.com/142?category=837576
'It공부 > Server' 카테고리의 다른 글
2-3 MySQL 외부에서 접속 (1) | 2021.02.01 |
---|---|
2-2 AWS에 Nginx, MySQL, PHP 구축 (0) | 2021.01.31 |
2-1. bitnami를 이용한 wamp 포트포워딩 구현 (0) | 2021.01.30 |
1-2. Lamp 소스 설치 및 구현 - MySQL 컴파일 설치 (0) | 2021.01.27 |
1-1. Lamp 소스 설치 및 구현 - apache2.4 컴파일 설치 (1) | 2021.01.25 |