1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 手把手教你 嘴对嘴传达------源码编译LNMP部署及应用 手动搭建discuz论坛

手把手教你 嘴对嘴传达------源码编译LNMP部署及应用 手动搭建discuz论坛

时间:2023-04-23 19:02:35

相关推荐

手把手教你 嘴对嘴传达------源码编译LNMP部署及应用     手动搭建discuz论坛

文章目录

前言一、LNMP架构的部署(理论)1、LNMP架构概述2、MySQL安装配置3、PHP解析环境的安装4、配置Ngnx支持PHP环境5、常见的PHP开源产品介绍二、LNMP应用部署1、Nginx安装第一步 、下载资源环境包第二步、进入到源码包的目录下configure配置第三步、路径优化第四步 、使用systemctl控制第五步、开启nginx,关闭防火墙总结2、mysql编译安装第一步、安装mysql环境依赖包第二步、cmake配置和make和make install第三步!!重点!设置/usr/local/mysql目录的权限第四步、编辑配置文件第五步、设置环境变量改完记得source加载第六步、初始化数据库第七步、开启数据库,检查状态第八步、设置mysql密码3、PHP编译安装第一步、安装环境包第二步编译安装第三步、配置PHP的三个配置文件第四步、创建软链接第五步、编辑,让nginx支持PHP功能第六步、测试数据库工作是否正常第七步 、验证4、搭建Discuz论坛第一步、按解压论坛安装包第二步、设置论坛权限第三步、访问论坛5、验证

前言

LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以指Perl或Python

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。

Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。

Mysql是一个小型关系型数据库管理系统。

PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。

这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统

一、LNMP架构的部署(理论)

1、LNMP架构概述

LNMP平台就是 Linux、 Ngnix、 My SQL、PHP的组合架构,需要 Linux服务器、MysαL数据库、PHP解析环境

Ngnix特长:高并发,低资源,处理静态网络访问请求非常强

Apache:静态处理和动态处理都可以做,更适合做动态处理

Nginx将动态资源请求交给PHP当中的fpm处理动态请求

PHP主配置文件:php.ini

Nginx将动态资源分配给FPM或Apache

2、MySQL安装配置

为了与 Nginx、PHP环境保持一致,此处选择采用源代码编译的方式安装 My SQL组件

MySQL部署的方法

编译安装 MySQL

优化调整初始化数据库

启动mysq服务并设置root数据库账号的密码

3、PHP解析环境的安装

配置网页动静分离,解析PHP,有两种方法可以选择

使用PHP的FPM模块

将访问PHP页面的Web请求转交给 Apache服务器去处理

较新版本的PHP已经自带FPM模块,用来对PHP解析实例进行管理、优化解析效率

FastCG将 Http Server和动态脚本语言分离开

Nginx专门处理静态请求,转发动态请求

PHP FPM专门解析PHP动态请求

单服务器的LNMP架构通常使用FPM的方式来解析PHP

4、配置Ngnx支持PHP环境

调用本机的php-fpm进程配置方法

建立FPM配置文件php- fpm. conf,修改配置选项,如:PD文件运行用户、服务进程数等

启动php-pm进程

在Ngnx的配置文件中的 serve}配置段配置将PHP的网页请求转给FPM模块处理

在Ngnx的配置文件中的 Server{}配置段配置将PHP的网页请求转给FPM模块处理

5、常见的PHP开源产品介绍

Discuz!

康盛创想(北京困技有限公司推出的一套通用的社区论坛软件系统,如001年6月面世以来,是全球成熟度最高、覆盖率最大的论坛软件系统之一

PHPWind

PHPWind(简称:PW)是一个基于PHP和 MySQL的论坛程序,是国内最受欢迎的通用型论坛程序之一。 PHPWind的前身是onstar,发布于, PHPWind由杭州德天信息技术有限公司开发,软件全面开源免费

二、LNMP应用部署

1、Nginx安装

第一步 、下载资源环境包

yum -y install gcc \gcc-c++ \make \pcre-devel \expat-devel \perl \zlib-devel \pcre

第二步、进入到源码包的目录下configure配置

./configure \--prefix=/usr/local/nginx \--user=nginx \--group=nginx \--with-http_stub_status_module

第三步、路径优化

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin'//nginx命令执行路径优化'useradd -M -s /sbin/nologin nginx

第四步 、使用systemctl控制

vim /lib/systemd/system/nginx.service'//添加使用systemctl工具进行管理'[Unit]Description=nginx'//描述'After=network.target'//描述服务类别'[Service]Type=forking'//后台运行形势'PIDFile =/usr/local/nginx/logs/nginx.pid'//PID文件位置'ExecStart=/usr/local/nginx/sbin/nginx'//启动服务'ExecReload=/usr/bin/kill -S HUP $MAINPID'//根据PID重载配置'ExecStop=/usr/bin/kill -S QUIT $MAINPID'//根据PID终止进程'PrivateTmp=true[Install]WantedBy=multi-user.targetchmod 754 /lib/systemd/system/nginx.service

第五步、开启nginx,关闭防火墙

[root@localhost system]# chmod +754 nginx.service [root@localhost system]# systemctl start nginx.service[root@localhost system]# systemctl stopfirewalld.service [root@localhost system]# setenforce 0

总结

这里提前把之前的Nginx卸载干净,配置文件不要乱改,否则后面的discuz论坛没有图形显示以及各种报错 ,就很烦

2、mysql编译安装

第一步、安装mysql环境依赖包

yum -y install \ncurses \'//字符终端的包,方便终端操作'ncurses-devel \bison \'//函数库'cmake'//没有configure,使用cmake'创建用户useradd -s /usr/sbin/nologin mysql

第二步、cmake配置和make和make install

解压mysql-boost-5.7.20.tar.gz到opt目录下'//boost是5.7版本的特性'进入mysql1-57.20目录cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \'//sock;通讯文件,连接数据库,通讯协议的载体'-DSYSCONFDIR=/etc \'//配置目录指向etc'-DSYSTEMD_PID_DIR=/usr/local/mysql \'//pid文件位置'-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 \'//指定boost位置'-DWITH_SYSTEMD=1'//守护进程'make & make install

第三步!!重点!设置/usr/local/mysql目录的权限

chown -R mysql.mysql /usr/local/mysql

第四步、编辑配置文件

cd /etcvim f'//将内容全部删除,添加以下内容'[client]port = 3306default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysql]port = 3306default-character-set=utf8socket=/usr/local/mysql/mysql.sock[mysqld]user = mysqlbasedir = /usr/local/mysqldatadir=/usr/local/mysql/dataport = 3306character_set_server=utf8pid-file = /usr/local/mysql/mysqld.pidsocket = /usr/local/mysql/mysql.sockserver-id = 1sql_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

