2021. 1. 24. 04:43ㆍServer
0. PHP 설치를 위한 의존성패키지 확인
$ apt-get install libxml2-dev
$ apt-get install libjpeg-dev
$ apt-get install libpng-dev
1. PHP tar.gz 다운로드
$ cd /usr/local
$ wget https://www.php.net/distributions/php-7.4.1.tar.gz
$ tar xvfz php-7.4.1.tar.gz
2. PHP configure 한 후, make, make test, make install 하기
$ cd php-7.4.1
$ ./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 && make test && make install
./configure 결과
make 결과
make install 결과
make test 시 찝찝
(n 누름)
php so 파일 제대로 설치되었는지 확인
$ cd /usr/local/apache2.4/modules
$ ls -l
# libphp7.so 파일 확인
3.아파치와 PHP를 연동해준다.
php 모듈 설치되어 있는지 확인
$ cd /usr/local/apache2.4/conf
$ vi httpd.conf
...
LoadModule php7_module modules/libphp7.so
...
모듈 잘 설치 되어있으면 mime_module에 아래 AddType 한줄추가
$ vi httpd.conf
...
<IfModule mime_module>
...
AddType application/x-httpd-php .php .html
...
4. php.ini 파일 세팅
php.ini 는 php 의 설정파일이라고 할 수 있다. 맨 처음에 php-7.4.1.tar.gz 파일을 압축해제한 php-7.4.1 디렉토리로 가보면 php.ini-development 와 php.ini-production 두 개의 파일이 있다. 프로덕션 시스템용과 개발 시스템 용 두 가지 버전인데, 개발용은 더 많은 오류와 경고를 표시하지만, 보안상의 이유로 개발환경에서만 사용해야 한다.
cp 명령어를 이용하여, php.ini-production 파일을 /usr/local/lib/php.ini 에 복사한다.
php configure 시에 옵션으로 php.ini 의 위치를 지정하지 않으면 디폴트로 /usr/local/lib/php.ini 를 사용한다.
$ cd /usr/local/php-7.4.1
$ cp php.ini-production /usr/local/lib/php.ini
5. 테스트를 위한 php 파일 작성
아파치의 웹 콘텐츠 (html, php 파일등) 는 htdocs 디렉토리에 위치한다.
$ cd /usr/local/apache2.4/htdocs
$ vi index.php
<? php
phpinfo();
?>
httpd -k start 명령어로 아파치를 실행시킨다. ps -ef | grep httpd 명령어로 아파치가 실행중인지도 확인한다.
$ 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
http://3.34.122.253/index.php 접속
* 난관1) 사이트 접속시 소스코드 그대로 보이는 문제
- https://chojja7.tistory.com/25
- https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=15692&page=308
- https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_install&wr_id=106765
- https://malsik2004.tistory.com/entry/phpinfo-출력-장애아파치php
- https://oopaque.tistory.com/91 → 이거 해도 되는 지 몰겠당
- → 다 했는데 안됐음
* 난관2) 소스코드 그대로 보이는 문제에 부딪혔을 때 서버를 restart 했는데 아파치가 날라갔다.
- curl: (52) Empty reply from server
- 그래서 다시 깔았지.. restart 절대 하지않기.
- 참고 =https://faq.hostway.co.kr/Linux_WEB/3665
- 해결책
- 재시작하고싶을 떄 httpd stop → httpd start
참고자료
'Server' 카테고리의 다른 글
AWS 서버 구축 - MySQL 외부에서 접속하기 (0) | 2021.01.25 |
---|---|
AWS 서버 구축 - nginx, mysql, php 설치 (0) | 2021.01.25 |
Local 서버 구축 (0) | 2021.01.25 |
APM 소스 설치(컴파일 설치, 수동설치)-MySQL (0) | 2021.01.24 |
APM 소스 설치(컴파일 설치, 수동설치)-Apache (1) | 2021.01.24 |