0
点赞
收藏
分享

微信扫一扫

LNMP平台的搭建及应用

柠檬果然酸 2022-01-10 阅读 64

1、文件位置

系统命令:一般在/bin 或/sbin 目录中 ,或者是 shell 内部命令。负责完成系统管理工作

应用程序:一般位于/usr/bin 或者/usr/sbin 目录中。解决某个特定的应用任务。

文件类型

保存目录

普通执行程序文件

/usr/bin

服务器执行程序文件和管理程序文件

/usr/sbin

应用程序配置文件

/etc

日志文件

/var/log

应用程序文档文件

/usr/share/doc

应用程序手册页文件

/usr/share/man

2、rpm 命令

1)安装

格式:rpm [选项] RPM 包文件

常用选项:

-i:安装一个新的 rpm 软件包

-h:以“#”号显示安装的进度

-v:显示安装过程中的详细信息

--force:强制安装所指定的 rpm 软件包

--nodeps:安装软件时,忽略依赖关系

2)升级或更新.rpm 软件包

格式:rpm [选项] RPM 包文件

常用选项:

-U:升级某个 rpm 软件,若原本未装,则进行安装

-F:更新某个 rpm 软件,若原本未装,则放弃安装

--nodeps:升级软件时,忽略依赖关系

3)卸载指定的.rpm 软件包 格式:rpm -e 软件名

--nodeps:卸载软件时,忽略依赖关系

4)查询已安装的.rpm 软件包

格式:rpm -q[子选项] [软件名]

常用子选项命令:

-qa:查看系统中已安装的所有 RPM 软件包列表

-qi:查看指定软件的详细信息

-ql:查询指定软件包所安装的目录、文件列表

-qc:仅显示指定软件包安装的配置文件

-qd:仅显示指定软件包安装的文档文件

5)示例:RPM 包安装方式安装 jdk1.8

a)下载 jdk 文件并上传至系统。到 JDK 官网上下载你想要的 JDK 版本,下载完成之后将需要

安装的 JDK 安装包上传到 Linux 系统指定的文件夹下。我已经将文件上传到 QQ 群,你们也

可以从 QQ 群文件下载。进入下载页面选择文件后登陆下载:

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

有同学可能回想我怎么知道自己的 linux 系统的版本。执行命令:

$cat /proc/vesion b)检测系统 JDK 默认安装包

[hx@myserver ~]$ rpm -qa|grep java

下面的操作需要管理员权限,如果是普通用户登录,确保用户加入了 wheel 组,或者切换为

root 登录。

c)卸载 OpenJDK

再次输入命令 查看卸载情况

d)安装 jdk1.8

进入 jdk 文件上传的目录,执行安装命令。

e)查看安装是否成功 f)配置环境变量并重新加载

修改/etc/profile 文件,再重新加载

3、yum 安装

1)yum 源的获取

yum 安装的本质,其实是 rpm 包安装。使用 yum 命令时,必须依赖于 yum 源,而 yum 源可以

从互联网获取,也可以建立本地的 yum 源。默认情况 yum 源的配置文件是在/etc/yum.repos.d

目录下,打开/etc/yum.repos.d,可以看到 yum 源

a) 远程源配置

b) 本地源的配置

如果无法连接外网,那么就需要建立本地的 yum 源,确认本机是否挂载有 rhel7 的 ISO 镜像

文件。

首先建立一个目录,比如 /media/cdrom,,再将光盘挂载到这个目录。切换到用户主目录,

执行命令:

[hx@myserver ~]$ sudo mkdir -p /media/cdrom

[hx@myserver ~]$ sudo mount /dev/sr0 /media/cdrom 在/etc/yum.repos.d/目录下新建一个 rhel7.repo 的 yum 源文件。

[hx@myserver ~]$sudo vim /etc/yum.repos.d/rhel7.repo

执行命令 yum repolist all 查看一下建立的 yum 源仓库是否建立成功。

清空缓存并重新加载

[hx@myserver ~]$ yum clean all

[hx@myserver ~]$ yum repolist

2)安装应用程序

格式:yum install 软件名 [-y]

-y:如果使用-y,那么在安装软件时命令行就不会出现"Is this ok[y/N]"这条提醒语句了,

更不需要在命令行输入 y 或 N 了,直接安装软件。对于安装有依赖包的软件,yum 命令会直

接匹配依赖包然后直接安装。

3)列出所有软件包的信息或单独一个软件包的信息 4)卸载软件包

5)列出所有已安装的软件包

[hx@myserver ~]$ yum list installed