第五步、设置环境变量改完记得source加载

echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profileecho 'export PATH' >> /etc/profilesource /etc/profile

第六步、初始化数据库

cd /usr/local/mysql/执行bin/mysqld \--initialize-insecure \--user=mysql \--basedir=/usr/local/mysql \--datadir=/usr/local/mysql/data cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

第七步、开启数据库,检查状态

systemctl enable mysqldsystemctl start mysqldsystemctl stop mysqldsystemctl status mysqldnetstat -ntap |grep mysqld'//应该查出来3306端口'

第八步、设置mysql密码

mysqladmin -u root -p password '//刚开始没密码是空的直接回车,然后输入密码abe123,再次确认密码'尝试登录数据库mysql -u root -p '//这个命令敲下,提示要输入密码,这个就是刚才设置的密码abc123'

3、PHP编译安装

第一步、安装环境包

yum -y install \libjpeg \libjpeg-devel \libpng libpng-devel \freetype freetype-devel \libxml2 \libxml2-devel \zlib zlib-devel \curl curl-devel \openssl openssl-devel

第二步编译安装

cd /opttar xjvf php-7.1.10.tar.bz2'//将下载的软件包解压到/opt'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-zipmake && make install

第三步、配置PHP的三个配置文件

php有三个配置文件

php.ini核心配置文件

php-fpm.conf进程服务配置文件www.conf 扩展配置文件

cp php.ini-development /usr/local/php/lib/php.inivi /usr/local/php/lib/php.ini'//找到以下两行的位置,修改这两行'mysql.default_socket = /usr/local/mysql/mysql.sockdate.timezone = Asia/Shanghai'//找到后,前方的;注释要去掉'/usr/local/php/bin/php -m/验证安装的模块

第四步、创建软链接

/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini[root@localhost etc]# netstat -natp |grep 9000tcp 00 127.0.0.1:90000.0.0.0:*LISTEN32236/php-fpm: mast ln -s /usr/local/php/bin/* /usr/local/bin/ps aux | grep -c "php-fpm”//结果[root@localhost etc]# ln -s /usr/local/php/bin/* /usr/local/bin/[root@localhost etc]# ps aux |grep -c "php-fpm"

第五步、编辑,让nginx支持PHP功能

vi /usr/local/nginx/conf/nginx.conf //找到下面字段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;include fastcgi_params;}'//用/usr/local/nginx/html替换原来的路径vi /usr/local/nginx/html/index.php<?phpphpinfo();?>systemctl restart nginx在网页测试http://192.168.110.132/index.php

第六步、测试数据库工作是否正常

mysq1 -u root -p ##输入abc123密码CREATE DATABASE bbs;GRANT all ON bbs.* To 'bbsuser'@'%' IDENTIFIED BY 'admin123';GRANT all ON bbs.* To 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';flush privileges;vi /usr/local/nginx/html/index.php ###原来的测试页内容更改如下<?php$link=mysqli_connect('192.168.197.192','bbsuser','admin123');if($link) echo"<h1>Success!!</h1>";else echo "Fail!!";?>systemctl restart nginx在网页测试http://192.168.110.132/index.php

第七步 、验证

4、搭建Discuz论坛

第一步、按解压论坛安装包

cd/optunzip Discuz_X3.4_SC_UTF8.zip -d /tmpcd /tmp/dir_SC_UTF8/

第二步、设置论坛权限

cp -r upload /usr/local/nginx/html/bbscd /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/

第三步、访问论坛

http://192.168.110.132/bbs/install/index.php数据库服务器:localhost #本地架设就用 localhost,如果不是在本机上就要填写IP地址和端口数据库名字户名:bbsuser管理员账号:admin密码:admin123http://192.168.110.132/bbs/admin.php//管理后台账户:admin密码:admin123访问论坛 http://192.168.110.132/bbs/index.php

5、验证

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。