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-----

相关推荐
闲云一鹤1 天前
nginx 快速入门教程 - 写给前端的你
前端·nginx·前端工程化
chlk1231 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑1 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件1 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
BingoGo1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
深紫色的三北六号2 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash2 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI2 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
于眠牧北2 天前
MySQL的锁类型,表锁,行锁,MVCC中所使用的临键锁
mysql