CentOS 8.1下搭建LEMP(Linux+Nginx+MySQL+PHP)环境(教程详解)

CentOS8.1下搭建LEMP环境教程

1. 安装nginx

  • 安装epel-release和nginx
    sudo dnf install epel-release
    sudo dnf install nginx

  • 启动nginx
    sudo systemctl enable nginx.service
    sudo systemctl start nginx.service

  • 防火墙配置
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --reload

  • 查看nginx版本号
    nginx -v

2. 安装MySQL

  • 配置MySQL源
    sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm

  • 安装MySQL
    sudo dnf install mysql-community-server

  • 启动并设置MySQL开机启动
    sudo systemctl enable mysqld
    sudo systemctl start mysqld

  • 查看MySQL版本号
    mysql -V

3. 安装PHP

  • 安装PHP
    sudo dnf install php php-fpm php-common php-xmlrpc php-soap php-gd php-mbstring php-mysqlnd php-pdo php-json

  • 配置php.ini
    sudo vi /etc/php.ini
    将date.timezone设置成"Asia/Shanghai"、cgi.fix_pathinfo修改为0、upload_max_filesize、post_max_size修改为20M

  • 启动PHP-FPM
    sudo systemctl enable php-fpm.service
    sudo systemctl start php-fpm.service

  • 查看php版本号
    php -v

4. 配置Nginx与PHP-FPM

  • 修改Nginx默认配置
    sudo vi /etc/nginx/nginx.conf
    在http段加入以下内容:
    ```
    server {
    listen 80;
    server_name localhost;
    root /usr/share/nginx/html;

    location / {
        index  index.php index.html index.htm;
    }
    
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
    

    }
    ```

  • 重启Ngnix
    sudo systemctl restart nginx.service

5. 测试

  • /usr/share/nginx/html目录下新建phpinfo.php并输入以下内容
    ```

```

  • 访问http://localhost/phpinfo.php,看是否能够成功显示PHP信息

示例

示例一

假设我们需要部署一个博客网站,我们需要配置nginx虚拟主机,以及安装wordpress,具体步骤如下:

  1. 创建/var/www/blog目录,将wordpress文件解压到该目录下
  2. 配置nginx虚拟主机

sudo vi /etc/nginx/conf.d/blog.conf

输入以下内容
```
server {
listen 80;
server_name blog;

      access_log /var/log/nginx/blog.access.log;
      error_log /var/log/nginx/blog.error.log;

      root   /var/www/blog;

      location / {
          index index.php index.html index.htm;
      }

      location ~ \.php$ {
          try_files $uri =404;
          fastcgi_pass 127.0.0.1:9000;
          fastcgi_index index.php;
          include fastcgi.conf;
      }

      location ~* \.(jpg|jpeg|gif|png|css|js|ico)$ {
          expires max;
          log_not_found off;
      }

}
```

  1. 启动blog虚拟主机
    sudo systemctl reload nginx.service

  2. 创建wordpress配置文件
    sudo cp /var/www/blog/wp-config-sample.php /var/www/blog/wp-config.php

  3. 配置wordpress
    sudo vi /var/www/blog/wp-config.php
    修改以下字段:
    define('DB_NAME', 'wordpress');
    define('DB_USER', 'wordpressuser');
    define('DB_PASSWORD', 'password');
    define('DB_HOST', 'localhost');
    define('DB_CHARSET', 'utf8');
    define('DB_COLLATE', '');

示例二

假设我们需要部署一个在线商城,我们需要安装Magento2,具体步骤如下:

  1. 创建/var/www/magento目录,将Magento2文件解压到该目录下
  2. 配置nginx虚拟主机

sudo vi /etc/nginx/conf.d/magento.conf

