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日

相关文章

  • Linux用户组

    1、介绍   类似于角色,系统可以对有共性的多个用户进行统一的管理 2、增加组   groupadd  组名     3、删除组   groupdel  组名     4、增加用户时直接为用户指定组   useradd  -g  用户组   用户名     5、修改用户组   usermod  -g  用户组  用户名    6、/etc/passwd 文件…

    Linux 2023年4月12日
    00
  • VMware9安装Ubuntu 12.10教程图文详细

    VMware9安装Ubuntu 12.10教程图文详细 本文将向你介绍如何在VMware9中安装Ubuntu 12.10,并提供详细的步骤和示例说明。 准备工作 在开始安装Ubuntu之前,我们需要做一些准备工作: 下载并安装VMware9。你可以从VMware官网下载试用版或购买完整版。 下载Ubuntu 12.10 ISO镜像文件。你可以从Ubuntu官…

    Linux 2023年5月30日
    00
  • VMware ESXi安装使用记录(附下载)

    那我来为你详细讲解一下 “VMware ESXi安装使用记录(附下载)” 的完整攻略。 一、前言 在进行 VMware ESXi 的安装和使用前,我们需要对 VMware ESXi 有一个初步的了解。VMware ESXi 是一款虚拟化软件,它可以在一台服务器上创建多台虚拟机,从而将一台物理机的资源分配给多台虚拟机,提高硬件使用效率。本文将从 VMware …

    Linux 2023年5月24日
    00
  • Linux系统下findmnt命令使用全解

    下面是关于“Linux系统下findmnt命令使用全解”的完整攻略。 1. 简介 在Linux系统上,findmnt是一个命令行工具,用于查找已安装的文件系统以及它们在文件系统层次结构中的安装点。该命令可用于列出所有已安装的文件系统、查找指定的文件系统等。 2. 命令格式 findmnt的基本命令格式如下: findmnt [options] [mountp…

    Linux 2023年5月14日
    00
  • Vmware虚拟机怎么向Linux虚拟机拖放文件?

    如果你使用的是Vmware Workstation虚拟机软件,那么你可以按照以下步骤向Linux虚拟机拖放文件: 第一步:选择需要拖放的文件。在Windows宿主机中,找到你想要拖放的文件或文件夹。如果你想要拖放多个文件,可以按住Ctrl键,然后逐一选择它们。 第二步:将文件拖放到虚拟机窗口中。打开Linux虚拟机软件,将它的窗口大小设置为与Windows宿…

    Linux 2023年5月24日
    00
  • TorllStore怎么使用?TorllStore巨魔商店永久安装任何APP使用教程

    TorllStore是一个基于巨魔商店的APP源,利用它可以永久安装任何APP,且不需要越狱,现在就来详细讲解一下怎么使用TorllStore。 步骤一:获取TorllStore 打开手机浏览器,输入URL:https://trollstore.lanzous.com/。 进入网页后,点击“下载”按钮,等待文件下载完成。 下载完成后,点击下载的文件安装Tor…

    Linux 2023年5月14日
    00
  • Linux分享笔记:shell终端的介绍

    [1] Linux中 “shell终端” 和 “bash解释器” 的区别   shell终端是通过基于系统调用接口开发出的程序,用来让用户与系统进行对话,管理计Linux系统。它是一个命令行工具,操作类似于Windows下的CMD工具。shell终端工具有很多,bash解释器只是其中的一种,而且是主流Linux系统默认的终端工具,故我们一般见到的shell终…

    Linux 2023年4月11日
    00
  • 在Linux中利用yum安装JDK的实现步骤

    当我们在Linux操作系统中需要安装JDK时,可以利用yum命令进行安装。下面是利用yum安装JDK的实现步骤: 步骤一:升级系统 在安装JDK之前,我们需要升级系统,以保证系统能够正常地安装、使用JDK。执行以下命令进行升级: sudo yum update 步骤二:查看可用的JDK版本 在使用yum安装JDK之前,我们需要查看可用的JDK版本。执行以下命…

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