PHP 7.4 설치 (Apache도 설치됨)
PHP 7.4 핵심 설치
cd /usr/ports/lang/php74
make config
make all install clean
설치한 다음에 딸려서 설치된 패키지들 청소한 화면
===> Cleaning for pcre2-10.36
===> Cleaning for libargon2-20190702
===> Cleaning for libxml2-2.9.10_2
===> Cleaning for php74-7.4.13_2
PHP 7.4 확장 모듈 설치
cd /usr/ports/lang/php74-extensions/
make config
make all install clean
... ... ...
===> php74-pecl-pdflib-4.1.4_1 License PDFlib needs confirmation, but BATCH is defined.
*** Error code 1
이 오류를 만나면 /etc/make.conf 에서 BATCH=“YES”를 주석처리[(BATCH 앞에 # 더함)] 한 다음에 이 pdflib 패키지만 따로 설치한다. 다른 방법으로, make config 에서 이 pdflib 를 빼고 일차로 설치한 다음에, BATCH=“YES”를 주석처리하고 /usr/ports/print/pecl-pdflib 에 가서 이 것만 따로 설치할 수도 있다.
cd /usr/ports/print/pecl-pdflib
make config
make all install clean
이에 따른 몇 개 패키지는 BATCH=“YES” 기능을 껐기 때문에 일일이 선택사항을 골라서 정해줘야 한다. 그냥 기본설정값으로 설치를 해 준다. Pecl-pdflib 설치가 끝나면 다시 /etc/make.conf 에 BATCH=“YES” 기능을 켜고[(BATCCH 앞에 # 지움)], php74-extension 설치를 계속한다.
cd /usr/ports/lang/php74-extensions
make all install clean
설치한 다음에 딸려서 설치된 패키지들 청소한 화면
===> Cleaning for php74-bcmath-7.4.13_2
===> Cleaning for php74-bz2-7.4.13_2
===> Cleaning for php74-calendar-7.4.13_2
===> Cleaning for php74-ctype-7.4.13_2
===> Cleaning for php74-curl-7.4.13_2
===> Cleaning for php74-dba-7.4.13_2
===> Cleaning for php74-dom-7.4.13_2
===> Cleaning for php74-enchant-7.4.13_2
===> Cleaning for enchant-1.6.0_9
===> Cleaning for hunspell-1.7.0_2
===> Cleaning for glib-2.66.4_1,1
===> Cleaning for docbook-xml-5.0_3
===> Cleaning for xmlcharent-0.3_2
===> Cleaning for xmlcatmgr-2.2_2
===> Cleaning for docbook-xsl-1.79.1_1,1
===> Cleaning for docbook-1.5
===> Cleaning for docbook-sgml-4.5_1
===> Cleaning for iso8879-1986_3
===> Cleaning for sdocbook-xml-1.1_2,2
===> Cleaning for libxslt-1.1.34_1
===> Cleaning for libgcrypt-1.8.7
===> Cleaning for libgpg-error-1.41
===> Cleaning for pcre-8.44
===> Cleaning for php74-exif-7.4.13_2
===> Cleaning for php74-fileinfo-7.4.13_2
===> Cleaning for php74-filter-7.4.13_2
===> Cleaning for php74-ftp-7.4.13_2
===> Cleaning for php74-gd-7.4.13_2
===> Cleaning for freetype2-2.10.4
===> Cleaning for png-1.6.37
===> Cleaning for jpeg-turbo-2.0.6
===> Cleaning for nasm-2.15.05,1
===> Cleaning for libgd-2.3.0,1
===> Cleaning for fontconfig-2.13.92_2,1
===> Cleaning for gperf-3.1
===> Cleaning for tiff-4.2.0
===> Cleaning for jbigkit-2.1_1
===> Cleaning for webp-1.1.0
===> Cleaning for giflib-5.2.1
===> Cleaning for php74-gettext-7.4.13_2
===> Cleaning for php74-gmp-7.4.13_2
===> Cleaning for gmp-6.2.1
===> Cleaning for php74-iconv-7.4.13_2
===> Cleaning for php74-intl-7.4.13_2
===> Cleaning for icu-68.2,1
===> Cleaning for php74-imap-7.4.13_2
===> Cleaning for panda-cclient-20130621_1
===> Cleaning for php74-json-7.4.13_2
===> Cleaning for re2c-0.14.3
===> Cleaning for php74-mbstring-7.4.13_2
===> Cleaning for oniguruma-6.9.6
===> Cleaning for php74-mysqli-7.4.13_2
===> Cleaning for php74-odbc-7.4.13_2
===> Cleaning for unixODBC-2.3.9
===> Cleaning for php74-opcache-7.4.13_2
===> Cleaning for php74-openssl-7.4.13_2
===> Cleaning for php74-pcntl-7.4.13_2
===> Cleaning for php74-pecl-pdflib-4.1.4_1
===> Cleaning for php73-pecl-pdflib-4.1.4_1
===> Cleaning for pdflib-7.0.5_6
===> Cleaning for gsed-4.8
===> Cleaning for php74-pdo-7.4.13_2
===> Cleaning for php74-pdo_mysql-7.4.13_2
===> Cleaning for php74-pdo_sqlite-7.4.13_2
===> Cleaning for sqlite3-3.34.0,1
===> Cleaning for php74-phar-7.4.13_2
===> Cleaning for php74-posix-7.4.13_2
===> Cleaning for php74-pspell-7.4.13_2
===> Cleaning for aspell-0.60.8,1
===> Cleaning for php74-readline-7.4.13_2
===> Cleaning for php74-session-7.4.13_2
===> Cleaning for php74-shmop-7.4.13_2
===> Cleaning for php74-simplexml-7.4.13_2
===> Cleaning for php74-snmp-7.4.13_2
===> Cleaning for net-snmp-5.9_1,1
===> Cleaning for php74-soap-7.4.13_2
===> Cleaning for php74-sockets-7.4.13_2
===> Cleaning for php74-sodium-7.4.13_2
===> Cleaning for libsodium-1.0.18
===> Cleaning for php74-sqlite3-7.4.13_2
===> Cleaning for php74-tidy-7.4.13_2
===> Cleaning for tidy-lib-090315.c_3
===> Cleaning for php74-tokenizer-7.4.13_2
===> Cleaning for php74-xml-7.4.13_2
===> Cleaning for php74-xmlreader-7.4.13_2
===> Cleaning for php74-xmlrpc-7.4.13_2
===> Cleaning for php74-xmlwriter-7.4.13_2
===> Cleaning for php74-xsl-7.4.13_2
===> Cleaning for php74-zip-7.4.13_2
===> Cleaning for libzip-1.5.2
===> Cleaning for php74-zlib-7.4.13_2
===> Cleaning for php74-extensions-1.0
PHP 7.4 아파치 용 확장 모듈 설치
cd /usr/ports/www/mod_php74
make config
make all install clean
2022년에 더함. mod_php82를 설치하고 나서 apachectl start 를 해도 기동이 안되는 경우가 있어서 검색을 해 봤다. https://forums.freebsd.org/threads/apache24-with-mod_php82-wont-start-up.86779/page-2#post-586761 에 의하면 다음과 같이 해결할 수 있었다. 내 경우에는 mod_php82 였는데, 똑 같이 따라해서 해결을 할 수 있었다.
pkg delete mod_php74
pkg install gcc
cd /usr/ports/www/mod_php74/
bash
export CC=/usr/local/bin/gcc
make install clean
exit
/usr/local/etc/rc.d/apache24 start
설치한 다음에 나오는 중요한 정보
******************************************************************************
Make sure index.php is part of your DirectoryIndex.
You should add the following to your Apache configuration file:
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
******************************************************************************
If you are building PHP-based ports in poudriere(8) or Synth with ZTS enabled,
add WITH_MPM=event to /etc/make.conf to prevent build failures.
******************************************************************************
설치한 다음에 딸려서 설치된 패키지들 청소한 화면
===> Cleaning for apache24-2.4.46
===> Cleaning for apr-1.7.0.1.6.1_1
===> Cleaning for gdbm-1.18.1_1
===> Cleaning for db5-5.3.28_7
===> Cleaning for jansson-2.13.1
===> Cleaning for mod_php74-7.4.13_2
이제 환경을 설정하는 문서를을 내 입맛에 맞게 변경한다.
/usr/local/etc/php.ini 설정
각 변수들이 뭔지 필요하다면 검색을 해보면 알 수 있겠지만, 다른 값들은 몰라도 일단 다음 값을 확인하고 본인에게 필요한 값들[(내 경우에는 영화 한 편 올리는데 보통 4G 정도 용량이 필요하다)]로 설정한다.
max_execution_time = 360
default_charset = "UTF-8"
file_uploads = On
upload_max_filesize = 4096M
max_file_uploads = 16