LNMP部署

本文详细介绍了在Linux环境下搭建基础开发环境,包括检查系统状态、关闭防火墙、配置yum源、安装基础软件包,以及部署LNMP(Nginx、MySQL、PHP)的过程,最后演示了如何配置DNS和PHP-FPM以支持Discuz论坛的安装。
摘要由CSDN通过智能技术生成
一 LINUX 环境搭建
1、检查系统是否正常

more /var/log/messages(检查有无系统级错误信息)
dmesg (检查硬件设备是否有错误信息)
cat /proc/cpuinfo (检查 CPU 频率是否正常)
top (按 1 检测 CPU 核数是否正常,内存大小是否正常)
ifconfig(检查网卡设置是否正确)
ping www.baidu.com(检查网络是否正常)

2,关闭防火墙

systemctl stop firewalld

关闭selinux安全子系统 并设置参数

setenforce 0

可以使用getenforce检查是否关闭

vi /etc/selinux/config 修改第七行为permissive

请添加图片描述

3 ,yum源配置

新安装的虚拟机,当前需要先配置本地源才可以使用yum

创建一个挂载点 mkdir /opt/centos

mount -o loop /dev/sr0 /mnt/

cp -rfv /mnt/* /opt/centos

rm -rf /etc/yum.repos.d/*

vi /etc/yum.repos.d/local.repo

[centos]

name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1

然后

yum clean all 清空原有yum缓存ls

yum makecache 建立元数据

echo ‘nameserver 114.114.114.114’ >> /etc/resolv.conf

配置网络源yum

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

yum clean all

yum makecache

yum -y update 升级软件包

4,配置基础环境

基础开发环境

yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng libpng-devel libtiff-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel fontconfig-devel zlib zlib-devel libevent-devel gcc gcc-c++ flex bison bzip2-devel libXpmlibXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2 libxml2-devel imake autoconf automake screen sysstat compat-libstdc+±33 curl curl-devel

请添加图片描述

二.开始部署LNMP
如果yum仓库没有就执行以下命令

wget -O ./ https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.1-1.el7.ngx.x86_64.rpm

rpm -ivh nginx-1.20.1-1.el7.ngx.x86_64.rpm

如果yum仓库有资源包 就执行以下命令安装nginx

yum -y install nginx

请添加图片描述

开启nginx

systemctl start nginx

查看nginx的进程是否产生

ps -ef | grep nginx

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

查看 端口号是否开启

netstat -tunlp | grep 80

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

查看nginx的文件

rpm -ql nginx | grep html 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

nginx 动态站点部署

MySQL部署
安装mysql软件包

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

解压mysql软件包

tar -xf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

解压完成后使用ls查看

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

进入目录 cd mysql-8.0.20-linux-glibc2.12-x86_64

将mysql的bin目录的路径写在环境变量中(这里的环境变量要根据自己的mysql的bin目录的地址来写)

vim /etc/profile

export PATH=$PATH:/root/mysql-8.0.20-linux-glibc2.12-x86_64/bin

然后source /etc/profile 才会生效

使用echo $PATH查看是否生效

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

显示已经成功写入环境变量

可以用mysql -V 如果显示mysql的版本号说明成功外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

创建用户,组,初始化数据库降低mysql的运行权限

groupadd mysql

useradd -r -g mysql mysql -s /sbin/nologin

目录初始化

mkdir -p /data/mysql8_data

更改属主和数组

chown -R mysql:mysql /data/mysql8_data

更改模式

chmod -R 750 /data/mysql8_data

修改配置文件

在/usr/local/etc/下写一个配置文件my.cnf

vi /usr/local/etc/my.cnf

[mysql]

default-character-set=utf8mb4
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
server-id = 3306
user = mysql
socket = /tmp/mysql.sock

basedir = /usr/local/mysql8

datadir = /data/mysql8_data/mysql
log-bin = /data/mysql8_data/mysql/mysql-bin
innodb_data_home_dir =/data/mysql8_data/mysql
innodb_log_group_home_dir =/data/mysql8_data/mysql

log-error =/data/mysql8_data/mysql/mysql.log
pid-file =/data/mysql8_data/mysql/mysql.pid

character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1

skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
#query_cache_size = 128M

tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
binlog_format=mixed
binlog_expire_logs_seconds =864000

default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout

初始化数据库

mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize-insecure

完成后可以查看数据库是否生成内置的一些库表

ls /data/mysql8_data/mysql

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

nohup mysqld_safe --defaults-file=/usr/local/etc/my.cnf &

查看3306端口是否启用

netstat -tunlp | grep 3306

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

mysql -uroot 登录

修改密码为123456,

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;

让密码直接生效

flush privileges;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

成功登录

创建用户 root 允许任何地点登录

create user ‘root’@‘%’ ;

设置首次密码

ALTER USER ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;

授权所有用户权限

GRANT ALL PRIVILEGES ON . TO ‘root’@‘%’;

刷新权限

flush privileges;

连接MySQL

创建一个名为discuz的数据库

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

四,PHP部署

php要配置第三方源

sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

sudo yum -y install yum-utils

sudo yum-config-manager --enable remi-php74

sudo yum update

sudo yum -y install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json

使用php -V查看php版本号

php -v

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

修改php启动进程

修改php,启动进程,权限问题

sed -i ‘/^user/c user = nginx’ /etc/php-fpm.d/www.conf

sed -i ‘/^group/c group = nginx’ /etc/php-fpm.d/www.conf

创建用户

useradd -s /sbin/nologin nginx

开启php-fpm服务

systemctl start php-fpm

创建一个php脚本

cat > info.php

<?php echo "www.yuchaoit.cn"; phpinfo(); ?>

测试

nginx反向代理

cd /etc/nginx/conf.d/ (注意千万不要写到nginx下,浏览器无法访问或者端口没有开启就想看是否是自己的路径写错了)

创建一个conf文件

vi discuz.conf

server{
listen 10020;
server_name _;
###### #静态请求
root /discuz;
index index.php index.html;
###### #动态请求
location ~ \.php$ {
root /discuz;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
include fastcgi_params;
}
}
重启nginx服务

systemctl restart nginx

并查看nginx是否启用了一个10020的端口号

netstat -tunlp | grep nginx

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

创建discuz目录

mkdir /discuz

cd /discuz

测试nginx加上php是否可以正常运行

创建一个php脚本

vi hello.php

<?php echo "hello world" phpinfo(); ?>

在宿主机浏览器中访问

成功访问运行

下载discuz源码包

wget https://gitee.com/Discuz/DiscuzX/attach_files/1345207/download

解压源码包

unzip Discuz_X3.5_SC_UTF8_20230316.zip

将upload 下的所有源码移动到discuz下

mv /root/upload/* /discuz

然后在浏览器中输入虚拟机ip:10020 直接回车

进入安装界面发现用户www没有r权限 提权

chown -R www.www /discuz

然后刷新浏览器

如果第一步显示无法解析主机地址就是因为没有配置dns服务器地址(在其他配置无误的情况下)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

#配置的dns服务器

echo 'nameserver 114.114.114.114

om/Discuz/DiscuzX/attach_files/1345207/download

解压源码包

unzip Discuz_X3.5_SC_UTF8_20230316.zip

将upload 下的所有源码移动到discuz下

mv /root/upload/* /discuz

然后在浏览器中输入虚拟机ip:10020 直接回车

进入安装界面发现用户www没有r权限 提权

chown -R www.www /discuz

然后刷新浏览器

如果第一步显示无法解析主机地址就是因为没有配置dns服务器地址(在其他配置无误的情况下)

[外链图片转存中…(img-sfXM2cVr-1705668122822)]

#配置的dns服务器

echo 'nameserver 114.114.114.114

nameserver 8.8.8.8’ >> /etc/resolv.conf

  • 19
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值