Apache 2.4.39 / Mariadb 10.3.15 와 연동

1) apache, mysql 데몬 중지
실행되어 있지 않아, 별도로 데몬 중지는 진행 하지않음

2) 기존 php 백업
[root@ /opt]# mv php php_bak
[root@ /opt]# ll | grep php
drwxr-xr-x  8 root  root   76 2019-07-11 17:44 php_bak

3) 기존 apache libphp7.so 파일 백업
[root@ /opt/apache/modules]# mv libphp7.so libphp7.so_bak

4) 설치
wget -P /root/src/ https://www.php.net/distributions/php-8.1.0.tar.gz

cd /root/src; tar -zxvf php-8.1.0.tar.gz ; cd php-8.1.0

./configure --prefix=/opt/php --with-apxs2=/opt/apache/bin/apxs --with-pdo-mysql --with-mysqli --with-curl --with-jpeg --with-freetype --with-xpm --with-zlib --with-zlib-dir=/usr --with-gdbm --with-gettext --with-iconv --with-openssl --with-libxml --with-bz2 --with-zip --enable-mysqlnd --enable-exif --enable-ftp --enable-sockets --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-soap --enable-mbstring=all --enable-bcmath --enable-gd

=============================================

*에러발생*
1) configure: error: Package requirements (sqlite3 >= 3.7.7)
해결 : yum install sqlite-devel

2) configure: error: Package requirements (oniguruma) were not met:
해결 : yum install oniguruma-devel

3) Warning (정상적으로 php 컨파일은 됐지만 아래 옵션들이 php 8 부터는 바뀐것으로 보인다.
ㄴ png 는 php 7.4 부터는 기본 gd 포함이라고 한다!
configure: WARNING: unrecognized options: --with-gd, --with-jpeg-dir, --with-freetype-dir, --with-png-dir, --with-xpm-dir, --with-libxml-dir, --enable-zip
변경 된 내용 :
--enable-gd             Include GD support
--with-jpeg             GD: Enable JPEG support (only for bundled libgd)
--with-freetype         GD: Enable FreeType 2 support (only for bundled
--with-xpm              GD: Enable XPM support (only for bundled libgd)
--with-zip              Include Zip read/write support
--without-libxml        Build without LIBXML support / --with-expat            XML: use expat instead of libxml2

4) configure: error: Package requirements (libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0) were not met:
yum remove libzip
yum install cmake3 (3.x 설치)

ln -s /usr/bin/cmake3 /usr/local/bin/cmake
wget -P /root/src --no-check-certificate https://libzip.org/download/libzip-1.8.0.tar.gz
cd /root/src; tar -xvf libzip-1.8.0.tar.gz; cd libzip-1.8.0
cmake3 -DCMAKE_INSTALL_PREFIX=/usr/local/libzip-1.8.0
make -j 4
make install -j 4
export PKG_CONFIG_PATH=/usr/local/libzip-1.8.0/lib64/pkgconfig 진행후 다시 configure

5) mysql 옵션 변경
[root@~/src/php-8.1.0]# ./configure --help | grep mysql
  --with-mysqli[=FILE]    Include MySQLi support. FILE is the path to
                          mysql_config. If no value or mysqlnd is passed as
  --with-mysql-sock[=SOCKPATH]
  --with-pdo-mysql[=DIR]  PDO: MySQL support. DIR is the MySQL base directory.
                          If no value or mysqlnd is passed as DIR, the MySQL
  --enable-mysqlnd        Enable mysqlnd explicitly, will be done implicitly
  --disable-mysqlnd-compression-support
                          mysqlnd
해결 : 기존에는 --with-mysqli=/opt/mysql/bin/mysql_config 로 했고, 변경후는 --with-mysqli
          기존에는 --with-pdo-mysql=/opt/mysql 로 했고, 변경후는 --with-pdo-mysql
          --enable-mysqlnd 추가
=============================================

make -j `grep processor /proc/cpuinfo | wc -l`; make install

cp -a php.ini-production /opt/php/lib/php.ini

perl -i -pe "s/memory_limit = 8M/memory_limit = 128M/g" /opt/php/lib/php.ini
perl -i -pe "s/upload_max_filesize = 2M/upload_max_filesize = 20M/g" /opt/php/lib/php.ini
perl -i -pe "s/allow_url_fopen = On/allow_url_fopen = Off/g" /opt/php/lib/php.ini
perl -i -pe "s/post_max_size = 8M/post_max_size = 20M/g" /opt/php/lib/php.ini
perl -i -pe "s/short_open_tag = Off/short_open_tag = On/g" /opt/php/lib/php.ini
perl -i -pe "s/allow_url_fopen = On/allow_url_fopen = Off/g" /opt/php/lib/php.ini
perl -i -pe "s/;date.timezone =/date.timezone = Asia\/Seoul/g" /opt/php/lib/php.ini
perl -i -pe "s/upload_max_filesize = 2M/upload_max_filesize = 20M/g" /opt/php/lib/php.ini
perl -i -pe "s/post_max_size = 8M/post_max_size = 20M/g" /opt/php/lib/php.ini
perl -i -pe "s/max_file_uploads = 20/max_file_uploads = 30/g" /opt/php/lib/php.ini

[Zend opache 적용]
mv /root/src/php-8.1.0/modules/opcache.so /opt/php/lib/php/extensions/

vi /opt/php/lib/php.ini
아래 내용 추가
[Zend]
zend_extension=/opt/php/lib/php/extensions/opcache.so
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
;opcache.revalidate_freq=60
opcache.fast_shutdown=1


[root@~]# php -v
PHP 8.1.0 (cli) (built: Dec 14 2021 14:46:27) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.0, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.0, Copyright (c), by Zend Technologies

php8 은 apache httpd.conf 내 적용되는 모듈은 다음과 같다.
LoadModule php_module         modules/libphp.so

'On-premise > php' 카테고리의 다른 글

php oci8 모듈 설치 (소스컴파일)  (0) 2023.11.07
PHP 5.3.3 소스 설치 (MySQL 5.1)  (0) 2023.11.07
php 7.4 재컴파일(재설치)  (0) 2023.11.07
라이믹스(Rhymix 설치)  (0) 2023.11.07
php 7.4 옵션 변경  (0) 2023.11.07

+ Recent posts