4、编译安装源码包

1)解压 ,通常是 tar 包文件

解包、释放出源代码文件,习惯上将软件包释放到/usr/local/src/目录,解包后的源代码

文件位置:/usr/local/src/软件名-版本号/

2)配置

./configure

针对当前系统、软件环境,配置好安装参数

典型的配置选项:--prefix=软件安装目录,--prefix 选项是配置安装的路径,如果不配置

该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,

配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱;

如果使用--prefix 选项可以将安装文件放到/usr/local/apache2 目录中,有利于查找、卸

载软件或移植软件,当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把

软件卸载得干干净净,移植软件只需拷贝整个目录到另外一个机器即可;使用./configure

配置时,需要将工作目录切换到软件源码所在的目录; 3)编译

make

将源代码文件变为二进制的可执行程序,用 make 命令

4)安装

make install

使用安装 make install 命令安装程序

示例:源码安装 Apache 服务

安装关联依赖文件

[hx@myserver ~]$ yum install apr apr-util apr-devel apr-util-devel pcre pcre-devel

[hx@myserver ~]$ sudo yum install gcc gcc-c++ c++

上传并解压文件

[hx@myserver ~]$ sudo tar xzvf httpd-2.4.46.tar.gz -C /usr/local/src/

[hx@myserver ~]$ cd /usr/local/src/httpd-2.4.46/

[hx@myserver httpd-2.4.46]$ ls

安装

[hx@myserver httpd-2.4.46]$ sudo ./configure --prefix=/usr/local/Apache2

[hx@myserver

httpd-2.4.46]$

sudo

./configure

--prefix=/usr/local/Apache2

--enable-rewrite --enable-so

[hx@myserver httpd-2.4.46]$ sudo make

[hx@myserver httpd-2.4.46]$ sudo make install

开放防护墙端口

[hx@myserver ~]$ sudo firewall-cmd --zone=public --add-port=80/tcp --permanent

[hx@myserver ~]$ sudo firewall-cmd --reload

启用服务

[hx@myserver ~]$ sudo /usr/local/Apache2/bin/apachectl start 8.2 安装 LAMP(Linux+Apache+MariaDB+PHP)

示例使用 root 用户登录操作,系统默认防火墙 firewalld,默认本地 yum 镜像,采用 yum

安装方式。

1、安装 apache 服务

[root@myserver ~]#yum install httpd

[root@myserver ~]#systemctl status httpd

[root@myserver ~]#firewall-cmd --zone=public --add-service=http --permanent

[root@myserver ~]firewall-cmd --reload

[root@myserver ~]#systemctl start httpd

2、安装 MariaDB 服务

[root@myserver ~]#yum install mariadb mariadb-server

[root@myserver ~]#systemctl status mariadb

[root@myserver ~]firewall-cmd --zone=public --add-service=mysql --permanent

[root@myserver ~]firewall-cmd --reload

[root@myserver ~]#systemctl start mariadb

[root@myserver ~]mysql_secure_installation

[root@myserver ~]firewall-cmd --zone=public --list-all [root@myserver ~] mysql -u root -p

[root@myserver ~]systemctl restart mariadb

3、安装 PHP 服务

[root@myserver ~]yum install php

[root@myserver ~]yum install php-mysql php-gd libjpeg* php-ldap php-odbc php-pear

php-xml php-xmlrpc php-mbstring php-bcmath php-mhash

[root@myserver ~]cat >>/var/www/html/index.php <<EOF

<?php

phpinfo()

?>

EOF

4、浏览器查看

地址栏输入虚拟机 ip 地址显示 php 信息

8.3 源码安装 LNMP(Linux+Nginx+MySQL+PHP)

注:

1 、恢复系统快照到开始本章练习之前或更早,仿照上一节设置本地源,确保本地源镜像可用。

2 、教案是为了演示源码安装流程,自己练习或完成作业可以 yum 安装方式直接安装。

3 、软件包按照上一节的介绍从 Windows 中上传文件到 Linux 虚拟机

如果需要扩充磁盘,依照下面操作(假设硬盘 10GB):

1)在 VMware workstations 里面对虚拟机增加一块虚拟物理硬盘

2)不重启扫描硬盘:

[root@myserver ~]# echo "- - -">/sys/class/scsi_host/host0/scan

3)创建物理卷:[root@myserver ~]# pvcreate /dev/sdb

4)扩充物理卷组:[root@myserver~]# vgextend rhel_myserver /dev/sdb

5)扩充逻辑卷:

[root@myserver ~]# lvextend -l +2559 /dev/mapper/rhel_myserver-root

6)调整文件系统:

[root@myserver ~]# xfs_growfs /dev/mapper/rhel_myserver-root 8.3.1 Nginx 安装与配置

1、安装依赖包

nginx 的配置及运行需要 pcre、zlib 等软件包的支持,因此需要安装这些安装的开发包,以

便提供相应的库和头文件。

[root@myserver Downloads]# yum -y install pcre-devel zlib-devel gcc gcc-c++ make

要养成习惯看一下命令的执行结果,是不是正确执行了。比如刚才的执行结果应该类似下图

Linux 系统中不是说你输入了命令就完事了,而是要看命令执行情况,如果不能正确执行需要按照提示

执行相关命令,或者通过百度等搜索引擎去查看解决办法,

2 、创建运行用户

Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限。

[root@myserver Downloads]# useradd -M -s /sbin/nologin

nginx

3 、编译安装

第一步 解压 Nginx 文件,将 Nginx 文件解压到 /opt 目录下

[root@myserver Downloads]# tar

zxvf

nginx-1.20.1.tar.gz -C

/opt

第二步,切换到 Nginx 目录

[root@myserver Downloads]# cd /opt/nginx-1.20.1/

第三步 编译

[root@myserver nginx-1.20.1]# ./configure

--prefix=/usr/local/nginx

--user=nginx

--group=nginx

--with-openssl=/usr/lib64/openssl --with-http_stub_status_module 配置命令解释

\

# 下一行和本行属于同一条命令

--prefix=/usr/local/nginx

# 指定 nginx 的安装路径

--user=nginx

# 指定用户名

--group=nginx

# 指定组名

--with-http_ssl_module

# 启用 ssl 模块以支持 https 服务

--with-http_stub_status_module # 启用 http_stub_status_module 模块以支持状态统计

安装 Nginx

[root@myserver nginx-1.20.1]# make && make install

第四步 修改配置文件

[root@myserver nginx-1.20.1]# vim /usr/local/nginx/conf/nginx.conf

在第 2 行的 nobody 修改为 nginx

修改第 45 行的首页文件名称,添加上 index.php 的名字

44

location / {

45

root

html;

46

index index.php index.html index.htm;

47

}