输入以下内容
```
server {
listen 80;
server_name magento;

  access_log /var/log/nginx/magento.access.log;
  error_log /var/log/nginx/magento.error.log;

  root   /var/www/magento/pub;

  index  index.php;

  location / {
      try_files $uri $uri/ /index.php?$args;
  }

  location /pub/ {
      location ~ ^/pub/media/(downloadable|customer|import|theme_customization/.*\.xml) {
          deny all;
      }
      alias $MAGE_ROOT/pub/;
      add_header X-Frame-Options "SAMEORIGIN";
  }

  location /static/ {
      # Uncomment the following line in production mode
      # expires max;

      # Remove signature of the static files that is used to overcome the browser cache
      location ~ ^/static/version {
          rewrite ^/static/(version[^/]+/)?(.*)$ /static/$2 last;
      }

      location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
          add_header Cache-Control "public";
          add_header X-Content-Type-Options "nosniff";
          add_header X-Frame-Options "SAMEORIGIN";
          expires +1y;

          if (!-f $request_filename) {
              rewrite ^/static/?(.*)$ /static.php?resource=$1 last;
          }
      }

      location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
          add_header Cache-Control "no-store";
          add_header X-Content-Type-Options "nosniff";
          add_header X-Frame-Options "SAMEORIGIN";
          if (!-f $request_filename) {
             rewrite ^/static/?(.*)$ /static.php?resource=$1 last;
          }
      }

      if (!-f $request_filename) {
          rewrite ^/static/?(.*)$ /static.php?resource=$1 last;
      }

      add_header X-Frame-Options "SAMEORIGIN";
  }

  location /media/ {
      try_files $uri $uri/.
      /get.php?$args;
      location ~ ^/media/theme_customization/.*\.xml {
          deny all;
      }
      add_header X-Frame-Options "SAMEORIGIN";
  }

  location /media/customer/ {
      deny all;
  }

  location /media/downloadable/ {
      deny all;
  }

  location /media/import/ {
      deny all;
  }

  location /setup/ {
      index index.php;

      #add_header X-Frame-Options "SAMEORIGIN";
      #add_header X-XSS-Protection "1; mode=block";

      # Deny everything but index.php
      location ~ ^/setup/index.php$ {
          # Allow internal IPs
          allow 127.0.0.1;
          allow 192.168.0.0/16;
          deny all;

          fastcgi_pass   127.0.0.1:9000;
          include        fastcgi_params;
          fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
          fastcgi_param  PATH_INFO        $fastcgi_path_info;
      }

      # Deny everything but index.php
      location ~ ^/setup/(?!pub/). {
          deny all;
      }

      # Deny everything but index.php
      location ~ ^/setup/pub/ {
          # Allow internal IPs
          allow 127.0.0.1;
          allow 192.168.0.0/16;
          deny all;
      }
  }

  location /update/ {
      index index.php;

      try_files $uri $uri/ /update/index.php?$args;
  }

  location /deploy/ {
      deny all;
      return 404;
  }

  location /var/ {
      deny all;
      return 404;
  }

  location /downloader/ {
      allow 127.0.0.1;
      deny all;
      location ~* ^/downloader/(.*)$ {
          try_files $uri $uri/ /downloader/index.php?$args;
          fastcgi_param HTTPS $fastcgi_https;
          fastcgi_param SCRIPT_NAME /downloader/index.php;
          fastcgi_param SCRIPT_FILENAME /var/www/magento/downloader/index.php;
          include fastcgi_params;
      }
      location /downloader/cache/ {
          allow all;
      }
      location /downloader/pearlib/cache/ {
          allow all;
      }
  }

}
```

  1. 启动magento虚拟主机
    sudo systemctl reload nginx.service

  2. 安装Magento2

  3. 使用浏览器访问http://yourdomain/magento2/setup/
  4. 安装向导指导你安装Magento2

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CentOS 8.1下搭建LEMP(Linux+Nginx+MySQL+PHP)环境(教程详解) - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • centos7.6 安装Tomcat-8.5.39的方法

    下面我就来详细讲解 “centos7.6安装Tomcat-8.5.39的方法”。 步骤一:下载Tomcat-8.5.39压缩包 进入Tomcat-8.5.39的官网(http://tomcat.apache.org/download-80.cgi),找到下载地址:tar.gz(PGP, SHA512),并复制下载链接。 在CentOS终端中使用wget命令下…

    Linux 2023年5月14日
    00
  • Linux下如何查看版本信息的方法步骤

    要查看Linux操作系统的版本信息,有多个方法可以实现。以下是两种最常用的方法: 方法一:使用命令行 在Linux终端中运行以下命令可以查看当前操作系统的版本信息: uname -a 运行该命令后,会输出当前操作系统的详细信息,包括内核版本、主机名称、操作系统版本、处理器架构等等。例如: Linux myserver 4.15.0-135-generic #…

    Linux 2023年5月14日
    00
  • 16、Linux升级内核4.19

    # 获取kernel-ml-4.19.12-1.el7.elrepo.x86_64.rpm地址 http://私有IP/elrepo/kernel/el7/x86_64/RPMS/ # 安装 yum -y localinstall kernel-ml-4.19.12-1.el7.elrepo.x86_64.rpm # 重新生成启动配置 vi /etc/def…

    Linux 2023年4月11日
    00
  • Linux系统下部署项目的设置方法

    下面是详细讲解“Linux系统下部署项目的设置方法”的完整攻略。 总体思路 在Linux系统下部署项目的设置方法,主要分为以下几个步骤: 安装所需软件和依赖 配置环境变量 上传项目代码 配置项目 启动项目 下面来详细讲解每个步骤应该怎么做。 安装所需软件和依赖 首先需要安装所需的软件和依赖,主要包括: Java:如果项目是用Java开发的,需要安装Java运…

    Linux 2023年5月14日
    00
  • CentOS 6/7环境下通过yum安装php7的方法

    下面就为大家详细讲解一下在CentOS6/7环境下通过yum安装php7的方法。 准备工作 在开始安装之前,需要确认一下以下几点: 确认服务器已经联网。 确认系统中已经安装了yum软件包管理工具。 安装php7 首先需要安装 EPEL存储库(Extra Packages for Enterprise Linux),它包含了很多提供额外功能的软件包。可以通过以…

    Linux 2023年5月14日
    00
  • Linux chroot命令

    下面是关于Linux chroot命令的完整攻略。 一、概述 chroot是Linux中的一种操作系统的命令,用于改变当前进程的根目录。它能够为特定的应用程序创建一个与整个系统隔离的虚拟环境,使得应用程序不能访问整个系统的文件和目录,更加安全。 具体来说,chroot命令能够通过切换根目录,限制被执行的进程只能看到自己的文件系统,无法看到和干扰到其他的系统资…

    Linux 2023年3月28日
    00
  • Linux服务器测试网络连通性

    场景:由于服务器是自动化安装,在安装过程中我把APIGATEWAY地址填写错误(它有两个浮动ip在不同的网络平面),最后导致服务一直访问不了外网和内部其他服务,把自己深深的坑了一把。   如何测试网络的连通性 1、curl -I -X GET https://www.baidu.com    如果返回码是200 则该服务器可以正常访问,否则下一步。 此处有个…

    Linux 2023年4月11日
    00
  • Linux Samba服务器超详细安装配置(附问题解决)

    这里我详细讲解一下如何安装和配置Linux Samba服务器,以及如何解决常见问题。 安装和配置Linux Samba服务器 1. 安装Samba 使用以下命令在Linux服务器上安装Samba: sudo apt-get install samba 2. 创建共享目录 使用以下命令创建一个要共享的目录: sudo mkdir /shared_folder …

    Linux 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部