Este guia detalha o processo de compilação e instalação do PHP 7 no CentOS 7, abordando dependências, potenciais problemas e configurações essenciais.
Primeiro, é necessário instalar as dependências de compilação:
yum install -y libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel \
libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel \
readline readline-devel libxslt libxslt-devel
Um desafio comum é a instalação dos pacotes libmcrypt e libmcrypt-devel. Estes podem exigir instalação manual. Baixe os pacotes .tar.gz, extraia-os e compile e instale sequancialmente.
Para mhash:
tar -zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make
make install
Para libmcrypt:
tar -zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make
make install
Ao compilar o PHP, você pode encontrar erros relacionados a dependências não localizadas. É crucial especificar os caminhos corretos durante a configuração do PHP. Se libmcrypt foi instalado em /usr/local e mhash em /usr/local/lib, use:
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm \
--with-openssl --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd \
--with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-freetype-dir=/usr \
--with-libxml-dir=/usr --with-bz2 --with-zlib --with-mcrypt --with-mhash \
--enable-soap --enable-ftp --enable-mbstring --enable-gd-native-ttf --enable-pcntl \
--enable-sockets --enable-sysvshm --enable-sysvsem
Após a configuração, compile e instale:
make
make install
Após a instalação, configure o PATH global para incluir o diretório bin do PHP:
echo "export PATH=/usr/local/php/bin:\$PATH" >> /etc/profile
source /etc/profile
Copie um arquivo de confgiuração php.ini de exemplo para o diretório especificado:
cp php.ini-development /usr/local/php/etc/php.ini
Edite o php.ini, ajustando diretivas como date.timezone para Asia/Shanghai. Ao habilitar extensões, remova o ponto e vírgula inicial (;) com cautela, pois isso pode causar erros.
Copie os arquivos de configuração do PHP-FPM (www.conf e php-fpm.conf) para o diretório etc do PHP-FPM.
Para iniciar o PHP-FPM, você pode precisar criar um script de inicialização em /etc/init.d/php-fpm. Se encontrar um erro sobre cannot get pid 'nginx' ao iniciar, certifique-se de que os usuários e grupos especificados em www.conf (user e group) existam no sistema. Se não existirem, crie-os:
useradd nginx
groupadd nginx
Depois, inicie o serviço:
/usr/local/php/sbin/php-fpm
Ou use o script de inicialização, se configurado.