Maison développement back-end tutoriel php Comment mettre en place un environnement PHP ? Configuration de l'environnement PHP (explication détaillée)

Comment mettre en place un environnement PHP ? Configuration de l'environnement PHP (explication détaillée)

Oct 18, 2018 pm 03:26 PM

Comment créer un environnement PHP : installez d'abord wget via la commande "yum install wget" ; puis installez Nginx, compilez et dépendez de l'environnement gcc ; puis compilez et installez MySQL, et configurez enfin les variables d'environnement ; et installez PHP via la commande install et démarrez "PHP-FPM".

Comment mettre en place un environnement PHP ? Configuration de l'environnement PHP (explication détaillée)

Comment mettre en place un environnement PHP ? Ce que ce tutoriel vous apporte, c'est comment mettre en place un environnement PHP ? Configuration de l'environnement PHP (explication détaillée)

Suivre les étapes de l'article peut vous aider à créer un environnement LNMP ou un environnement LAMP sur le système CentOS6.*. Ces environnements peuvent être utilisés comme environnement d'exploitation en ligne du serveur.

Recommandations associées :

Quantity《Les 6 meilleurs outils de création d'environnement PHP recommandés en 2019

Quantity《Tutoriel de configuration de l'environnement PHP : installation intégrée de l'environnement de développement PHP et didacticiel vidéo d'installation indépendant

Quantity "Tutoriel de création d'environnement php mac : Tutoriel de création et de configuration d'environnement de développement php mac"

En tant que développeurs PHP, nous devons savoir comment créer un environnement de développement PHP. La combinaison actuelle d'environnements de développement PHP est LAMP et LNMP. Cet article explique comment créer un environnement de développement LNMP sur CentOS.

Répertoire :

Un : Préparation

Deux : Installer Nginx

Trois : Installer MySQL

Quatre : Installer PHP

Cinq : /etc/rc.local ne s'exécute pas lorsque CentOS7 est commencé

1 : Préparation

Installer wget

wget Il s'agit d'un outil gratuit qui télécharge automatiquement des fichiers depuis Internet. Il prend en charge le téléchargement via les trois protocoles TCP/IP les plus courants : HTTP, HTTPS et FTP, et peut utiliser un proxy HTTP.

sudo yum install wget
Copier après la connexion

2. Installez net-tools

Si vous ne pouvez pas utiliser la commande ifconfig lors de l'installation minimale de CentOS7, vous devez installer net-tools, si vous l'êtes. l'installation de la version CentOS6 n'a pas besoin d'être installée

sudo yum install net-tools
Copier après la connexion

3. Mettez à jour la source yum

yum -y update
Copier après la connexion

4. Installez vim

sudo yum install vim
Copier après la connexion

5. Configurer le numéro de ligne d'affichage

vim ~/.vimrc
set nu #输入 set nu 后退出保存
Copier après la connexion

Deux : Installer Nginx

1. Dépendances d'installation

(1) L'installation nginx doit d'abord compiler le code source téléchargé sur le site officiel. La compilation dépend de l'environnement gcc. , vous devez installer gcc-c++.

(2) PCRE est une bibliothèque Perl, "bibliothèque d'expressions régulières compatible Perl" en chinois. Le but de l'installation de Nginx est de permettre à Nginx de prendre en charge le module de réécriture avec la fonction de réécriture d'URI. Si la bibliothèque pcre n'est pas installée, Nginx ne peut pas utiliser la fonction de module de réécriture de Nginx.

(3) zlib La bibliothèque fournit de nombreuses méthodes de compression et de décompression. nginx utilise zlib pour compresser le contenu du package http, la bibliothèque zlib doit donc être installée sur Centos.

