Configurer PHP dans CentOS Linux
PHP est l'un des langages Web les plus prolifiques actuellement utilisés. L'installation d'une pile LAMP sur CentOS est quelque chose que chaque administrateur système devra effectuer, probablement le plus tôt possible.
Une pile LAMP traditionnelle se compose de (L) inux (A) pache (M) ySQL (P) HP.
Il y a trois composants principaux à une pile de LAMP sur CentOS -
- Serveur Web
- Plateforme / langage de développement Web
- Serveur de base de données
Note- Le terme LAMP Stack peut également inclure les technologies suivantes: PostgreSQL, MariaDB, Perl, Python, Ruby, NGINX Webserver.
Pour ce tutoriel, nous nous en tiendrons à la pile LAMP traditionnelle de CentOS GNU Linux: serveur Web Apache, serveur de base de données MySQL et PHP.
Nous utiliserons en fait MariaDB. Les fichiers de configuration, les bases de données et les tables MySQL sont transparents pour MariaDB. MariaDB est maintenant incluse dans le référentiel CentOS standard au lieu de MySQL. Cela est dû aux limites des licences et de la conformité open-source, puisque Oracle a repris le développement de MySQL.
La première chose à faire est d'installer 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]#
Configurons le service httpd .
[root@CentOS]# systemctl start httpd && systemctl enable httpd
Maintenant, assurons-nous que le serveur Web est accessible via 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#
Comme vous pouvez le voir par la sonde de service nmap, le serveur Web Apache écoute et répond aux demandes sur l'hôte CentOS.
Installer le serveur de base de données MySQL
[root@CentOS rdc]# yum install mariadb-server.x86_64 && yum install mariadb-
devel.x86_64 && mariadb.x86_64 && mariadb-libs.x86_64
Nous installons les packages de référentiel suivants pour MariaDB -
mariadb-server.x86_64
Le package principal du démon MariaDB Server.
mariadb-devel.x86_64
Les fichiers doivent être compilés à partir de la source avec la compatibilité MySQL / MariaDB.
mariadb.x86_64
Utilitaires client MariaDB pour administrer MariaDB Server à partir de la ligne de commande.
mariadb-libs.x86_64
Bibliothèques communes pour MariaDB qui pourraient être nécessaires pour d'autres applications compilées avec le support MySQL / MariaDB.
Maintenant, commençons et activons le service MariaDB.
[root@CentOS]# systemctl start mariadb
[root@CentOS]# systemctl enable mariadb
Note- Contrairement à Apache, nous n'activerons pas les connexions à MariaDB via notre pare-feu basé sur l'hôte (firewalld). Lors de l'utilisation d'un serveur de base de données, il est considéré comme la meilleure pratique de sécurité d'autoriser uniquement les connexions de socket locales, sauf si l'accès distant au socket est spécifiquement nécessaire.
Assurons-nous que le serveur MariaDB accepte les connexions.
[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]#
Comme nous pouvons le voir, MariaDB écoute sur le port 3306 tcp. Nous laisserons notre pare-feu basé sur l'hôte (firewalld) bloquant les connexions entrantes au port 3306.
Installer et configurer 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
Je recommanderais d'installer les packages php suivants pour une compatibilité commune -
- 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
Ceci est notre simple fichier php situé dans la racine Web 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]#
Changeons le groupe propriétaire de notre page en l'utilisateur système sous lequel notre démon http s'exécute.
[root@CentOS]# chgrp httpd /var/www/html/index.php && chmod g+rx /var/www/html/index.php
---
Lorsqu'il est demandé manuellement 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 et LAMP sont des technologies de programmation Web très populaires. L'installation et la configuration de LAMP ne manqueront pas de figurer sur votre liste de besoins en tant qu'administrateur CentOS. Les packages CentOS faciles à utiliser ont nécessité beaucoup de travail pour compiler Apache, MySQL et PHP à partir du code source.