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

重新加载启动php

[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

<?php
phpinfo();
?>

在浏览器上访问: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

<?php
$link=mysqli_connect('192.168.114.10','bbsuser','Admin@123');
if($link) echo "<h1>Success!!</h1>";
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-----

  • 21
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以通过以下步骤在Linux上使用LNMP堆栈搭建WordPress网站: 1. 安装LNMP:首先,安装NginxMySQLPHP。可以使用源码编译安装,也可以使用软件包管理器如apt或yum安装。 2. 配置Nginx:编辑Nginx配置文件,通常位于/etc/nginx/nginx.conf。将服务器块中的root目录设置为WordPress的安装目录。 3. 配置MySQL:安装MySQL后,运行安全性脚本以设置root密码和其他安全选项。然后创建一个新的MySQL数据库和用户,为WordPress使用。 4. 安装PHP:确保安装了所需的PHP版本和相关扩展。您可以使用php-fpm来处理PHP请求。 5. 下载和配置WordPress:从WordPress官方网站下载最新的WordPress压缩包。解压缩文件并将其移动到Nginx的根目录。然后,复制wp-config-sample.php文件并重命名为wp-config.php。编辑wp-config.php文件,填入MySQL数据库的详细信息。 6. 设置文件权限:确保WordPress目录和文件具有适当的权限,以便NginxPHP-FPM可以读取和写入。 7. 配置Nginx虚拟主机:创建一个新的Nginx虚拟主机配置文件,将WordPress站点的域名指向正确的目录。 8. 重启服务:重新启动NginxPHP-FPM服务以使更改生效。 9. 完成安装:在浏览器中访问您的WordPress域名,按照安装向导完成WordPress的设置。 这些是大致的步骤,根据您的Linux发行版和个人偏好,可能会有一些细微的差异。您可以在相关文档和教程中找到更详细的指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值