Configuração do Ambiente LNMP em Linux

Instalação do Nginx a partir do Código Fonte

Pré-requisitos

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

Dependências Necessárias

yum -y install pcre-devel zlib-devel gcc gcc-c++ make

Criação de Usuário Dedicado

useradd -M -s /sbin/nologin serv_nginx

Proceso de Compilação

cd /opt
tar zxvf nginx-1.12.0.tar.gz
cd nginx-1.12.0/
./configure \
  --prefix=/usr/local/nginx \
  --user=serv_nginx \
  --group=serv_nginx \
  --with-http_stub_status_module
make && make install

Configuração do Serviço

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
vim /etc/systemd/system/nginx.service

[Unit]
Description=Servidor Nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
[Install]
WantedBy=multi-user.target

systemctl enable --now nginx.service

Instalação do MySQL a partir do Código Fonte

Dependências Essenciais

yum -y install ncurses ncurses-devel bison cmake

Usuário Dedicado

useradd -M -s /sbin/nologin dbuser

Compilação e Instalação

cd /opt
tar zxvf mysql-boost-5.7.20.tar.gz
cd mysql-5.7.20/
cmake \
  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
  -DSYSCONFDIR=/etc \
  -DENABLED_LOCAL_INFILE=ON \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  -DDEFAULT_CHARSET=utf8 \
  -DDEFAULT_COLLATION=utf8_general_ci
make && make install

Configuração e Inicialização

chown -R dbuser:dbuser /usr/local/mysql/
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile
/usr/local/mysql/bin/mysqld --initialize --user=dbuser --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl enable --now mysqld
mysqladmin -u root password 'senhaSegura'

Configuração do Ambiente PHP

Instalação de Dependências

yum -y install gd libjpeg-devel libpng-devel freetype-devel libxml2-devel zlib-devel curl-devel openssl-devel

Compilação do PHP

cd /opt
tar jxvf php-7.1.10.tar.bz2
cd php-7.1.10
./configure \
  --prefix=/usr/local/php \
  --with-mysqli \
  --with-openssl \
  --enable-fpm \
  --enable-mbstring
make && make install

Integração com Nginx

vim /usr/local/nginx/conf/nginx.conf

location ~ \.php$ {
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
}

systemctl restart nginx

Implantação do Discuz! Forum

unzip Discuz_X3.4_SC_UTF8.zip -d /opt/discuz
cp -r /opt/discuz/upload/ /usr/local/nginx/html/forum/
chown -R serv_nginx:serv_nginx /usr/local/nginx/html/forum/
chmod -R 770 /usr/local/nginx/html/forum/config/ /usr/local/nginx/html/forum/data/

Otimização de Parâmetros do PHP-FPM

vim /usr/local/php/etc/php-fpm.d/www.conf

pm = dynamic
pm.max_children = 25
pm.start_servers = 8
pm.min_spare_servers = 5
pm.max_spare_servers = 15

systemctl restart php-fpm

Tags: LNMP nginx MySQL PHP Discuz

Publicado em 7-4 21:20