(4) OpenSSL est une puissante bibliothèque cryptographique Secure Socket Layer, comprenant les principaux algorithmes cryptographiques, les fonctions de gestion d'encapsulation de clés et de certificats couramment utilisées et les protocoles SSL, et fournit une multitude d'applications pour les tests ou autres. fins. nginx prend non seulement en charge le protocole http, mais prend également en charge https (c'est-à-dire la transmission http via le protocole SSL), la bibliothèque OpenSSL doit donc être installée.

yum -y install gcc gcc-c++ zlib zlib-devel
yum -y install pcre pcre-devel openssl openssl-devel
Copier après la connexion

Remarque : la version pcre installée par la méthode d'installation yum est relativement faible, mais elle n'affecte fondamentalement pas l'utilisation de

Vérifiez le package de dépendances de base

ci-dessus Une fois l'installation des dépendances terminée, vous pouvez utiliser la commande suivante pour vérifier si chaque installation de dépendance est réussie

rpm -qa pcre pcre-devel
rpm -qa zlib zlib-devel
rpm -qa openssl openssl-devel
rpm -qa pcre pcre-devel
Copier après la connexion

2. Compilez et installez Nginx

# 这里我们把安装包都放到了/usr/src目录下,便于统一管理
cd /usr/src  #切换到软件包目录
wget https://nginx.org/download/nginx-1.14.1.tar.gz   #下载nginx源码包
useradd nginx -s /sbin/nologin -M   #创建nginx用户用于管理nginx程序
tar zxvf nginx-1.14.1.tar.gz  #解压nginx源码包

cd nginx-1.14.1

#预编译
./configure \
--user=nginx \
--group=nginx \
--prefix=/usr/local/nginx-1.14.1 \
--with-http_v2_module \
--with-http_ssl_module \
--with-http_stub_status_module

make && make install #编译 和 安装

cd /usr/local
ln -s nginx-1.14.1 nginx  #创建nginx的软链接
Copier après la connexion

Instructions d'installation

--prefix=PATH    #设置安装路劲
--user=USER      #进程用户权限
--group=GROUP    #进程用户组权限
--with-http_stub_status_module   #激活状态信息
--with-http_ssl_module  #激活ssl功能
Copier après la connexion

3. Configurer les variables d'environnement

vim /etc/profile
export PATH=/usr/local/nginx/sbin:$PATH
source /etc/profile
Copier après la connexion

4. démarrage automatique au démarrage

vim /etc/rc.local
# Nginx开机自启
/usr/local/nginx/sbin/nginx &
Copier après la connexion

5. Commandes communes de Nginx

/usr/local/nginx/sbin/nginx -t # 检查Nginx配置语法是否有误
/usr/local/nginx/sbin/nginx  #启动
/usr/local/nginx/sbin/nginx -s stop  #立即停止
/usr/local/nginx/sbin/nginx -s quit  #平滑停止
/usr/local/nginx/sbin/nginx -s reload #重载配置
/usr/local/nginx/sbin/nginx -s reopen #重开日志
Copier après la connexion

Vérification du démarrage du service

Vous pouvez utiliser cette commande pour vérifier qui occupe le port 80

lsof -i :80
Copier après la connexion

Si la commande ne peut pas être reconnue, vous devez installerlsof

sudo yum install lsof
Copier après la connexion

6 . Désactivez le pare-feu

CentOS6:
service iptables stop   临时关闭
chkconfig --level 2345 iptables off 永久关闭

CentOS7:
systemctl stop firewalld.service  #令关闭防火墙
systemctl disable firewalld.service  #关闭防火墙开机自启动
通过浏览器输入IP测试是否成功
Copier après la connexion

Trois : Installer MySQL

1. Installer les dépendances

(1) cmake est l'outil de compilation de la nouvelle version de MySQL, vous devez installer

sudo yum install gcc gcc-c++ cmake ncurses-devel
Copier après la connexion

Si votre système est CentOS7, vous devez également installer les dépendances suivantes

sudo yum install perl perl-devel autoconf
Copier après la connexion

2. Compilez et installez MySQL

useradd -s /sbin/nologin -M mysql  # 添加MySQL用户
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.42.tar.gz

tar zxvf mysql-5.6.42.tar.gz

cd mysql-5.6.42

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.42 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql-5.6.42/tmp/mysql.sock \
-DMYSQL_DATADIR=/usr/local/mysql-5.6.42/data \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_INNODB_MEMCACHED=1 \
-DWITH_DEBUG=OFF \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DENABLED_PROFILING=ON \
-DMYSQL_MAINTAINER_MODE=OFF \
-DMYSQL_TCP_PORT=3306

make && make install
Copier après la connexion

3 .Configuration MySQL

cd /usr/local/mysql-5.6.42
chown mysql.mysql /usr/local/mysql-5.6.42/data
mkdir tmp
chown mysql.mysql /usr/local/mysql-5.6.42/tmp
rm -f /etc/my.cnf
cp support-files/my-default.cnf /etc/my.cnf
scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql
Copier après la connexion

4. Rejoignez le processus démon

cd /usr/local
ln -s mysql-5.6.42 mysql
cd /usr/local/mysql
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
Copier après la connexion

5. Configurez les variables d'environnement

vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
source /etc/profile
Copier après la connexion

6. Démarrez MySQL

service mysqld start
mysql -u root -p #第一次登陆不需要密码,回车即可
set password for root@localhost = password('root');  #修改密码
Copier après la connexion

四:安装PHP

1.安装依赖

sudo yum install gcc gcc-c++ zip unzip libxml2 libxml2-devel curl-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel  zlib zlib-devel glibc glibc-devel glib2 glib2-devel gd-devel bzip2 bzip2-devel
Copier après la connexion

2.编译安装PHP

cd /usr/src
wget http://hk1.php.net/get/php-7.2.12.tar.gz/from/this/mirror -O php-7.2.12.tar.gz

tar zxvf php-7.2.12.tar.gz
cd  php-7.2.12
./configure \
--prefix=/usr/local/php-7.2.12 \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-zlib \
--enable-mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-mysql-sock=/usr/local/mysql/tmp/mysql.sock \
--with-gd \
--with-png-dir \
--with-jpeg-dir \
--with-freetype-dir \
--with-iconv-dir \
--with-openssl \
--with-curl \
--enable-bcmath \
--enable-mbstring \
--enable-static \
--enable-zip \
--enable-sockets \
--enable-xml


make && make install
Copier après la connexion

3.PHP配置

cd /usr/local

ln -s php-7.2.12 php
cp  /usr/src/php-7.2.12/php.ini-development /usr/local/php-7.2.12/lib/php.ini
 
vim /usr/local/php/lib/php.ini
date.timezone = PRC  # 修改时区(大约在932行)

expose_php = Off  # 避免PHP信息暴露在http头中(大约369行)
 
display_errors = Off# 生产环境设置为off,开发环境就设置为On,便于调试
 说明:设置了dispaly_errors为off后,需要在php-fpm.conf中开启错误日志记录路径error_log = log/php-fpm.log
 
cd php 
cp etc/php-fpm.conf.default etc/php-fpm.conf

cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf

# 管理PHP-FPM
vim /usr/local/php/etc/php-fpm.conf
pid = run/php-fpm.pid
error_log = log/php-fpm.log #24行这个在php.ini设置display_errors = Off时启用

向进程发送信号,就可以完成进程管理
停止: kill -INT `cat /usr/local/php/var/run/php-fpm.pid`
平滑停止: kill -QUIT `cat /usr/local/php/var/run/php-fpm.pid`
重启:kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
重新打开日志:kill -USR1 `cat /usr/local/php/var/run/php-fpm.pid`

如果在编译PHP时指定了--with-mysql=mysqlnd和--with-pdo-mysql=mysqlnd的参数,那么在生产中可能会遇到socket连接问题,解决办法是在php.ini里加入命令: pdo_mysql.default_socket=/usr/local/mysql/tmp/mysql.sock

最好是在编译PHP的时候,指定mysql.socket的位置:
--with-mysql-sock=/usr/local/mysql/tmp/mysql.sock
Copier après la connexion

4.配置环境变量

vim /etc/profile
export PATH=/usr/local/php/bin:$PATH
source /etc/profile
Copier après la connexion

5.配置开机自启

vim /etc/rc.local
# PHP-FPM自动启动
/usr/local/php/sbin/php-fpm &
Copier après la connexion

6.启动PHP-FPM

cd /usr/local/php
sbin/php-fpm # 启动PHP-FPM
ps -e | grep php-fpm
Copier après la connexion

7.配置Nginx和PHP关联

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    use epoll;
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    
    #隐藏Nginx软件版本号
    server_tokens off;
    
    #激活tcp_nodelay功能,提高I/O性能
    tcp_nodelay on;

    # 设置读取客户端请求头数据的超时时间。此处的数值为15,其单位是秒,为经验参考值
    client_header_timeout 15;

    # 设置读取客户端请求体的超时时间
    client_body_timeout 15;

    # 指定响应客户端的超时时间
    send_timeout 25;

    # 上传文件大小限制
    client_max_body_size 8m;
    
    #压缩配置
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_comp_level 2;
    gzip_types text/css text/xml text/plain application/javascript;
    gzip_vary on;
    #include extra/gzip.config;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    server {
         listen       80;
         server_name  www.nginx.com;
         root html/blog/public;
         #access_log  logs/host.access.log  main;

         location / {
            index  index.php index.html index.htm;
            if (!-e $request_filename) {
                rewrite ^/(.*)$ /index.php/$1 last;
            }
         }

         #error_page  404              /404.html;

         # redirect server error pages to the static page /50x.html
         #
         error_page   500 502 503 504  /50x.html;
         location = /50x.html {
            root   html;
         }

         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
         #
         location ~ \.php {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info ^(.+\.php)(.*)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
         }
    }
}
Copier après la connexion

