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.
[[email protected]]# 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!
[[email protected]]#
Vamos configurar o serviço httpd .
[[email protected]]# 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
[[email protected] 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.
[[email protected]]# systemctl start mariadb
[[email protected]]# 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.
[[email protected]#] 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
[[email protected] 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
[[email protected]#] 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
[[email protected]]# 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 /
[[email protected]]# 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>
[[email protected]]#
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.
[[email protected]]# 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.