搭建LNMP基础框架
目录
一、编译安装Nginx服务
二、编译安装MySQL服务
三、编译安装PHP服务
四、部署Discuz,社区论坛Web应用
一、编译安装Nginx服务
1、关闭防火墙,将安装Nginx所需软件包传到/opt目录下
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
1
2
3
2.安装环境依赖包
#nginx的配置及允许需要pcre、zlib等软件包的支持,因此需要安装这些安装的开发包,以便提供相应的库和头文件
yum -y install pcre-devel zlib-devel gcc gcc-c++ make
1
2
3、创建运行用户、组(Nginx服务程序默认以nobody身份运行,建议为其创建专门的用户账号,以便更准确的控制其访问权限)
useradd -M -s /sbin/nologin nginx
1
2
4、编译安装
cd /opt
tar zxvf nginx-1.12.0.tar.gz
cd nginx-1.12.0/
./configure
–prefix=/usr/local/nginx
–user=nginx
–group=nginx
–with-http_stub_status_module
make && make install
1
2
3
4
5
6
7
8
9
10
5、优化配置文件路径,并把nginx服务的可执行程序文件放入路径环境变量的目录中便于系统识别
ln -s /usr/local/nginx/sbin/* /usr/local/sbin
1
6、添加Nginx系统服务
vim /lib/systemd/system/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=/bin/kill -1 $MAINPID
ExecStop=/bin/kill -3 $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
之前已经安装过Nginx服务了,可以查看我之前的博客:[Nginx网站服务(https://blog.csdn.net/weixin_51432789/article/details/112349935)
二、编译安装MySQL服务
1、安装MySQL环境依赖包
yum -y install
ncurses
ncurses-devel
bison
cmake
或者
yum -y install ncurses ncurses-devel bison cmake
1
2
3
4
5
6
7
2、创建运行用户
useradd -M -s /sbin/nologin mysql
1
3、编译安装
cd /opt
tar zxvf mysql-boost-5.7.20.tar.gz
cd /opt/mysql-5.7.20
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_EXTRA_CHARSETS=all
-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
make && make install
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
4、修改mysql配置文件
vim /etc/my.cnf
[client]
port = 3306
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
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
5、更改mysql安装目录和配置文件的属主属组
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf
1
2
6、设置路径环境变量
echo ‘export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH’ >> /etc/profile
source /etc/profile
1
2
7、初始化数据化
cd /usr/local/mysql/bin/
./mysqld
–initialize-insecure
–user=mysql
–basedir=/usr/local/mysql
–datadir=/usr/local/mysql/data
1
2
3
4
5
6
8、添加mysqld系统服务
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld
1
2
3
4
5
6
9、添加mysql的登录密码
mysqladmin -u root -p password “abc123”
1
10、授权远程登录
mysql -u root -p
grant all privileges on . to ‘root’@’%’ identified by ‘abc123’;
show databases;
1
2
3
这里使用的是集合包安装的MySQL,所以要注意的是在编译安装的时候将
-DWITH_BOOST=/usr/local/boost \改为-DWITH_BOOST=boost
截图内容可以参考源码编译安装LAMP内的安装mysql
三、编译安装PHP服务
1、安装环境依赖包
yum -y install gd
libjpeg libjpeg-devel
libpng libpng-devel
freetype freetype-devel
libxml2 libxml2-devel
zlib zlib-devel
curl curl-devel
openssl openssl-devel
1
2
3
4
5
6
7
8
2、编译安装
cd /opt
tar jxvf php-7.1.10.tar.bz2
cd ./php-7.1.10/
./configure
–prefix=/usr/local/php
–with-mysql-sock=/usr/local/mysql/mysql.sock
–with-mysqli
–with-zlib
–with-curl
–with-gd
–with-jpeg-dir
–with-png-dir
–with-freetype-dir
–with-openssl
–enable-fpm
–enable-mbstring
–enable-xml
–enable-session
–enable-ftp
–enable-pdo
–enable-tokenizer
–enable-zip
make && make install
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
3、路径优化
ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/
1
2
4、调整PHP配置文件
PHP有三个配置文件
php.ini(主配置文件)
php-fpm.conf(进程服务配置文件)
www.conf(扩展配置文件)
调整主配置文件:
cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini
vim /usr/local/php/lib/php.ini
##修改1170行
mysqli.default_socket = /usr/local/mysql/mysql.sock
##939行取消注释,修改
date.timezone = Asia/Shanghai
php -m
1
2
3
4
5
6
7
8
9
调整进程服务配置文件:
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
#17行取消注释“;”
pid = run/php-fpm.pid
1
2
3
4
5
调整扩展配置文件
cd /usr/local/php/etc/php-fpm.d
cp www.conf.default www.conf
1
2
5、启动php-fpm
cd /usr/local/php/sbin/
php-fpm -c /usr/local/php/lib/php.ini
netstat -natp | grep 9000
1
2
3
PHP-FPM(FastCGI Process Manager:FastCGI进程管理器)是一个PHPFastCGI管理器,由于Nginx服务器不能处理动态页面,需要由Nginx把动态请求交给php-fpm进程进行解析
6、配置Nginx支持PHP解析
vim /usr/local/nginx/conf/nginx.conf
##65行取消注释修改
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
#将/scripts修改为nginx的工作目录修改为/usr/local/nginx/html
include fastcgi_params;
}
systemctl restart nginx.service
1
2
3
4
5
6
7
8
9
10
11
12
7、验证PHP测试页
vim /usr/local/nginx/html/index.php
<?php phpinfo(); ?>
1
2
3
4
浏览器访问:http://192.168.241.3/index.php
8、验证数据库工作是否正常
mysql -u root -p
CREATE DATABASE bbs;
GRANT all ON bbs.* TO ‘bbsuser’@’%’ IDENTIFIED BY ‘admin123’;
GRANT all ON bbs.* TO ‘bbsuser’@‘localhost’ IDENTIFIED BY ‘admin123’;
flush privileges;
vim /usr/local/nginx/html/index.php
<?php $link=mysqli_connect('192.168.241.3','bbsuser','admin123'); if($link) echo "success!!"; else echo "fail!!" ?>
1
2
3
4
5
6
7
8
9
10
11
12
浏览器访问:http://192.168.241.3/index.php
四、部署Discuz,社区论坛Web应用
cd /opt
unzip Discuz_X3.4_SC_UTF8.zip -d /opt/dis
cd /opt/dis/dir_SC_UTF8
cp -r upload /usr/local/nginx/html/bbs
1
2
3
4
调整论坛目录的权限
cd /usr/local/nginx/html/bbs
chown -R root:nginx ./config
chown -R root:nginx ./data
chown -R root:nginx ./uc_client
chown -R root:nginx ./uc_server
chmod -R 777 ./config
chmod -R 777 ./data
chmod -R 777 ./uc_client
chmod -R 777 ./uc_server
1
2
3
4
5
6
7
8
9
10
11
论坛页面访问:http:192.168.241.3/bbs/install/index.php
数据库服务器:localhost
数据库名字:bbs
数据库用户名:bbsuser
数据库密码:admin123
管理员账号:admin
管理员密码:admin123
搭建LNMP基础框架相关推荐
- Spring3.2.0-mybatis3.2.0 基于全注解搭建的后台框架-基础版
2019独角兽企业重金招聘Python工程师标准>>> 摘要: Spring3.2.0-mybatis3.2.0 基于全注解搭建的后台框架-基础版 没有什么不可能 之前一直用的是自 ...
- Django的学习需要掌握的一些基础和初步搭建自己的框架
一.Django的学习需要掌握的一些基础 第一个需要注意的点:客户端发送过来的数据结构组成: 第二个需要注意的点:动态网页和静态网页 静态网页:用户发送请求,服务端找到对应的静态文件返回给浏览器,静态 ...
- 腾讯 tars java_腾讯 Tars 基础框架手动搭建——填掉官方 Guide 的坑
背景 Tars 简介 腾讯 Tars 是腾讯内部使用的 TAF(Tencent Application Framework)的对外开源版,去掉了许多冗杂多余的部分.该框架集开发.运维.微服务.RPC ...
- CLion之C++框架篇-安装工具,基础框架的搭建(一)
CLion之C++框架篇-安装工具,基础框架的搭建(一) 背景 日常学习C++,也就是看看书.在vim里写写代码.在日常项目开发中,也是边看书(一是系统性理解.二是找找有什么更好的代码编写方式)边写代 ...
- 原生微信小程序项目基础框架搭建
原生微信小程序项目基础框架搭建 文件目录结构 1. 环境变量(开发环境, 线上环境,测试环境)便于在不同环境的切换 接口的url webview的前缀url 埋点相关的环境参数 本地存储的环境变量配置 ...
- 腾讯 Tars 基础框架手动搭建——填掉官方 Guide 的坑
背景 Tars 简介 腾讯 Tars 是腾讯内部使用的 TAF(Tencent Application Framework)的对外开源版,去掉了许多冗杂多余的部分.该框架集开发.运维.微服务.RPC ...
- uniApp介绍篇-1.基础框架搭建与排坑备忘
基础框架搭建与排坑备忘 一.uniApp介绍与注意点 1.目录结构 2.跳转页面 3.条件编译 4.生命周期 5.样式布局 6.图片引用 7.html标签 8.JsApi 9.小程序组件支持 10.事 ...
- nodejs php做平台,用nodejs做一套康养管理系统(1)--基础框架搭建
用nodejs做一套康养管理系统(1)--基础框架搭建 这两天准备开始一个康养项目管理系统的开发,闲来无事想将整个流程写下来,并将本项目开发代码开源.首先本次先梳理下结构,画一个拓扑结构图,再根据结构 ...
- SpringBoot+MyBatisPlus+Vue 前后端分离项目快速搭建【后端篇】【快速生成后端代码、封装结果集、增删改查、模糊查找】【毕设基础框架】
前后端分离项目快速搭建[后端篇] 数据库准备 后端搭建 1.快速创建个SpringBoot项目 2.引入依赖 3.编写代码快速生成代码 4.运行代码生成器生成代码 5.编写application.pr ...
最新文章
- PHP版本如何选择?应该使用哪个版本?
- python观察日志(part21)--ord,chr,unichr方法的联系与区别
- Jumpline提供的免费3月的VDS空间,空间容量为20GB, 图文介绍
- using namespace std
- MacOS之Chrome弹框:代理要求提供用户名和密码(已解决)
- win7下對顯示器的電源的操作
- 「SAP技术」SAP MM 启用了MPN物料管理的物料,物料主数据与源清单数据有啥不同?
- sklearn.svm 多分类
- HTML代码 网页设置 QQ空间等分享
- tempo js渲染引擎
- docker 配置 CA验证
- java实现微信定时发送消息
- 红楼梦人物关系 python_如何用Python来理一理红楼梦里的那些关系
- java SSM 多数据源
- Java实现火车购票系统功能
- Java中BIO,NIO,AIO
- Codecraft-18 and Codeforces Round #458 (Div. 1 + Div. 2, combined) C】 Travelling Salesman and Specia
- 关系数据库——数据库恢复
- 锤子T1手机 只显示logo无法开机
- 事件中心与观察者模式
热门文章
- 百度测试开发提前批一面面经
- 时空图卷积神经网络(st-gcn)论文解读
- Python官方文档学习心得(第三篇)
- chrome鼠标手势_Chrome插件推荐——第一弹
- react更改路由入参_react路由传参方式
- java 避免大量if else_利用java的反射避免 多个 if else if else if else if
- php饿死,中国第一懒人:父母去世后,23岁的他饿死家中
- mysql读写分离-借助中间键mycat
- php从头部添加,php如何向header头添加Authorization信息?
- 华为交换机默认vlan都是通的吗_华为设备二层交换技术——Hybrid接口详解