五:CentOS7开机/etc/rc.local不执行问题

CentOS7中,默认开机不再执行/etc/rc.local,查询/etc/rc.local里的内容可以发现如下描述:

#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In constrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
Copier après la connexion

翻译过来就是

#这个文件是为了兼容性的问题而添加的。
#
#强烈建议创建自己的systemd服务或udev规则来在开机时运行脚本而不是使用这个文件。
#
#与以前的版本引导时的并行执行相比较,这个脚本将不会在其他所有的服务后执行。
#
#请记住,你必须执行“chmod +x /etc/rc.d/rc.local”来确保确保这个脚本在引导时执行。
Copier après la connexion

所以要解决开机不执行问题,只需要执行下面的命令然后重启服务器。

chmod +x /etc/rc.d/rc.local
Copier après la connexion

完成上面这些步骤,一个LNMP环境就配好啦,重启服务器即可。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
4 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Travailler avec les données de session Flash dans Laravel Travailler avec les données de session Flash dans Laravel Mar 12, 2025 pm 05:08 PM

Laravel simplifie la gestion des données de session temporaires à l'aide de ses méthodes de flash intuitives. Ceci est parfait pour afficher de brefs messages, alertes ou notifications dans votre application. Les données ne persistent que pour la demande ultérieure par défaut: $ demande-

