LNMP搭建:Linux+Nginx+MySQL+PHP

关闭防火墙和核心防护,使用一台机器Node1搭建LNMP

systemctl stop firewalld; setenforce 0

所需源码包:可以去官网下载

编译Nginx

创建/data,在/data/下放源码包

root@Node1 \~\]#:mkdir /data;cd /data

安装依赖包

root@Node1 data\]#:yum -y install pcre-devel zlib-devel gcc gcc-c++ makeyum -y install pcre-devel zlib-devel gcc gcc-c++ make

nginx安装包

root@Node1 data\]#:ls nginx-1.22.0.tar.gz \[root@Node1 data\]#:tar xf nginx-1.22.0.tar.gz \[root@Node1 data\]#:ls nginx-1.22.0 nginx-1.22.0.tar.gz

创建运行用户

useradd -M -s /sbin/nologin nginx

编译安装

root@Node1 data\]#:cd nginx-1.22.0 \[root@Node1 nginx-1.22.0\]#:./configure \\ \> --prefix=/usr/local/nginx \\ \> --user=nginx \\ \> --group=nginx \\ \> --with-http_stub_status_module \[root@Node1 nginx-1.22.0\]#:make -j2 \&\& make install

软链接

root@Node1 nginx-1.22.0\]#:ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

自启动文件

root@Node1 nginx-1.22.0\]#:tee /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

> 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

重新加载和启动nginx

root@Node1 system\]#:systemctl daemon-reload \[root@Node1 system\]#:systemctl start nginx

yum安装MySQL

源文件

root@Node1 data\]#:tee /etc/yum.repos.d/mysql.repo \<\ \[mysql57-community

> name=MySQL 5.7 Community Server

> baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/

> enabled=1

> gpgcheck=0

> EOF

yum社区办数据库

root@Node1 data\]#:yum -y install mysql-community-server

启动mysql

root@Node1 data\]#:systemctl start mysqld

过滤密码登录mysql

root@Node1 data\]#:grep password /var/log/mysqld.log 2024-06-14T08:27:11.808743Z 1 \[Note\] A temporary password is generated for root@localhost: ev-lAgi)K2Z2 最后的就是密码,包括特殊符号:ev-lAgi)K2Z2

登录数据库,密码策略改密码

root@Node1 data\]#:mysql -uroot -p"ev-lAgi)K2Z2" ··· mysql\> set global validate_password_policy=0; Query OK, 0 rows affected (0.00 sec) mysql\> set global validate_password_length=1; Query OK, 0 rows affected (0.00 sec) mysql\> alter user root@'localhost' identified by 'Admin@123'; #修改密码 Query OK, 0 rows affected (0.00 sec)

Ctrl+D退出数据库

编译安装PHP

安装包准备

root@Node1 data\]#:ls nginx-1.22.0 nginx-1.22.0.tar.gz php-7.1.10.tar.bz2 \[root@Node1 data\]#:tar xf php-7.1.10.tar.bz2 \[root@Node1 data\]#:ls nginx-1.22.0 nginx-1.22.0.tar.gz php-7.1.10 php-7.1.10.tar.bz2

安装依赖环境

root@Node1 data\]#: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

编译安装

root@Node1 data\]#:cd php-7.1.10/ \[root@Node1 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 \[root@Node1 php-7.1.10\]#:make -j2 \&\& make install

软链接

root@Node1 php-7.1.10\]#:ln -s /usr/local/php/bin/\* /usr/local/bin/ \[root@Node1 php-7.1.10\]#:ln -s /usr/local/php/sbin/\* /usr/local/sbin/

修改三个php配置文件:php.ini主配置文件,php-fpm.conf进程服务配置文件,www.conf扩展配置文件

root@Node1 php-7.1.10\]#:cp /data/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini vim /usr/local/php/lib/php.ini mysqli.default_socket = /var/lib/mysql/mysql.sock #1170行,定位命令行模式:1170G跳到1170行 date.timezone = Asia/Shanghai #939行,时区,上海 #修改第二个配置文件: \[root@Node1 php-7.1.10\]#:cd /usr/local/php/etc/ \[root@Node1 etc\]#:cp -a php-fpm.conf.default php-fpm.conf vim php-fpm.conf pid = run/php-fpm.pid #开启第17行 #修改第三个配置文件: \[root@Node1 etc\]#:cd /usr/local/php/etc/php-fpm.d/ \[root@Node1 php-fpm.d\]#:cp -a www.conf.default www.conf #把这个php-fpm.service文件复制到/usr/lib/systemd/system/下 \[root@Node1 php-fpm.d\]#:cd /data/php-7.1.10/sapi/fpm/ \[root@Node1 fpm\]#:cp php-fpm.service /usr/lib/systemd/system/php-fpm.service

