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 小时前
x86 平台使用 buildx 基于源码构建 MySQL Wsrep 5.7.44 镜像
数据库·mysql·galera·wsrep
沙漏无语3 小时前
(二)TIDB搭建正式集群
linux·数据库·tidb
思麟呀3 小时前
计算机网络初步认识
linux·计算机网络
浩子智控4 小时前
zynq嵌入式开发(2)—基本开发测试实例
linux·嵌入式硬件·硬件架构
闻道且行之4 小时前
Nginx 安装、做成服务及 HTTPS 配置全流程
linux·运维·nginx·https
昵称只能一个月修改一次。。。4 小时前
Linux系统编程:网络编程
linux·服务器·网络
猫猫的小茶馆4 小时前
【Linux 驱动开发】Linux 内核启动过程详解
linux·c语言·arm开发·驱动开发·stm32·单片机·mcu
人工智能训练4 小时前
Qwen3.5 开源全解析:从 0.8B 到 397B,代际升级 + 全场景选型指南
linux·运维·服务器·人工智能·开源·ai编程
小哥哥咯4 小时前
Oracle 19c 与 MySQL 8.0 字符串数据类型对比
mysql·oracle