2021-10-13 linux学习-部署(二十) 之LNMP动态网站架构

LNMP动态网站架构

LNMP动态网站部署架构是一套由Linux + Nginx + MySQL + PHP组成的动态网站系统解决方案,具有免费、高效、扩展性强且资源消耗低等优良特性,目前正在被广泛使用。

下面的实验将用源码包进行部署,在使用源码包安装服务程序之前,首先要让安装主机具备编译程序源码的环境。这需要具备C语言、C++语言、Perl语言的编译器,以及各种常见的编译支持函数库程序。把下面列出的这些软件包都统统安装上

准备工作

1 安装环境

dnf -y install apr* autoconf automake numactl bison bzip2-devel cpp curl-devel fontconfig-devel freetype-devel gcc gcc-c++ gd-devel gettext-devel kernel-headers keyutils-libs-devel krb5-devel libcom_err-devel  libpng-devel  libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libxml2-devel libXpm* libxml* libXaw-devel libXmu-devel libtiff* make openssl-devel patch pcre-devel perl php-common php-gd telnet zlib-devel libtirpc-devel gtk* ntpstat na* bison* lrzsz cmake ncurses-devel libzip-devel libxslt-devel gdbm-devel readline-devel gmp-devel

2 修改虚拟机网卡为桥接模式,ipv4设置为DHCP

3 下载所需的源码包

mkdir /lnmp
cd /lnmp
wget https://www.linuxprobe.com/Software/rpcsvc-proto-1.4.tar.gz
wget https://www.linuxprobe.com/Software/nginx-1.16.0.tar.gz
wget https://www.linuxprobe.com/Software/mysql-8.0.18.tar.xz
wget https://www.linuxprobe.com/Software/php-7.3.5.tar.gz
wget https://www.linuxprobe.com/Software/wordpress.tar.gz

4 安装rpcsvc-proto源码包

tar xzvf rpcsvc-proto-1.4.tar.gz
cd rpcsvc-proto-1.4/
./configure
make
make install
cd ..

一 配置Nginx服务

1 创建用于管理网站服务的系统账户

useradd nginx -M -s /sbin/nologin

-M 不创建家目录

-s 指定Shell

/sbin/nologin 不可登录主机

2 编译安装Nginx网站服务程序

tar zxvf nginx-1.16.0.tar.gz
cd nginx-1.16.0/
./configure --prefix=/usr/local/nginx --with-http_ssl_module
make
make install
cd ..

--prefix= 指定目录

--with-http_ssl_module 开启Nginx服务的SSL加密模块

3 修改配置文件

vim /usr/local/nginx/conf/nginx.conf
2 user  nginx nginx;
45             index  index.php index.html index.htm;
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;
70             include        fastcgi_params;
71         }

4 将Nginx命令路径加入到PATH变量中

vim ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/local/nginx/sbin

export PATH

加载配置文件

source ~/.bash_profile

启动nginx服务

nginx

5 验证

在浏览器输入127.0.0.1查看nginx主页

二 配置Mysql服务

1 创建用于管理数据库的系统账户

useradd mysql -M -s /sbin/nologin

2 解压MySQL安装软件包。

tar xvf mysql-8.0.18.tar.xz

将解压出的程序目录改名并移动到/usr/local目录下,对其进行初始化操作后便可使用

mv mysql-8.0.18-linux-glibc2.12-x86_64 mysql
mv mysql /usr/local

3 创建存放实际数据库文件的data目录

cd /usr/local/mysql
mkdir data

4 对目录进行授权,初始化MySQL服务程序

chown -R mysql:mysql /usr/local/mysql
cd bin
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
2021-10-13T15:40:35.350339Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.18) initializing of server in progress as process 64568
2021-10-13T15:40:38.406385Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: qmu<7Hx!noNC

记住分配的密码是qmu<7Hx!noNC。

5 将MySQL命令路径加入到PATH变量中

vim ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/local/nginx/sbin:/usr/local/mysql/bin

export PATH

加载配置文件

source ~/.bash_profile

将启动脚本mysql.server放入到/etc/init.d目录中,让服务器每次重启后都能自动启动数据库,并给予可执行权限。

cd /usr/local/mysql
cp -a support-files/mysql.server /etc/init.d/
chmod a+x /etc/init.d/mysql.server

libtinfo.so.5文件是MySQL数据库在8.0版本后新添加的重要的函数库文件,但默认不存在,需要将libtinfo.so.6.1文件复制过来或者作为链接文件才能正常启动

ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5

6 启动服务

/etc/init.d/mysql.server start

登录数据库

mysql -u root -p

初始化密码,数据库作为系统重要的组成服务,密码位数不建议少于20位。例如,下面将密码修改为“PObejCBeDzTRCncXwgBy”。

Enter password: 输入初始化时给的原始密码
mysql> alter user 'root'@'localhost' identified by 'PObejCBeDzTRCncXwgBy'; 

修改user表单的密码值

mysql> use mysql;
mysql> show tables;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'PObejCBeDzTRCncXwgBy';

创建数据库

mysql> create database linuxcool;

退出数据库

mysql> exit

三 配置php服务

1 解压php安装包软件并编译安装。

cd /lnmp
tar xvf php-7.3.5.tar.gz
cd php-7.3.5/
./configure --prefix=/usr/local/php --enable-fpm --with-mysqli --with-curl --with-pdo_mysql --with-pdo_sqlite --enable-mysqlnd --enable-mbstring --with-gd

--prefix= 指定安装路径

--with 开启对数据库的支持模块

make
make install
make clean

2 将生成的php服务配置文件复制到安装目录中,让其生效

cp php.ini-development /usr/local/php/lib/php.ini

复制php-fpm的配置文件

cd /usr/local/php/etc/
mv php-fpm.conf.default php-fpm.conf

复制一个模板文件到php-fpm.d的目录中,用于后续控制网站的连接性能

mv php-fpm.d/www.conf.default php-fpm.d/www.conf

3 把php服务加入到启动项中

cd /lnmp/php-7.3.5
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

修改权限

chmod 755 /etc/init.d/php-fpm

4 加强安全性

编辑php.ini配置文件,在第310行的disable_functions参数后面追加上要禁止的功能

vim /usr/local/php/lib/php.ini
310 disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

5 启动服务

/etc/init.d/php-fpm start

搭建Wordpress博客测试

为了检验LNMP动态网站架构环境是否配置成功,可以在上面部署WordPress博客系统,然后查看效果。

1 清空Nginx服务程序根目录,将WordPress解压后的网站文件复制进去

cd ..
rm -f /usr/local/nginx/html/*
tar xzvf wordpress.tar.gz 
mv wordpress/* /usr/local/nginx/html/

2 设置目录所有权的身份及可读写的权限

chown -Rf nginx:nginx /usr/local/nginx/html
chmod -Rf 777 /usr/local/nginx/html

3 进入Wordpress博客,连接数据库

在浏览器地址栏输入127.0.0.1,点击-现在就开始,数据库名:

linuxcool  用户名:root  密码:PObejCBeDzTRCncXwgBy 点击提交-现在安装

4 注册网站信息

站点标题 用户名 密码 电子邮箱可根据需要自行填写,填写完成后点击安装WordPress-登录

5 登录网站

输入用户名和密码登录网站,就可以管理Workpress博客了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鹅一只

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值