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博客了