LNMP架构搭建(MYSQL,NGINX,PHP)

本文详细介绍如何从零开始搭建Nginx、Mysql和PHP环境,包括安装所需软件包、配置服务、编写系统服务脚本、设置权限、调整配置文件等关键步骤。

一、搭建 Nginx

  • 解压压缩包
[root@localhost mnt]# tar zxvf nginx-1.12.2.tar.gz -C /opt/
  • 安装nginx所需要的环境包
[root@localhost mnt]# yum install gcc gcc-c++ pcre pcre-devel zlib-devel -y
  • 创建用户,且不允许登录系统
[root@localhost mnt]# useradd -M -s /sbin/nologin nginx
  • 进入nginx解压包路径,配置nginx服务
[root@localhost opt]# cd /opt/nginx-1.12.2/
[root@localhost nginx-1.12.2]# ./configure \
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module
  • 安装nginx服务
[root@localhost nginx-1.12.2]# make && make install
  • 为了方便管理,可以给nginx创建一个软连接
[root@localhost system]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
  • 编写一个脚本,可以用 systemctl 工具控制其开启、关闭、重载
[root@localhost nginx-1.12.2]# cd /lib/systemd/syste
[root@localhost system]# vim nginx.service

[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -s HUP $MAINPID
ExecStop=/usr/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

  • 添加权限
root@localhost system]# chmod 754 nginx.service
  • 关闭防火墙,启动服务,在客户机访问,验证服务
[root@localhost system]# systemctl stop firewalld.service
[root@localhost system]# systemctl start nginx.service
[root@localhost system]# netstat -ntap | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      6279/nginx: master  
[root@localhost system]#

 

 二、搭建 Mysql

解压压缩包

[root@localhost opt]# tar zxvf mysql-boost-5.7.20.tar.gz -C /opt

安装工具,环境

[root@localhost opt]# yum -y install \
> ncurses \
> ncurses-devel \
> bison \
> cmake

创建用户

[root@localhost opt]# useradd -s /sbin/nologin mysql

编译

[root@localhost opt]# cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
> -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
> -DSYSCONFDIR=/etc \
> -DSYSTEMD_PID_DIR=/usr/local/mysql \
> -DDEFAULT_CHARSET=utf8 \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
> -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
> -DMYSQL_DATADIR=/usr/local/mysql/data \
> -DWITH_BOOST=boost \
> -DWITH_SYSTEMD=1

安装mysql数据库

[root@localhost opt]# make && male install

设置权限

[root@localhost opt]# chown -R mysql:mysql /usr/local/mysql/

调整配置文件:删掉原有内容,添加以下内容

[root@localhost opt]# vim /etc/my.cnf
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

设置环境变量:

[root@localhost opt]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >>/etc/profile
[root@localhost opt]# echo 'export PATH' >>/etc/profile
[root@localhost opt]# source /etc/profile

初始化数据库

[root@localhost opt]# cd /usr/local/mysql/
[root@localhost mysql]# bin/mysqld \
> --initialize-insecure \
> --user=mysql \
> --basedir=/usr/local/mysql \
> --datadir=/usr/local/mysql/data

保持路径不变,将服务复制到 /lib/systemd/system/路径下,可以用systemctl控制管理

