一. LNMP环境搭建

时间:2022-09-18 15:31:31

一. 开篇介绍

  1. 我不懂PHP, 所以此处的P代表Python, 按着一步步敲代码, 小白也能配置好. 

  2. 搭建过程为: 编译安装Nginx --> 二进制安装MySQL --> 编译安装Python

  3. 版本号: Cent0S 7.0  nginx-1.11.6  mysql-5.6.35  python-3.6.2  django-1.11.2.

  4. 为了小白容易区分,  声明:  ~ 表示 /root,  # 表示root用户. 不一定非要在指定路径. 有基础的略过

  5. 关于防火墙设置, 参考Linux防火墙设置

 二. 安装Nginx

  1. 下载nginx-1.11.6.tar.gz, 耐心等待下载

~ # wget https://nginx.org/download/nginx-1.11.6.tar.gz

  2. 解压nginx-1.11.6.tar.gz, 可以解压到当前目录, 也可以解压到自己设定的目录, 我个人习惯解压到 /usr/src/ 目录

~ # tar zxf nginx-1.11.6.tar.gz -C /usr/src/

  3. 安装nginx的依赖包

~ # yum -y install gcc-c++ pcre pcre-devel openssl openssl-devel

  4. 配置用户信息, 这个用户用来管理Nginx相关信息, 不登录, 也不用添加用户目录, 配置好了后查看一下是否创建成功. -s表示指定用户的shell, 不登录.

~ # useradd -s /sbin/nologin nginx -M
~ # tail -1 /etc/passwd
输出: nginx:x:1000:1000::/home/nginx:/sbin/nologin ==> 表示创建成功

  5. 进入nginx-1.11.6目录, 并简要查看解压后的信息

~ # cd /usr/src/nginx-1.11.6
nginx-1.11.6 # ls 此处目录改变为nginx, 下文出现类似情况不再赘述
输出: CHANGES.ru configure html man src CHANGES conf contrib LICENSE README

  6. confiugre里面写了很多配置信息, 可以用cat查看, 此处我省略掉, 我只是配置一下常用的, 如用户和用户组配置成nginx, 配置路径设置为 /usr/local/nginx, 监控运行状态, 以及支持https.

  nginx-1.11.6 # ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

   7. 编译安装

nginx-1.11.6 # make && make install

   8. 进入nginx目录, 查看相关信息,

nginx-1.11.6 # cd /usr/local/nginx/
nginx # ls
输出: client_body_temp  conf  fastcgi_temp  html  logs  proxy_temp  sbin  scgi_temp  uwsgi_temp

  9. 设置软连接  

nginx # ln -s /usr/local/nginx/sbin/nginx /usr/sbin/

   10. 启动nginx, 查看端口号

nginx # nginx
nginx # netstat -nlpt
输出: tcp   0   0 0.0.0.0:80   0.0.0.0:*   LISTEN  4853/nginx: master

  11. 设置nginx的启动与关闭

nginx # nginx 启动
nginx # nginx -s stop 关闭
nginx # nginx -s reload 重启

 

11. 测试连接服务器

  浏览器输入服务器ip地址, 可以查看首页, 如果域名解析过也可以输入域名查看.

一. LNMP环境搭建

 

 

  

 

 

 

 

三. 安装MySQL

  1. 下载mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz, 耐心等待下载

~ # wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

  2. 安装依赖包

~ # yum -y install perl autoconf libaio

  3. 创建用户和组

~ # groupadd -r -g 306 mysql
~ # useradd -g 306 -r -u 306 mysql

  4. 查看id和用户信息

~ # id mysql
~ # tail -1 /etc/passwd
输出: mysql:x:306:306::/home/mysql:/bin/bash ==> 表示创建成功

  5. 解压文件, 目录为 /usr/loacl

~ # tar zxf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz -C /usr/local

  6. 进入local目录, 并查看相关文件

