anúncios

segunda-feira, 9 de janeiro de 2017

Configurando servidor web Nginx integrado com PHP

Em servidores web, o mais comum ser utilizado é o Apache, porém existe outro servidor web bastante conhecido e com excelente desempenho de performance. O Nginx.

O presente howto explicará os procedimentos de instalação e configuração do servidor web Nginx integrado com PHP na distro Debian 8 e CentOS 7.

No Debian 8
# apt-get update
# apt-get install nginx php5-fpm php5 php5-mysql php5-mcrypt php5-gd php5-mysql mysql-server


No CentOS 7
# yum install epel-release
# yum update
# yum -y install nginx php php-gd php-mysql mysql-server


Startar o serviço Nginx
# service nginx start

Habilitar no boot
# systemctl enable nginx

O diretório root padrão do Nginx é /usr/share/nginx/www , mas vou alterar para deixar o mesmo diretório root do Apache, no caso /var/www/html

# mkdir -p /var/www/html

Ajustes de configuração para Nginx # vim /etc/php5/fpm/php.ini
Procure a linha cgi.fix_pathinfo=1 e troque 1 por 0
cgi.fix_pathinfo=0
# mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.orig

Se quiser ativar o SSL no Ngnix, precisará gerar o certificado auto-assinado e a chave.
Segue os procedimentos:
Criar certificados SSL auto-assinados
No Debian
# apt-get install openssl ca-certificates
No CentOS
# yum install openssl
Criar os diretórios para o certificado e a chave
# mkdir /etc/ssl/nginx/certs
# mkdir /etc/ssl/nginx/private


Criando os certificados auto-assinados
#openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/nginx/private/serverwww.key -out /etc/ssl/nginx/certs/serverwww.crt

Ajuste de permissão
chmod 600 /etc/ssl/nginx/private/serverwww.key
chmod 600 /etc/ssl/nginx/certs/serverwww.crt


