이번에는 PhP를 소스설치 해보겠다. 이번에도 https://bluexmas.tistory.com/1128?category=343945 --> 이 분의 블로그를 참고하면서 했다.
먼저
$ sudo apt install pkg-config libxml2-dev libsqlite3-dev libgmp-dev libonig-dev libbz2-dev libreadline-dev libxslt1-dev
이 명령어 컴파일 관련 라이브러리를 설치한다.
그 다음
$ wget https://www.php.net/distributions/php-7.4.12.tar.gz
이 명령어로 PhP 컴파일 관련 파일을 설치한다.
그 다음
$ tar xvfz php-7.4.12.tar.gz
압축해제 해준다. 그리고 그 디렉토리로 이동
$ cd php-7.4.12/
그리고 ./configure ~~~ 를 해줘야하는데 또 다시 디렉토리 조심해라.
$ ./configure --prefix=/apps/php-7.4.12 --with-apxs2=/apps/apache24/bin/apxs --enable-fpm --enable-inline-optimization --enable-shared --enable-soap --with-xmlrpc --with-openssl --with-mhash --with-sqlite3 --with-zlib --enable-bcmath --with-iconv --with-bz2 --enable-calendar --with-curl --with-cdb --enable-dom --enable-exif --enable-fileinfo --enable-filter --enable-ftp --enable-gd --with-openssl-dir --with-zlib-dir --enable-gd-jis-conv --with-gettext --with-gmp --with-mhash --enable-json --enable-mbstring --enable-mbregex --enable-pdo --with-mysqli=/mysql-5.7.23/bin/mysql_config --with-pdo-mysql=/mysql-5.7.23/bin/mysql --with-zlib-dir --with-pdo-sqlite --with-readline --enable-session --enable-shmop --enable-simplexml --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --with-xsl --enable-mysqlnd-compression-support --with-pear --enable-opcache --with-mhash --with-curl --with-openssl --with-zlib --enable-intl
[Error: 자기 나 기다렸어?ㅎㅎ]
침착하게 냉수 한잔 하고 에러를 처리해본다. no package 'libcurl' found를 검색해보니
$ sudo apt-get install libcurl4-openssl-dev
$ sudo apt-get install pkg-config
이 라이브러리들을 다운로드해주라고 한다. 했더니,
ㄹㅇ ㅋㅋ만 치라고 ㅋㅋ
$ sudo apt-get install libpng-dev
이걸 다운로드 해준다. 그랬더니,
엇 생각해보니 난 MySQL 없는데?
그래서 configure 명령어를 수정 좀 해봤다.
$ ./configure --prefix=/apps/php-7.4.12 --with-apxs2=/apps/apache24/bin/apxs --enable-fpm --enable-inline-optimization --enable-shared --enable-soap --with-xmlrpc --with-openssl --with-mhash --with-sqlite3 --with-zlib --enable-bcmath --with-iconv --with-bz2 --enable-calendar --with-curl --with-cdb --enable-dom --enable-exif --enable-fileinfo --enable-filter --enable-ftp --enable-gd --with-openssl-dir --with-zlib-dir --enable-gd-jis-conv --with-gettext --with-gmp --with-mhash --enable-json --enable-mbstring --enable-mbregex --enable-pdo --with-zlib-dir --with-pdo-sqlite --with-readline --enable-session --enable-shmop --enable-simplexml --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --with-xsl --enable-mysqlnd-compression-support --with-pear --enable-opcache --with-mhash --with-curl --with-openssl --with-zlib --enable-intl
(mysql 적힌 건 다 지워줬다)
바로 성공. 그 다음,
$ make -j4
[빌드 성공한 모습]
저기 보면 $ make test
를 꼭 하라고 한다. 함 해주자.(참고로 X나 오래 걸린다. 난 너무 오래 걸려서 그냥 넘어갔음)
$ sudo make install
로 PHP 설치를 해준다.
[설치 완료한 모습]
그 다음,
$ cp php.ini-production /apps/php-7.4.12/php.ini
php.ini 파일을 복사해준다. 그 다음,
$ sudo vi /apps/apache24/conf/httpd.conf
apache 설정 파일 수정해준다.
[수정 1]
그 다음 SSI를 검색해준 다음에(vi에서 검색 단축키가 뭔지 알아와라)
[수정 2]
저것들을 추가해준다 하하. (AddHandler랑 AddType이랑 다르니까 걱정말고)
자 이제 설정 파일도 끝났겠다, Apache 웹 서버를 재실행 해준다
$ sudo systemctl restart apache2
재실행 해준 뒤
$ sudo systemctl restart apache2
상태 확인을 해서 잘 뜨면 다음 단계로 진행하면 된다.
그 다음 단계는 PHP 확인을 위한 파일을 생성하는 단계인데 /var/www/html
이 경로로 파일을 생성해줘야 한다.
일단
$ cd /var/www/html
로 이동시도를 해보니 난 없더라 ㅋ. 그래서 직접 만들어 줌.
$ cd /var
$ sudo mkdir www
$ cd www
$ sudo mkdir html
끝. 그 다음 html 폴더까지 이동 한 다음에,
$ sudo vi phpinfo.php
한 다음,
<?php phpinfo(); ?>
로 파일을 생성해주고 유유히 떠나면 된다. 하지만 웬걸,
phpinfo.php 가 왜 없노?
허허 이거 참. 이럴 땐 httpd/conf 파일을 뒤져보는게 좋다. DocumentRoot 키워드로 검색을 해보니
보이능가 루트 디렉토리가 /apps/apache24/htdocs 로 돼 있는 것을,,,,
그렇다면 우리가 해야할 건 phpinfo.php 파일을 저기로 옮겨주면 끝이다.
$ sudo mv /var/www/html/phpinfo.php /apps/apache24/htdocs/phpinfo.php
이 명령어로 잘라붙여넣기를 함 해보자.
???: 내가 사라져볼게, 얍! 얍!
무사히 옮긴 다음 "내 외부아이피/phpinfo.php" 로 접속해보자.
???: Hello motherfucker 🔪
여기까지 성공했으면 축배를 들어라. 나는 이만 글을 줄이고 데스페라도스 한 캔 따러 가야겠다. 그럼 다들 수고!
(아 참고로 각 파일들의 역할이나 좀 더 원리적인 부분은 각자가 알아서 서칭하길 바란다
ㅎㅎ,,, 나도 사실 잘 모름,, )