~ # cd /usr/local
local # ls
输出: bin  etc  games  include  lib  lib64  libexec  mysql-5.6.34-linux-glibc2.5-x86_64  nginx  sbin  share  src

  7. 注意, 不能更改mysql-5.6.35-linux-glibc2.5-x86_64的名称, 因为可能存在依赖问题. 使用连接的方法推荐.

local # ln -sv mysql-5.6.35-linux-glibc2.5-x86_64 mysql

  8. 进入mysql目录, 并更改用户和用户组. 注意, 为了防止暴力破解mysql, 如果将数据保存在 /usr/local/mysql/data里面, 那么用户和用户组必须为mysql. 用户组可以设置为root. 本次不做细分. 因为没有人会闲的蛋疼来攻击我的服务器. 在此我给出解决方案, 统一设置用户和用户组为root, 单独设置data目录为mysql和root. 前提是数据位置为/usr/local/mysql/data. 如果设置到其他位置, 略过.

local # cd mysql/
mysql # chown -R mysql.mysql /usr/local/mysql/*

  9. 复制配置文件到系统配置文件目录, myslq找目录的方式 /etc/my.cnf --> /etc/myslq/my.cnf --> $BASEDIR/my.cnf --> $DATADIR/my.cnf(可能), 后一个覆盖前一个

mysql # cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
做出如下配置:
mysql # vim /etc/my.cnf

    [mysqld]

    basedir = /usr/local/mysql

    datadir = /data/mysql 注意, 我定义到了单独的目录, 要先创建目录, 可以设置成默认的/usr/local/mysql/data

    port = 3306

    socket = /tmp/mysql.sock

    log-error = /data/mysql/error.log

    pid-file = /data/mysql/mysql.pid

    tmpdir = /tmp

  10. 初始化数据库

mysql # ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql --pid-file=/data/mysql/mysql.pid --tmpdir=/tmp

  11. 设置启动脚本, 查看执行权限

mysql # cp support-files/mysql.server /etc/init.d/mysqld
myslq # ll /etc/init.d/mysqld
输出: -rwxr-xr-x 1 root root 10875 Sep 11 08:14 /etc/init.d/mysqld ==> 都有执行权限, OK.

  12. 将mysqld加入服务中

mysql # chkconfig --add mysqld

  13. 查看启动权限

mysql # chkconfig --list mysqld
输出: mysqld  0:off   1:off   2:on    3:on    4:on    5:on    6:off

  14. 启动mysqld, 这是服务端

mysql # service mysqld start
输出: Starting MySQL.. SUCCESS!

  15. 查看端口

mysql # netstat -tnlp
输出: tcp6  0   0 :::3306  :::  LISTEN  11456/mysqld ==> 表示端口3306启动

  16. 创建软连接

mysql # ln -s /usr/local/mysql/bin/mysql /usr/bin

  17. 重新远程登录, 输入mysql

~ # mysql

  18. 显示界面, 表示MySQL前后端, 以及相关启动项都已经配置好, 安装完成.

一. LNMP环境搭建

四. 安装Python

  Centos7自带python2.7.5, 这个版本不能删除, 切记. ~ # python/which python可以查看相关信息.

1. 下载Python-3.6.2.tar.gz, 耐心等待下载

~ # wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz

  2. 安装开发环境和依赖包

~ # yum -y groupinstall development
~ # yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

  3. 解压Python-3.6.2.tar.gz

~ # tar xJf Python-3.6.2.tar.xz

  4. 进入解压后的目录

~ # cd Python-3.6.2/

  5. 配置, 编译和安装Python, 建议喝杯茶. 注意查看一下自己系统cpu情况, 然后设置j的参数, 如果不会用make && make install.

Python-3.6.2 # ./configure --prefix=/usr/local/python3 --enable-optimizations
Python-3.6.2 # make -j 16 && make install

  6. 设置连接

Python-3.6.2 # ln -s /usr/local/python3/bin/python3 /usr/bin/python3
Python-3.6.2 # ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

   7. 查看两个版本的信息

~ # python
~ # python3

  输出:

一. LNMP环境搭建

  至此: LNMP搭建完成, 完了吗? never

  设置防火墙, 部署django,远程登录MySQL