root@Node1 fpm\]#:systemctl daemon-reload \[root@Node1 fpm\]#:systemctl restart php-fpm.service 可以测试一下,监听的是9000端口,发现已开启 \[root@Node1 fpm\]#:ss -natp \| grep 9000 LISTEN 0 128 127.0.0.1:9000 \*:\* users:(("php-fpm",pid=15513,fd=0),("php-fpm",pid=15512,fd=0),("php-fpm",pid=15511,fd=6))

配置nginx支持php解析

修改主配置文件设置路径和添加主页面

root@Node1 fpm\]#:vim /usr/local/nginx/conf/nginx.conf 43 location / { 44 root html; 45 index index.html index.htm index.php; #在45行后添加一个index.php文件 46 } 65 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; #69行指定路径,去后端服务器的哪个目录下找php程序,比如论坛,博客安装程序 70 include fastcgi_params; 71 }

重启并设置页面,在浏览器上访问验证

root@Node1 fpm\]#:nginx -s reload \[root@Node1 fpm\]#:cd /usr/local/nginx/html \[root@Node1 html\]#:vim index.php \

在浏览器上访问:192.168.114.10/index.php。出现以下页面就算成功。

数据库的创建和用户的创建

root@Node1 html\]#:mysql -uroot -p"Admin@123" ··· mysql\> CREATE DATABASE bbs; Query OK, 1 row affected (0.00 sec) mysql\> GRANT all ON bbs.\* TO 'bbsuser'@'%' IDENTIFIED BY 'Admin@123'; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql\> GRANT all ON bbs.\* TO 'bbsuser'@'localhost' IDENTIFIED BY 'Admin@123'; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql\> flush privileges; Query OK, 0 rows affected (0.00 sec)

ctrl + D退出

准备页面,并在浏览器测试

root@Node1 html\]#:vim /usr/local/nginx/html/index.php \Success!!\"; else echo "Fail!!"; ?\>

浏览器测试:数据库连接成功!

安装论坛

源码包放在/data/下

root@Node1 html\]#:cd /data \[root@Node1 data\]#:unzip Discuz_X3.4_SC_UTF8.zip \[root@Node1 data\]#:ls **dir_SC_UTF8** nginx-1.22.0 php-7.1.10 说明.htm **Discuz_X3.4_SC_UTF8.zip** nginx-1.22.0.tar.gz php-7.1.10.tar.bz2 \[root@Node1 data\]#:cp -r dir_SC_UTF8/upload/ /usr/local/nginx/html/bbs

修改论坛目录权限

root@Node1 data\]#:cd /usr/local/nginx/html/bbs/ \[root@Node1 bbs\]#:chown -R nobody ./config/ \[root@Node1 bbs\]#:chown -R nobody ./data/ \[root@Node1 bbs\]#:chown -R nobody ./uc_client/ \[root@Node1 bbs\]#:chown -R nobody ./uc_server/

在浏览器上访问数据库:192.168.114.10/bbs

点击我同意

都是对钩,就是成功。点击下一步:

默认全新安装,点击下一步

数据库名bbs,数据库用户名bbsuser,数据库密码Admin@123,管理员密码123456,重复密码123456

点击下一步

最后出现这个界面就是成功。

----end-----

相关推荐
m0_6948455744 分钟前
服务器如何配置防火墙规则开放/关闭端口?
linux·服务器·安全·云计算
阿巴~阿巴~1 小时前
Linux基本命令篇 —— alias命令
linux·服务器·bash
Brookty1 小时前
【MySQL】JDBC编程
java·数据库·后端·学习·mysql·jdbc
_代号0072 小时前
MySQL梳理一:整体架构概览
后端·mysql
好名字更能让你们记住我2 小时前
Linux多线程(十二)之【生产者消费者模型】
linux·运维·服务器·jvm·windows·centos
码不停蹄的玄黓2 小时前
深入拆解MySQL InnoDB可重复读(RR)隔离级别:MVCC+临键锁如何「锁」住一致性?
数据库·mysql·可重复读
学习编程的gas3 小时前
Linux开发工具——gcc/g++
linux·运维·服务器
pltrue3 小时前
Go 重构案例分享:订单创建逻辑重构
go·php
嵌入式成长家3 小时前
ubuntu rules 使用规则
linux·ubuntu·rules 使用规则
_可乐无糖3 小时前
AWS WebRTC: 判断viewer端拉流是否稳定的算法
linux·服务器·webrtc·aws