[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /lib/systemd/system/

启动服务,检测mysql 服务是否成功

[root@localhost mysql]# systemctl start mysqld.service
[root@localhost mysql]# netstat -natp | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      60701/mysqld        
[root@localhost mysql]#

设置 mysql 密码:
默认密码没有,直接回传即可,输入新密码

[root@localhost mysql]# mysqladmin -u root -p password
Enter password:                //初始密码无,直接回车
New password:                  //设置密码为123456
Confirm new password:          //确认密码123456
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

登录数据库:

[root@localhost mysql]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 5.7.20 Source distribution

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

安装 PHP

安装环境依赖包

[root@localhost mysql]# yum -y install \
> libjpeg \
> libjpeg-devel \
> libpng libpng-devel \
> freetype freetype-devel \
> libxml2 \
> libxml2-devel \
> zlib zlib-devel \
> curl curl-devel \
> openssl openssl-deve

解压缩包

[root@localhost mnt]# tar jxvf php-7.1.10.tar.bz2 -C /opt

configure配置

[root@localhost php-7.1.10]# make && make install

修改配置文件

[root@localhost php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini

1170 mysqli.default_socket = /usr/local/mysql/mysql.sock  //添加mysql数据库连接文件路径

939 date.timezone = Asia/Shanghai                        //添加时区为上海

验证安装模块

[root@localhost php-7.1.10]# /usr/local/php/bin/php -m

配置及优化FPM模块

[root@localhost php-7.1.10]# cd /usr/local/php/etc/
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf
[root@localhost etc]# cd /usr/local/php/etc/php-fpm.d
[root@localhost php-fpm.d]# cp www.conf.default www.conf
[root@localhost etc]# vim php-fpm.conf

17 pid = run/php-fpm.pid            //开启此功能

启动 PHP,检查是否开启

[root@localhost etc]# /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
[root@localhost etc]# netstat -ntap | grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      69026/php-fpm: mast 
[root@localhost etc]# 

创建软连接文件,便于管理命令

[root@localhost etc]# ln -s /usr/local/php/bin/* /usr/local/bin/

使nginx 支持 PHP

[root@localhost etc]# vim /usr/local/nginx/conf/nginx.conf

location ~ \.php$ {
 66         root           html;
 67         fastcgi_pass   127.0.0.1:9000;
 68         fastcgi_index  index.php;
 69         fastcgi_param  SCRIPT_FILENAME   /usr/local/nginx/html$fastcgi_script_name;
 70         include        fastcgi_params;
 71         }



  //69行,主要路径

重启nginx服务

[root@localhost etc]# systemctl restart nginx

创建PHP首页

[root@localhost etc]# vim /usr/local/nginx/html/index.php
<?php
phpinfo();
?>

网站访问PHP首页

 安装论坛

mysql>
//输入以下命令
CREATE DATABASE bbs;   //创建数据库bbs
GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';  //设置用户bbsuser密码
GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123'; 
flush privileges;

解压 Discuz 论坛文件

[root@localhost mnt]# unzip Discuz_X3.4_SC_UTF8.zip -d /opt

授权

[root@localhost mnt]# cd /opt/dir_SC_UTF8/
[root@localhost dir_SC_UTF8]# cp -r upload/ /usr/local/nginx/html/bbs
[root@localhost dir_SC_UTF8]# cd /usr/local/nginx/html/bbs/
[root@localhost bbs]# chown -R root:nginx ./config/
[root@localhost bbs]# chown -R root:nginx ./data/
[root@localhost bbs]# chown -R root:nginx ./uc_client/
[root@localhost bbs]# chown -R root:nginx ./uc_server/
[root@localhost bbs]# chmod -R 777 ./config/
[root@localhost bbs]# chmod -R 777 ./data/
[root@localhost bbs]# chmod -R 777 ./uc_client/
[root@localhost bbs]# chmod -R 777 ./uc_server/

访问网址,安装论坛

填好数据库名称和密码之后,就可以进入首页了

 

关于 阿里云盘CLI。仿 Linux shell 文件处理命令的阿里云盘命令行客户端,支持JavaScript插件,支持同步备份功能,支持相册批量下载。 特色 多平台支持, 支持 Windows, macOS, linux(x86/x64/arm), android, iOS 等 阿里云盘多用户支持 支持备份盘,资源库无缝切换 下载网盘内文件, 支持多个文件或目录下载, 支持断点续传和单文件并行下载。支持软链接(符号链接)文件。 上传本地文件, 支持多个文件或目录上传,支持排除指定文件夹/文件(正则表达式)功能。支持软链接(符号链接)文件。 同步备份功能支持备份本地文件到云盘,备份云盘文件到本地,双向同步备份保持本地文件和网盘文件同步。常用于嵌入式或者NAS等设备,支持docker镜像部署。 命令和文件路径输入支持Tab键自动补全,路径支持通配符匹配模式 支持JavaScript插件,你可以按照自己的需要定制上传/下载中关键步骤的行为,最大程度满足自己的个性化需求 支持共享相册的相关操作,支持批量下载相册所有普通照片、实况照片文件到本地 支持多用户联合下载功能,对下载速度有极致追求的用户可以尝试使用该选项。详情请查看文档多用户联合下载 如果大家有打算开通阿里云盘VIP会员,可以使用阿里云盘APP扫描下面的优惠推荐码进行开通。 注意:您需要开通【三方应用权益包】,这样使用本程序下载才能加速,否则下载无法提速。 Windows不第二步打开aliyunpan命令行程序,任何云盘命令都有类似如下日志输出 如何登出和下线客户端 阿里云盘单账户最多只允许同时登录 10 台设备 当出现这个提示:你账号已超出最大登录设备数量,请先下线一台设备,然后重启本应用,才可以继续使用 说明你的账号登录客户端已经超过数量,你需要先登出其他客户端才能继续使用,如下所示
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值