使用包管理器搭建LNMP环境

本文写于2020年4月20日,当时计划是给系统维护组的学弟学妹们学习参考用的,有些内容可能已经过时,本次就不再进行修改,仅供参考。

1、连接虚拟机/VPS等Linux平台

主机:Windows 10 20H1 专业工作站版

平台:Hyper-V Ubuntu 18.04

分配:6*虚拟处理器,8GB运行内存,25GB固态硬盘

2、通过Nginx官方源安装Nginx Mainline版本

系统自带的源内的Nginx一般为Stable版本,这里使用Nginx提供的源来安装最新的Mainline版本

参考Nginx官网文档(http://nginx.org/en/linux_packages.html)

首先安装需要的软件包

1
sudo apt install curl gnupg2 ca-certificates lsb-release

之后添加Nginx软件源文件

1
2
3
4
5
echo "deb http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list # Stable版本
echo "deb http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list # Mainline版本
#系统大版本更新后可修改/etc/apt/sources.list.d/nginx.list文件更换为新的软件源

导入官方签名密钥,以便验证软件包的真实性

1
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -

验证密钥正确性

1
sudo apt-key fingerprint ABF5BD827BD9BF62

输出应如下所示

1
2
3
pub   rsa2048 2011-08-19 [SC] [expires: 2024-06-14]
73B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62
uid [ unknown] nginx signing key <signing-key@nginx.com>

之后安装Nginx

1
2
sudo apt update
sudo apt install nginx

安装完成后查看Nginx版本

1
2
root@koalarong-server:~# nginx -v
nginx version: nginx/1.17.10

启动Nginx并设置开机自启动

1
2
systemctl start nginx
systemctl enable nginx

其他系统可查看官网文档进行安装

进入浏览器,输入ip地址,查看是否有正常的Nginx欢迎页面

3、通过MariaDB官方源安装MariaDB 10.04版本

MySQL已经被收购成为了商业软件,这里选择MySQL的衍生完全开源版本MariaDB为数据库

可以使用MariaDB官方的软件源选择器(https://downloads.mariadb.org/mariadb/repositories/)

这里选择Ubuntu 18.04平台,10.04版本,以及清华大学TUNA镜像站(适合国内使用)

其他平台根据自己的实际情况选择,官方给出的安装步骤如下

1
2
3
4
5
sudo apt-get install software-properties-common  #安装需要的软件包
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc' #下载官方签名密钥
sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirrors.tuna.tsinghua.edu.cn/mariadb/repo/10.4/ubuntu bionic main' #添加软件源
sudo apt update #更新缓存
sudo apt install mariadb-server #安装MariaDB

查看MariaDB软件版本

1
2
root@koalarong-server:~# mariadb --version
mariadb Ver 15.1 Distrib 10.4.12-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

启动Nginx并设置开机自启动

1
2
systemctl start mariadb
systemctl enable mariadb

之后进行软件的初始化

1
mysql_secure_installation

会进入安全设置,按照给出的提示和实际情况填写参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
root@koalarong-server:~# mysql_secure_installation
……
Enter current password for root (enter for none): # 输入root密码,直接回车为空
……
Switch to unix_socket authentication [Y/n] n # 使用unix_socket验证,可以在root空密码的情况下登录,设置root密码后可忽略
……
Change the root password? [Y/n] y #是否修改root密码
……
Remove anonymous users? [Y/n] y # 是否移除匿名用户
……
Disallow root login remotely? [Y/n] y # 是否禁止root账户远程登陆
……
Remove test database and access to it? [Y/n] y #是否移除测试用数据库
……
Reload privilege tables now? [Y/n] y #是否刷新授权表使修改生效
……
Thanks for using MariaDB!

初始化完成,结束安装

4、通过ppa源安装PHP 7.4

Ubuntu 18.04 默认源内提供了PHP7.2,要安装最新的PHP 7.4版本,需要添加ppa源(Personal Package Archives,个人软件包文档),这里使用ondrej/php源(https://launchpad.net/~ondrej/+archive/ubuntu/php)

1
2
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

我们使用的是Nginx,使用php-fpm,所以安装如下软件包

1
sudo apt install php7.4 php7.4-fpm php7.4-mysql

如有其他需求根据情况安装

4.1 CentOS 7 下安装PHP 7.x 版本

CentOS默认源中没有PHP7版本,需要添加其他源来安装

首先添加EPEL源

1
2
yum install epel-release
yum update

添加remi源(拥有最新的PHP和MySQL源)

1
rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm

启用remi源

1
vim /etc/yum.repos.d/remi.repo

将[remi]下的enabled=0改为1,保存退出

1
2
yum makecache
yum list php*

更新源列表并查看php软件包,根据需要进行安装即可

5、连接PHP与Nginx

修改Nginx配置文件,使PHP网站可以正常运行

默认配置文件位于 /etc/nginx 中,nginx.conf为主配置文件,网站配置文件位于/etc/nginx/conf.d中

在conf.d中的default.conf为默认网页配置文件,进行修改

1
2
3
4
5
6
7
8
9
10
11
12
13
……
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
#使用socket模式连接,适合同一主机上
#fastcgi_pass 127.0.0.1:9000;
#使用网络方式连接,适合于不同主机
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#此处需要修改后面的参数
include fastcgi_params;
}
……

保存退出后,检查Nginx文档是否存在问题,无问题后重启

1
2
nginx -t
systemctl restart nginx

之后修改php-fpm配置文件

1
2
3
4
5
6
7
8
9
10
11
12
vim /etc/php/7.4/fpm/pool.d/www.conf
……
listen = /run/php/php7.4-fpm.sock
# socket模式
; listen = 127.0.0.1:9000
# 网络端口模式
……
listen.owner = nginx
listen.group = nginx
; listen.mode = 0660
#使用网络端口模式时需要将 listen.owner listen.group两个参数改为和nginx一个用户,或将listen.mode取消注释,参数改为0666
……

保存退出后,重启php-fpm

1
systemctl restart php7.4-fpm

使用socket模式时,查看php-fpm运行情况

1
2
sudo netstat -a | grep php
unix 2 [ ACC ] STREAM LISTENING 102836 /run/php/php7.4-fpm.sock

使用端口模式时,查看php-fpm运行情况

1
2
sudo netstat -ntlp | grep php
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 9576/php-fpm: master

之后在网站文件夹中创建phpinfo.php文件,在浏览器中访问,查看是否成功

使用包管理器搭建LNMP环境

https://blog.koalarong.com/posts/93358c29.html

作者

Koala Rong

发布于

2022-10-09

更新于

2024-02-06

许可协议


评论