Ubuntu 16.04에서 PHP7 및 Swoole 소스 컴파일 설치 가이드

사전 준비 사항

Ubuntu 16.04 Server에서 안정적인 설치를 위해 다음 사항을 먼저 준비합니다.

고정 IP 설정

네트워크 설정 파일을 수정하여 고정 IP를 구성합니다.

sudo vi /etc/network/interfaces
auto ens33
iface ens33 inet static
address 192.168.8.100
netmask 255.255.255.0
gateway 192.168.8.2
dns-nameservers 218.2.135.1 8.8.8.8

변경 후 네트워크를 재시작합니다.

sudo systemctl restart networking

PHP 7.0.9 소스 다운로드 및 압축 해제

공식 사이트 또는 미러에서 소스코드를 받습니다.

wget https://www.php.net/distributions/php-7.0.9.tar.gz
tar -xzf php-7.0.9.tar.gz
cd php-7.0.9

필수 의존성 패키지 설치

컴파일과 실행에 필요한 라이브러리를 먼저 설치합니다.

sudo apt-get update
sudo apt-get -y install build-essential libxml2-dev openssl libssl-dev make curl \
libcurl4-gnutls-dev libjpeg-dev libpng-dev libmcrypt-dev libreadline-dev \
libexpat1-dev libgeoip-dev libpcre3-dev zlib1g-dev libwebp-dev pkg-config

PHP 컴파일 및 설치

64비트 시스템에 최적화된 configure 옵션을 사용합니다.

./configure --prefix=/usr/local/php --enable-fpm --enable-inline-optimization \
--disable-debug --disable-rpath --enable-shared --enable-opcache \
--with-mysqli --with-pdo-mysql --with-gettext --enable-mbstring \
--with-iconv --with-mcrypt --with-mhash --with-openssl --enable-bcmath \
--enable-soap --with-libxml-dir --enable-pcntl --enable-shmop \
--enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets \
--with-curl --with-zlib --enable-zip --enable-bz2 --with-readline \
--without-sqlite3 --without-pdo-sqlite --with-pear \
--with-libdir=/lib/x86_64-linux-gnu \
--with-gd --with-jpeg-dir=/usr/lib --enable-gd-native-ttf --enable-xml

컴파일 및 설치를 진행합니다.

make -j $(nproc) && sudo make install

PHP-FPM 설정

기본 설정 파일을 복사하고 사용자 권한을 설정합니다.

sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
sudo cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

사용자와 그룹을 추가합니다.

sudo groupadd www
sudo useradd -g www www

/usr/local/php/etc/php-fpm.d/www.conf 파일에서 다음 줄을 찾아 수정합니다.

user = www
group = www

PHP 실행 확인 및 글로벌 설정

설치된 PHP 버전을 확인합니다.

/usr/local/php/bin/php -v

환경 변수에 PHP 경로를 추가합니다.

echo 'export PATH=$PATH:/usr/local/php/bin' >> ~/.bashrc
echo 'export PATH=$PATH:/usr/local/php/sbin' >> ~/.bashrc
source ~/.bashrc

PHP-FPM을 시작합니다.

sudo /usr/local/php/sbin/php-fpm

서비스로 등록하려면 systemd 유닛 파일을 생성합니다.

Swoole 확장 설치

추가 라이브러리 설치

HTTP/2 지원을 위한 nghttp2 라이브러리를 설치합니다.

wget https://github.com/nghttp2/nghttp2/releases/download/v1.30.0/nghttp2-1.30.0.tar.bz2
tar -jxf nghttp2-1.30.0.tar.bz2
cd nghttp2-1.30.0
./configure
make -j $(nproc) && sudo make install

비동기 Redis 지원을 위한 hiredis 라이브러리를 설치합니다.

wget https://github.com/redis/hiredis/archive/v0.13.3.tar.gz
tar -xzf v0.13.3.tar.gz
cd hiredis-0.13.3
make -j $(nproc) && sudo make install

hiredis 라이브러리 경로를 설정합니다.

sudo ldconfig /usr/local/lib

Swoole 설치

wget https://pecl.php.net/get/swoole-4.1.2.tgz
tar -xzf swoole-4.1.2.tgz
cd swoole-4.1.2

phpize를 실행합니다. (없는 경우 sudo apt-get install php-dev로 설치)

phpize

컴파일 설정을 진행합니다.

./configure --enable-coroutine --enable-openssl --enable-http2 \
--enable-async-redis --enable-sockets --enable-mysqlnd
make -j $(nproc) && sudo make install

PHP 설정 파일(php.ini)에 확장을 추가합니다.

sudo sh -c 'echo "extension=swoole.so" >> /usr/local/php/etc/php.ini'

Composer 설치 및 Swoft 프레임워크 적용

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Swoft 프로젝트를 생성합니다.

composer create-project swoft/swoft swoft
cd swoft
composer update

태그: PHP7 Swoole Ubuntu16.04 소스컴파일 PHP-FPM

6월 16일 19:58에 게시됨