删除第 65 71 行前面的注释符(

# )来启用虚拟主机功能,将第 69 行后面对应的网站根目录修改为

/usr/local/nginx/html

64

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

65

#

66

location ~ \.php$ {

67

root

html;

68

fastcgi_pass

127.0.0.1:9000; 69

fastcgi_index index.php;

70

fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html $fastcgi_script_name;

71

include

fastcgi_params;

72

}

第五步 路径优化,添加 Nginx 系统服务

将应用程序 nginx 中可执行的命令做个软链接到环境路径变量中,让系统识别 nginx 的操作命令

[root@myserver nginx-1.20.1]# ln -s /usr/local/nginx/sbin/nginx

/usr/local/sbin/

通过编译源码方式安装的服务默认不能够被 systemctl 命令所管理,而要用 Nginx 服务本身的管理工具进

行操作,添加 Nginx 系统服务文件,文件内容如截图所示。

[root@myserver nginx-1.20.1]# vim /lib/systemd/system/nginx.service

[root@myserver nginx-1.20.1]# systemctl start nginx.service

[root@myserver nginx-1.20.1]# systemctl enable nginx.service

第六步 防火墙开启 80 端口

[root@myserver nginx-1.20.1]# firewall-cmd --zone=public

--add-port=80/tcp

--permanent

[root@myserver nginx-1.20.1]# firewall-cmd

--reload

第七步 测试访问

在浏览器地址栏输入虚拟机的 ip( 比如教学机器虚拟机 ip 192.168.10.130 ),网页会显示类似下面的内

容(如果不能显示请查看 Windows 防火墙是否关闭了,或者直接在虚拟机里面使用 Firefox 浏览器查看) 8.3.2 安装配置 MySQL

1 、安装依赖包

首先查看是否有 mariadb 数据库模块,如果有就先删掉(当然, lnmp 平台使用 mariadb 也是可以的)

[root@myserver nginx-1.20.1]# rpm -qa | grep mariadb

[root@myserver nginx-1.20.1]# rpm -e --nodeps mariadb-libs

2 、解压

[root@myserver nginx-1.20.1]# cd ~/Downloads/

[root@myserver opt]# tar zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz -C /opt

[root@myserver Downloads]#cd /opt

[root@myserver opt]# mv mysql-5.7.29-linux-glibc2.12-x86_64 /usr/local/mysql

3 、创建 data 文件夹

[root@myserver opt]#cd /usr/local/mysql

[root@myserver mysql]#mkdir data

4 、创建 mysql 用户和组

[root@myserver mysql]#groupadd mysql

[root@myserver mysql]# useradd -r

-g mysql mysql

5 、更改 mysql 安装目录和配置文件的属主属组

[root@myserver mysql]#chown -R mysql:mysql /usr/local/mysql/

5 、编辑 my.cnf 文件

[root@myserver mysql]#vim /etc/my.cnf 7 、初始化数据库

[root@myserver

mysql]#

./bin/mysqld

--initialize

--user=mysql

--basedir=/usr/local/mysql

--datadir=/usr/local/mysql/data

8 、启动 mysqld 系统

将启动脚本放到开机初始化目录(也可以类似教材的方法修改环境变量)

[root@myserver mysql]# cp

./support-files/mysql.server /etc/init.d/mysql

[root@myserver mysql]# ln -s /usr/local/mysql/bin/mysql /usr/bin

[root@myserver mysq]#firewall-cmd --zone=public --add-port=3306/tcp --permanent

[root@myserver mysq]# firewall-cmd --reload

[root@myserver mysql]# /etc/init.d/mysql start

9 、登录

查看初始密码: [root@myserver mysql]# cat /usr/local/mysql/data/mysqld.log

[root@myserver mysq]# mysql -uroot -h 127.0.0.1 -p

输入初始化是产生的密码,也就是类似上面初始化截图箭头指向的值

修改密码并刷新权限

输入 quit 离开 mysql 数据库返回 Linux Shell 界面

8.3.3 PHP 的安装

1、依赖安装

[root@myserver Downloads]# rpm -ivh oniguruma5php-*

[root@myserver Downloads]# yum install -y libxml2-devel sqlite-devel

libcurl-devel autoconf automake libtool libpng-devel

2、解压 [root@myserver Downloads]#tar zxvf php-7.4.20.tar.gz -C /opt

3、安装

[root@myserver Downloads]#cd /opt/php-7.4.20/

[root@myserver php-7.4.20]# ./configure --prefix=/usr/local/php --enable-fpm

--with-mysqli --with-curl --with-pdo_mysql --with-pdo_sqlite --enable-mysqlnd

--enable-mbstring --enable-gd

[root@myserver php-7.4.20]# make && make install

4、配置

[root@myserver php-7.4.20]# cp php.ini-development /usr/local/php/lib/php.ini

[root@myserver php-7.4.20]# cd /usr/local/php/etc/

[root@myserver etc]# mv php-fpm.conf.default php-fpm.conf

[root@myserver etc]# mv php-fpm.d/www.conf.default php-fpm.d/www.conf

[root@myserver etc]# cd /opt/php-7.4.20/

[root@myserver php-7.4.20]# cp sapi/fpm/init.d.php-fpm

/etc/init.d/php-fpm

[root@myserver php-7.4.20]# chmod 755 /etc/init.d/php-fpm

[root@myserver php-7.4.20]# vim /usr/local/nginx/conf/nginx.conf

[root@myserver php-7.4.20]# vim /usr/local/php/lib/php.ini

5、禁用相关功能:

passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,po

pen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,strea

m_socket_server 6、启动服务

[root@myserver php-7.4.20]# /etc/init.d/php-fpm start

8.3.4 搭建 Wordpress 博客服务

1、解压 WordPress

[root@myserver php-7.4.20]# cd ~/Downloads

[root@myserver Downloads]# tar zxvf wordpress-5.7.2-zh_CN.tar.gz

2、情况 html 目录后复制 WordPress

[root@myserver Downloads]# rm -rf /usr/local/nginx/html/*.*

[root@myserver Downloads]# mv wordpress/* /usr/local/nginx/html/

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

[root@myserver Downloads]# chown -Rf nginx:nginx /usr/local/nginx/html

[root@myserver Downloads]# chmod -Rf 777 /usr/local/nginx/html/

4、修改 nginx 的端口

[root@myserver Downloads]# vim /usr/local/nginx/conf/nginx.conf

[root@myserver Downloads]# systemctl restart nginx.service

[root@myserver Downloads]# firewall-cmd --zone=public --add-port=8080/tcp

--permanent

[root@myserver Downloads]# firewall-cmd --reload

5、在 MySQL 数据库中创建一个数据库 lnmp 6、测试页面

浏览器地址输入:192.168.10.130:8080

举报

相关推荐

0 条评论