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系启用文件共享之后的文件存在的位置方法

    在虚拟机中启用文件共享后,文件会出现在虚拟机的共享目录中。可以按照以下步骤来访问共享目录里的文件。 步骤一:安装VMware Tools 首先需要在虚拟机中安装VMware Tools。VMware Tools是VMware提供的增强工具,能够提升虚拟机的性能和功能。其中就包括了虚拟机文件共享功能。安装VMware Tools的具体步骤可以参考VMware官…

    Linux 2023年5月24日
    00
  • centos7使用rpm安装mysql5.7的教程图解

    CentOS 7使用rpm安装mysql5.7的教程图解 说明 MySQL是一个开放源代码的关系型数据库管理系统,广泛应用于Web应用程序的数据管理中。本文将详细介绍在CentOS 7上使用rpm安装MySQL 5.7的全过程。 步骤一:下载MySQL的Yum Repository 在CentOS 7上安装MySQL 5.7,需要先将MySQL 的Yum R…

    Linux 2023年5月14日
    00
  • Linux中basename和dirname命令的妙用

    有同学问,如何/dir1/dir2/dir3/file中的,前半部分:/dir1/dir2/dir3和最后部分file,这个用字符串分隔及${str//}来处理还比较难办,这个时候basename和dirname命令就很方便了。 [dirname] 手册页“Print NAME with its trailing /component removed; if…

    Linux 2023年4月13日
    00
  • linux下redis的最佳实践(Master-Slave)

    本文演示了redis在同一台linux上的安装及运行多个实例,并演示了主从复制,以及如何进行主从的切换。 1. 下载 $ wget http://download.redis.io/releases/redis-3.0.7.tar.gz 2. 解压缩 $ tar xzf redis-3.0.7.tar.gz 3. 编译 $ cd redis-3.0.7 $ …

    Linux 2023年4月12日
    00
  • Linux(Redhat)安装python3.6虚拟环境(推荐)

    下面是“Linux(Redhat)安装python3.6虚拟环境(推荐)”的详细攻略: 1. 确认系统已安装Python3.6 在终端输入以下命令: python3.6 如果系统已经安装了Python3.6,终端会显示Python3.6的版本信息。 2. 安装virtualenv virtualenv是一个用于创建Python虚拟环境的工具,可以让每个项目使…

    Linux 2023年5月14日
    00
  • 【开源】基于.net6+gtksharp实现的Linux下的图形界面串口调试工具

    背景    22年初从上家互联网公司离职以后,充分认识到互联网行业的风险,公司在没有自身稳定产品的情况下,互联网行业就是一个烧钱的行业,支出远远大于收入来源,上家公司就是如此,12年的公司转瞬间轰然倒地,1000多号人面临失业,不幸的是本人也在其中。经过深思熟虑以后本人决定找个有自身稳定收入的企业,因此便找到了了一个全国前5的消防行业,背靠制造行业的大厂有着…

    Linux 2023年4月11日
    00
  • Linux 中 RPM包 安装 查询 卸载命令小结及yum命令详解

    一、RPM包安装、查询、卸载命令小结 安装RPM包命令 rpm -ivh packagename.rpm 解释:- i:代表安装(install)软件包- v:显示安装进度(verbose)- h:打印一个哈希标记(#)来表示进度 查询已安装的RPM包命令 rpm -qa 解释:- q:代表询问(query)软件包- a:代表查询所有的已安装软件包 查询RP…

    Linux 2023年5月14日
    00
  • Clickhouse常用整理& linux操作clickhouse命令

    进入click(不加上-m的话,进入之后只能一次写一行,不能建表) clickhouse client -m 查看数据库 show databases; 创建一个数据库 create database db_doit; 删除数据库 drop database db_doit; 查看表 show tables: 查看当前使用的数据库 select curren…

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