Configurar PHP en CentOS Linux
PHP es uno de los lenguajes web más prolíficos en uso en la actualidad. Instalación de una lámpara de pila en CentOS es algo va a necesitar cada administrador del sistema para llevar a cabo, muy probablemente más pronto que tarde.
Una pila LAMP tradicional consta de (L) inux (A) pache (M) ySQL (P) HP.
Hay tres componentes principales en una pila LAMP en CentOS:
- Servidor web
- Plataforma de desarrollo web / lenguaje
- Servidor de base de datos
Note- El término LAMP Stack también puede incluir las siguientes tecnologías: PostgreSQL, MariaDB, Perl, Python, Ruby, NGINX Webserver.
Para este tutorial, nos quedaremos con la pila LAMP tradicional de CentOS GNU Linux: servidor web Apache, servidor de base de datos MySQL y PHP.
De hecho, usaremos MariaDB. Los archivos de configuración, las bases de datos y las tablas de MySQL son transparentes para MariaDB. MariaDB ahora se incluye en el repositorio estándar de CentOS en lugar de MySQL. Esto se debe a las limitaciones de las licencias y el cumplimiento de código abierto, ya que Oracle se ha hecho cargo del desarrollo de MySQL.
Lo primero que debemos hacer es instalar 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]]#
Configuremos el servicio httpd .
[[email protected]]# systemctl start httpd && systemctl enable httpd
Ahora, asegurémonos de que se pueda acceder al servidor web a través de 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 puede ver en la sonda del servicio nmap, el servidor web Apache está escuchando y respondiendo a las solicitudes en el host CentOS.
Instalar el servidor de base de datos 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 los siguientes paquetes de repositorio para MariaDB:
mariadb-server.x86_64
El paquete principal de demonios del servidor MariaDB.
mariadb-devel.x86_64
Los archivos deben compilarse desde la fuente con compatibilidad MySQL / MariaDB.
mariadb.x86_64
Utilidades del cliente MariaDB para administrar MariaDB Server desde la línea de comandos.
mariadb-libs.x86_64
Bibliotecas comunes para MariaDB que podrían ser necesarias para otras aplicaciones compiladas con soporte MySQL / MariaDB.
Ahora, comencemos y habilitemos el servicio MariaDB.
[[email protected]]# systemctl start mariadb
[[email protected]]# systemctl enable mariadb
Note- A diferencia de Apache, no habilitaremos conexiones a MariaDB a través de nuestro firewall basado en host (firewalld). Cuando se utiliza un servidor de base de datos, se considera una mejor práctica de seguridad permitir solo conexiones de socket locales, a menos que se necesite específicamente el acceso de socket remoto.
Asegurémonos de que MariaDB Server esté aceptando conexiones.
[[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á escuchando en el puerto 3306 tcp. Dejaremos nuestro firewall basado en host (firewalld) bloqueando las conexiones entrantes al puerto 3306.
Instalar y configurar 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
Recomendaría instalar los siguientes paquetes php para una compatibilidad común:
- 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 es nuestro archivo php simple ubicado en la raíz web de 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]]#
Cambiemos el grupo propietario de nuestra página al usuario del sistema bajo el que se ejecuta nuestro demonio http.
[[email protected]]# chgrp httpd /var/www/html/index.php && chmod g+rx /var/www/html/index.php
---
Cuando se solicita manualmente a través de 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 y LAMP son tecnologías de programación web muy populares. La instalación y configuración de LAMP seguramente aparecerá en su lista de necesidades como administrador de CentOS. Los paquetes CentOS fáciles de usar han requerido mucho trabajo para compilar Apache, MySQL y PHP desde el código fuente.