Nginx 搭建 lnmp

一.编译安装Nginx

1.新建用户前期准备

复制代码
官网下载nginx安装包
https://nginx.org/en/download.html
yum -y install gcc pcre-devel openssl-devel zlib-devel openssl  openssl-devel
#安装依赖包   
useradd -M -s /sbin/nologin nginx
#新建nginx用户便于管理

2.切换到/opt目录下,将下载好的包拖到/opt目录下,解压包

复制代码
cd /opt/
tar zxvf nginx-1.22.0.tar.gz

3.切换到nginx-1.22.0.tar.gz下编译安装nginx

复制代码
cd nginx-1.22.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module


./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module  --without-http_rewrite_module --without-http_gzip_module --with-pcre

make -j2 && make install

4.将nginx做一个软链接

复制代码
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

5.添加nginx系统服务

复制代码
tee /lib/systemd/system/nginx.service   <<eof
[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
eof

6.启动nginx服务

复制代码
systemctl   start  nginx

二.编译安装mysql

1.前期准备,安装mysql依赖环境包,准备好安装包mysql-boost-5.7.20.tar.gz

创建运行用户

复制代码
yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel   ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel

useradd -M -s /sbin/nologin  mysql

2.切换到/opt目录下,将安装包拖到/opt目录下,解压安装包

复制代码
cd /opt
tar zxvf mysql-boost-5.7.20.tar.gz

3.切换到编译安装目录,编译安装mysql

复制代码
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

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \		指定mysql的安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ 指定mysql进程监听套接字文件(数据库连接文件)的存储路径
-DSYSCONFDIR=/etc \                             指定配置文件的存储路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \            指定进程文件的存储路径
-DDEFAULT_CHARSET=utf8  \                       指定默认使用的字符集编码,如 utf8
-DDEFAULT_COLLATION=utf8_general_ci \			指定默认使用的字符集校对规则
-DWITH_EXTRA_CHARSETS=all \						指定支持其他字符集编码
-DWITH_INNOBASE_STORAGE_ENGINE=1 \              安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \               安装ARCHIVE存储引擎 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \             安装BLACKHOLE存储引擎 
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \            安装FEDERATED存储引擎 
-DMYSQL_DATADIR=/usr/local/mysql/data \         指定数据库文件的存储路径
-DWITH_BOOST=/usr/local/boost \                 指定boost的路径,若使用mysql-boost集成包安装则-DWITH_BOOST=boost
-DWITH_SYSTEMD=1								生成便于systemctl管理的文件

注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧


make  -j2 &&  make  install

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

5、更改mysql安装目录和配置文件的属主属组

复制代码
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

6.设置路径环境变量

复制代码
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile	
source /etc/profile

7.初始化数据库

复制代码
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

8.添加mysql系统服务

复制代码
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld

9.修改mysql的登录密码,并远程登录

复制代码
mysqladmin -u root -p password "admin123" 	
给root账号设置密码为abc123,提示输入的是原始密码(为空)要求输入的是原密码直接回车即可
授权远程登录
mysql -u root -p

三.编译安装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

2.切换到/opt目录下解压安装包

复制代码
cd /opt
tar jxvf php-7.1.10.tar.bz2

3.切换到编译安装目录下,编译安装

复制代码
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 -j2 && make install

4.路径优化,做软链接

复制代码
ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/

5.调整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    /var/lib/mysql/mysql.sock(yum安装)
--939行--取消注释,修改
date.timezone = Asia/Shanghai
复制代码
#调整进程服务配置文件:
cd /usr/local/php/etc/
cp  php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
--17行--去掉";"注释
pid = run/php-fpm.pid
复制代码
#调整扩展配置文件:
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf

6.启动php-fpm

复制代码
/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
netstat -anpt | grep 9000
 
#PHP-FPM(FastCGI Process Manager:FastCGI 进程管理器)是一个 PHPFastCGI 管理器, 由于Nginx服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 进程进行解析。

cd /opt/php-7.1.10/sapi/fpm
cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
systemctl restart php-fpm.service

四.配置Nginx 支持PHP解析

复制代码
vim /usr/local/nginx/conf/nginx.conf
在45行后添加  index.php

--65行--取消注释,修改
location ~ \.php$ {
	root           html;   $document_root
	fastcgi_pass   127.0.0.1:9000;
	fastcgi_index  index.php;
	fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;	#将 /scripts 修改为nginx的工作目录
   #fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;  #$document_root 代表当前请求在root指令中指定的值
	include        fastcgi_params;
}
 
systemctl restart nginx.service

验证PHP 测试页
vim /usr/local/nginx/html/index.php
<?php
phpinfo();
?>

验证lnmp的是否搭建成功

验证数据库工作是否正常
mysql -u root -p
CREATE DATABASE zxy;
GRANT all ON zxy.* TO 'zxyuser'@'%' IDENTIFIED BY 'admin123';
GRANT all ON zxy.* TO 'zxyuser'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;

vim /usr/local/nginx/html/index.php      		#替换原来的测试页内容
<?php
$link=mysqli_connect('192.168.240.11','zxyuser','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>
 
浏览器访问
http://192.168.240.11/index.php

五.安装论坛

复制代码
【部署 Discuz!社区论坛 Web 应用】
cd /opt
unzip Discuz_X3.4_SC_UTF8.zip  
cd /opt/dir_SC_UTF8/
cp -r upload/ /usr/local/nginx/html/zxy/

调整论坛目录的权限:
cd /usr/local/nginx/html/bbs/

chown -R nobody ./config/
chown -R nobody ./data/
chown -R nobody ./uc_client/
chown -R nobody ./uc_server/

论坛页面访问

http://192.168.240.11/zxy/install/index.php


数据库服务器:localhost ###本地架设就用localhost,如何不是在在本机上就要填写IP地址和端口号

数据库名字:zxy

数据库用户名:zxyuser

数据库密码:admin123

管理员账号:admin

管理员密码:admin123


安装完后访问论坛页面:

http://192.168.240.11/zxy/index.php

http://192.168.240.11/zxy/admin.php

相关推荐
漂流瓶jz6 小时前
Webpack如何实现万物皆可import?loader的使用/配置/手写实践
前端·javascript·webpack
ZC跨境爬虫7 小时前
跟着 MDN 学CSS day_41:显式轨道、隐式网格与区域命名放置
前端·javascript·css·ui·交互
稳联技术老娜7 小时前
DeviceNet主站怎么连接西门子PLC,Profinet网关配置手册(那智机器人)
服务器·网络·数据库
9分钟带帽7 小时前
linux_系统开机自动执行shell脚本
linux·服务器
修己xj8 小时前
告别手动存图!这款叫 Fatkun 的浏览器插件,简直是素材收集神器
前端
袋鼠云数栈8 小时前
从前端到基础设施,ACOS 如何打通企业全链路可观测
运维·前端·人工智能·数据治理·数据智能
AskHarries8 小时前
系统提示词、开发者指令和用户输入的优先级
java·前端·数据库
Moment9 小时前
长上下文会最终杀死 Rag 吗?
前端·javascript·后端
消失在人海中9 小时前
oracle 数据库多表关联查询
服务器·数据库·oracle
qcx239 小时前
【系统学AI】25 论文导读 ①:两篇改变 AI 的开山之作——Attention Is All You Need & ReAct
前端·人工智能·react.js·transformer