Configure o PHP no CentOS Linux

PHP é uma das linguagens da web mais prolíficas em uso hoje. Instalar um LAMP Stack no CentOS é algo que todo administrador de sistema precisará realizar, provavelmente mais cedo ou mais tarde.

Uma pilha LAMP tradicional consiste em (L) inux (A) pache (M) ySQL (P) HP.

Existem três componentes principais para uma pilha LAMP no CentOS -

  • Servidor web
  • Plataforma / linguagem de desenvolvimento da Web
  • Servidor de banco de dados

Note- O termo LAMP Stack também pode incluir as seguintes tecnologias: PostgreSQL, MariaDB, Perl, Python, Ruby, NGINX Webserver.

Para este tutorial, ficaremos com a pilha LAMP tradicional do CentOS GNU Linux: servidor da web Apache, servidor de banco de dados MySQL e PHP.

Na verdade, usaremos o MariaDB. Os arquivos de configuração do MySQL, bancos de dados e tabelas são transparentes para MariaDB. MariaDB agora está incluído no repositório CentOS padrão em vez do MySQL. Isso se deve às limitações de licenciamento e conformidade de código aberto, uma vez que a Oracle assumiu o desenvolvimento do MySQL.

A primeira coisa que precisamos fazer é instalar o Apache.

[root@CentOS]# yum install httpd
Loaded plugins: fastestmirror, langpacks
base
| 3.6 kB  00:00:00
extras
| 3.4 kB  00:00:00
updates
| 3.4 kB  00:00:00
extras/7/x86_64/primary_d
| 121 kB  00:00:00
Loading mirror speeds from cached hostfile
* base: mirror.sigmanet.com
* extras: linux.mirrors.es.net
* updates: mirror.eboundhost.com
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-45.el7.centos will be installed
--> Processing Dependency: httpd-tools = 2.4.6-45.el7.centos for package:
httpd-2.4.6-45.el7.centos.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.4.645.el7.centos.x86_64
--> Running transaction check
---> Package httpd-tools.x86_64 0:2.4.6-45.el7.centos will be installed
---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
--> Finished Dependency Resolution
Installed:
httpd.x86_64 0:2.4.6-45.el7.centos

Dependency Installed:
httpd-tools.x86_64 0:2.4.6-45.el7.centos
mailcap.noarch 0:2.1.41-2.el7

Complete!
[root@CentOS]#

Vamos configurar o serviço httpd .

[root@CentOS]# systemctl start httpd && systemctl enable httpd

Agora, vamos ter certeza de que o servidor web está acessível através do firewalld.

bash-3.2# nmap -sS -p 1-1024 -T 5  -sV 10.211.55.1 
Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-28 02:00 MST 
Nmap scan report for centos.shared (10.211.55.1) 
Host is up (0.00054s latency). 
Not shown: 1022 filtered ports 
PORT   STATE SERVICE VERSION 
22/tcp open  ssh     OpenSSH 6.6.1 (protocol 2.0) 
80/tcp open  http    Apache httpd 2.4.6 ((CentOS))

Service detection performed. Please report any incorrect results at 
https://nmap.org/submit/ . 
Nmap done: 1 IP address (1 host up) scanned in 10.82 seconds bash-3.2#

Como você pode ver pela análise de serviço nmap, o servidor web Apache está ouvindo e respondendo às solicitações no host CentOS.

Instale o servidor de banco de dados MySQL

[root@CentOS rdc]# yum install mariadb-server.x86_64 && yum install mariadb-
devel.x86_64 && mariadb.x86_64 && mariadb-libs.x86_64

Estamos instalando os seguintes pacotes de repositório para MariaDB -

mariadb-server.x86_64

O principal pacote daemon do Servidor MariaDB.

mariadb-devel.x86_64

Os arquivos precisam ser compilados a partir da fonte com compatibilidade com MySQL / MariaDB.

mariadb.x86_64

Utilitários de cliente MariaDB para administrar o Servidor MariaDB a partir da linha de comando.