Backup do arquivo default de configuração
# mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.orig
Criar o arquivo default novo de configuração
# vim /etc/nginx/sites-available/default
server {
  listen 80;
  listen 443 ssl;
  ssl_certificate /etc/ssl/nginx/certs/serverwww.crt;
  ssl_certificate_key /etc/ssl/nginx/private/serverwww.key;

  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 5m;

  ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 
EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4
EECDH EDH+aRSA RC4 !EXPORT !aNULL !eNULL !LOW !3DES
!MD5 !EXP !PSK !SRP !DSS"; ssl_prefer_server_ciphers on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #root /usr/share/nginx/www; root /var/www/html; index index.php index.html index.htm; server_name www; location / { try_files $uri $uri/ /index.html; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { #root /usr/share/nginx/www; root /var/www/html; } ### Redirects e rewrites # Remove barras no final do endereço rewrite ^/(.*)/$ /$1 permanent; # Redirectiona antigas requisições para wp-contents rewrite ^/wp-content/.*/(.*)$ /$1/images/$2 permanent; ### Locations location ~* \.(js|css)$ { # Configurações para JavaScripts e CSS gzip_static on; # Compressão GZIP ativada expires 1w; # Browser cache de 1 semana } location ~* \.(jpg|jpeg|png|gif|ico)$ { # Configurações para imagens gzip_static on; # Compressão GZIP ativada expires 2w; # Browser cache de 2 semana } # pass the PHP scripts to FastCGI server listening on the php-fpm socket location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Crie um arquivo info.php no diretório root configurado
< ?php
 phpinfo();
 ? >
Reinicie o serviço php5-fpm e Nginx
# /etc/init.d/php5-fpm restart
# /etc/init.d/nginx restart


Acesse no browser: http://IPSERVIDOR/info.php ou https://IPSERVIDOR/info.php
Feito!

quinta-feira, 5 de janeiro de 2017

Configurando OSSN na sua Intranet ou VPS

O que é OSSN?

OSSN é uma rede social desenvolvida em PHP com os mesmos recursos do Facebook. Pode ser usada como rede social na Intranet ou VPS, sendo apenas por funcionários da empresa, tornando uma rede social corporativa.

Depois de conhecer o OSSN, podemos instalar e configurar no seu servidor GNU/Linux Debian 8 na Intranet ou VPS.

1. Instalação dos pré-requisitos do OSSN
1.1 Instalação do Apache, PHP e MySQL
PHP 5.6
# apt-get install apache2 php5 php5-cli mysql-server php5-curl php5-gd php5-mcrypt php5-mysql mysql-server

PHP 7
No Debian 8.x
Adicionar no arquivo /etc/apt/sources.list as linhas abaixo
# echo -e "deb http://packages.dotdeb.org jessie all\n deb-src http://packages.dotdeb.org jessie all" >> /etc/apt/sources.list
Adicionar a chave GPG
# wget https://www.dotdeb.org/dotdeb.gpg
# apt-key add dotdeb.gpg

# apt-get apache2 php7.0 libapache2-mod-php7.0 php7.0-gd php7.0-curl php7.0-mcrypt php7-mysql mysql-server

1.2 Ajuste no PHP
Editar o arquivo php.ini
# vim /etc/php5/apache2/php.ini
Deixe como abaixo
allow_url_fopen = On
file_uploads = On
upload_max_filesize = 32M
ESC +:x (salva e sai do editor Vim)

2. Criação do banco, usuário e permissão de privilégios
# mysql -u root -p
Enter password: < digite a senha de root que foi definida na instalação do MySQL >

Criando o banco ossn
mysql> create database ossndb character set utf8;
Query OK, 1 row affected (0.06 sec)

Criando o usuário para o banco ossn
mysql> create user 'ossn'@'localhost' IDENTIFIED BY 'ossn_senha';
Query OK, 0 rows affected (0.10 sec)

Criando permissão de privilégios no banco ossn para o usuário ossn
mysql> GRANT ALL PRIVILEGES ON ossn.* TO ossn@localhost WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye


2.1 Download e configuração do OSSN
# mkdir /opt/ossn && cd /opt/ossn
# wget -c "https://www.opensource-socialnetwork.org/downloads/ossn-v4.3.1-1480759958.zip" -O ossn.zip
# unzip ossn.zip -d /var/www/html
# mkdir -p /var/www/ossn_data
# chown www-data:www-data -R /var/www/html/ossn/

3. Setup de instalação do OSSN
Acesse no browser http://IPouDOMINIO/ossn
Preenche os dados solicitados correspondente ao banco de dados e por fim os dados na conta de administrador.
PS: Pode ser instalado na raiz ao invés do /ossn

4. Certificado SSL
4.1 Criar certificados SSL auto-assinados
Caso queira acessar com HTTPS é necessário gerar o certificado SSL auto-assinado.
# apt-get install openssl ca-certificates

#openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/ossn.key -out /etc/ssl/certs/ossn.crt

4.1 Ajuste de permissão
# chmod 600 /etc/ssl/private/ossn.key
# chmod 600 /etc/ssl/certs/ossn.crt


5. Criando VirtualHost para OSSN
# cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/ossn.conf
# vim /etc/apache2/sites-available/ossn.conf
Altere as linhas correspondentes ao certificado gerado por openSSL
  # Caminhos para os dados de certificado
  SSLCertificateFile /etc/ssl/certs/ossn.crt
  SSLCertificateKeyFile /etc/ssl/private/ossn.key
ESC +:x (salva e sai do editor Vim)

5.1 Habilitar o VirtualHost
# a2ensite ossn.conf

5.2 Habilita SSL
# a2enmod rewrite ssl

5.3 Reinicia o Apache
# service apache2 restart

Após finalizar, acesse via https://IPouDOMINIO/ossn ou caso instalou diretamente na raíz sem /ossn https://IPouDOMINIO
Crie uma conta da mesma forma como o Facebook, que enviará o link de ativação no e-mail fornecido na criação da conta de perfil.
Acesso de administração do OSSN: https://IPouDOMINIO/ossn/administrator
Use a conta que definiu na última etapa de instalação para a conta de admin com a respectiva senha.
Feito!