Construisez une application React avec un Laravel Back End: Partie 2, React Construisez une application React avec un Laravel Back End: Partie 2, React Mar 04, 2025 am 09:33 AM

Il s'agit de la deuxième et dernière partie de la série sur la construction d'une application React avec un back-end Laravel. Dans la première partie de la série, nous avons créé une API RESTful utilisant Laravel pour une application de liste de base sur le produit. Dans ce tutoriel, nous serons Dev

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Mar 14, 2025 am 11:42 AM

L'extension PHP Client URL (CURL) est un outil puissant pour les développeurs, permettant une interaction transparente avec des serveurs distants et des API REST. En tirant parti de Libcurl, une bibliothèque de transfert de fichiers multi-protocol très respectée, PHP Curl facilite Efficient Execu

Misque de réponse HTTP simplifié dans les tests Laravel Misque de réponse HTTP simplifié dans les tests Laravel Mar 12, 2025 pm 05:09 PM

Laravel fournit une syntaxe de simulation de réponse HTTP concise, simplifiant les tests d'interaction HTTP. Cette approche réduit considérablement la redondance du code tout en rendant votre simulation de test plus intuitive. L'implémentation de base fournit une variété de raccourcis de type de réponse: Utiliser illuminate \ support \ faades \ http; Http :: faux ([[ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

12 meilleurs scripts de chat PHP sur Codecanyon 12 meilleurs scripts de chat PHP sur Codecanyon Mar 13, 2025 pm 12:08 PM

Voulez-vous fournir des solutions instantanées en temps réel aux problèmes les plus pressants de vos clients? Le chat en direct vous permet d'avoir des conversations en temps réel avec les clients et de résoudre leurs problèmes instantanément. Il vous permet de fournir un service plus rapide à votre personnalité

Notifications à Laravel Notifications à Laravel Mar 04, 2025 am 09:22 AM

Dans cet article, nous allons explorer le système de notification dans le framework Web Laravel. Le système de notification de Laravel vous permet d'envoyer des notifications aux utilisateurs sur différents canaux. Aujourd'hui, nous discuterons de la façon dont vous pouvez envoyer des notifications OV

Expliquez le concept de liaison statique tardive en PHP. Expliquez le concept de liaison statique tardive en PHP. Mar 21, 2025 pm 01:33 PM

L'article traite de la liaison statique tardive (LSB) dans PHP, introduite dans PHP 5.3, permettant une résolution d'exécution de la méthode statique nécessite un héritage plus flexible. Problème main: LSB vs polymorphisme traditionnel; Applications pratiques de LSB et perfo potentiel

PHP Logging: meilleures pratiques pour l'analyse du journal PHP PHP Logging: meilleures pratiques pour l'analyse du journal PHP Mar 10, 2025 pm 02:32 PM

La journalisation PHP est essentielle pour surveiller et déboguer les applications Web, ainsi que pour capturer des événements critiques, des erreurs et un comportement d'exécution. Il fournit des informations précieuses sur les performances du système, aide à identifier les problèmes et prend en charge le dépannage plus rapide

See all articles