mariadb-libs.x86_64

Bibliotecas comuns para MariaDB que podem ser necessárias para outros aplicativos compilados com suporte a MySQL / MariaDB.

Agora, vamos iniciar e habilitar o serviço MariaDB.

[root@CentOS]# systemctl start mariadb 
[root@CentOS]# systemctl enable  mariadb

Note- Ao contrário do Apache, não permitiremos conexões com MariaDB por meio de nosso firewall baseado em host (firewalld). Ao usar um servidor de banco de dados, é considerada a melhor prática de segurança permitir apenas conexões de soquete locais, a menos que o acesso de soquete remoto seja especificamente necessário.

Vamos ter certeza de que o servidor MariaDB está aceitando conexões.

[root@CentOS#] netstat -lnt 
Active Internet connections (only servers) 
Proto     Recv-Q     Send-Q     Local Address        Foreign Address      State       
tcp            0          0     0.0.0.0:3306         0.0.0.0:*            LISTEN      
tcp            0          0     0.0.0.0:111          0.0.0.0:*            LISTEN      
tcp            0          0     192.168.122.1:53     0.0.0.0:*            LISTEN      
tcp            0          0     0.0.0.0:22           0.0.0.0:*            LISTEN      
tcp            0          0     127.0.0.1:631        0.0.0.0:*            LISTEN      
tcp            0          0     127.0.0.1:25         0.0.0.0:*            LISTEN 
     
[root@CentOS rdc]#

Como podemos ver, MariaDB está escutando na porta 3306 tcp. Deixaremos nosso firewall baseado em host (firewalld) bloqueando as conexões de entrada para a porta 3306.

Instalar e configurar o PHP

[root@CentOS#]  yum install php.x86_64 && php-common.x86_64 && php-mysql.x86_64 
&& php-mysqlnd.x86_64 && php-pdo.x86_64 && php-soap.x86_64 && php-xml.x86_64

Eu recomendo instalar os seguintes pacotes php para compatibilidade comum -

  • php-common.x86_64
  • php-mysql.x86_64
  • php-mysqlnd.x86_64
  • php-pdo.x86_64
  • php-soap.x86_64
  • php-xml.x86_64
[root@CentOS]# yum install -y php-common.x86_64 php-mysql.x86_64 php-
mysqlnd.x86_64 php-pdo.x86_64 php-soap.x86_64 php-xml.x86_64

Este é nosso arquivo php simples localizado na webroot Apache de / var / www / html /

[root@CentOS]# cat /var/www/html/index.php  
<html> 
   <head> 
      <title>PHP Test Page</title> 
   </head>
   
   <body> 
      PHP Install 
      <?php 
         echo "We are now running PHP on GNU Centos Linux!<br />" 
      ?> 
   </body> 
</html>

[root@CentOS]#

Vamos mudar o grupo proprietário de nossa página para o usuário do sistema sob o qual nosso daemon http está sendo executado.

[root@CentOS]# chgrp httpd /var/www/html/index.php && chmod g+rx /var/www/html/index.php
---

Quando solicitado manualmente via ncat.

bash-3.2# ncat 10.211.55.1 80 
   GET / index.php 
   HTTP/1.1 200 OK 
   Date: Sat, 28 Jan 2017 12:06:02 GMT 
   Server: Apache/2.4.6 (CentOS) PHP/5.4.16 
   X-Powered-By: PHP/5.4.16 
   Content-Length: 137 
   Connection: close 
   Content-Type: text/html; charset=UTF-8
   
<html> 
   <head> 
      <title>PHP Test Page</title> 
   </head>
   
   <body> 
      PHP Install 
      We are now running PHP on GNU Centos Linux!<br />
   </body> 
</html>

bash-3.2#

PHP e LAMP são tecnologias de programação web muito populares. A instalação e configuração do LAMP certamente fará parte da sua lista de necessidades como administrador do CentOS. Os pacotes CentOS fáceis de usar exigem muito trabalho de compilar Apache, MySQL e PHP a partir do código-fonte.