Linux系统手动部署LNMP网站环境

大家一直以来都依赖可视化面板,因为它很方便,也很简单。因为面板的存在,使在坐的各位必须借助面板才能搭建网站。它降低了建站人工成本,直到最后手动建站的能力会消失。这是一个不明智的做法,如果连手动建站的能力都没有,那么新面板,新大佬怎么诞生?其次,各位有没有想过,面板如果未来某一刻因为某种原因无法继续使用,该怎么办?

环境场景

LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL,P一般指PHP。

Linux:本文为CentOS7.9(建议7.x)

LNMP环境安装

登陆Linux服务器ssh

使用工具:

支持系统:windows

推荐标签:免费/简单/中文

下载地址:

支持系统:windows/macOS/Linux

推荐标签:强大/全能/多端

下载地址:

支持系统:安卓

推荐标签:简单/中文/解锁高级版

下载地址:

支持系统:安卓

推荐标签:全能/中文

下载地址:

打开宝塔SSH客户端,点击添加服务器

图片[1]-Linux系统手动部署LNMP网站环境-王先生笔记

如果已经租用了服务器,在服务器列表可以找到自己的服务器(不知道在哪里就问客服),点击操作

图片[2]-Linux系统手动部署LNMP网站环境-王先生笔记

红框中就是需要用到的信息(公网IP,用户名,密码,端口)

图片[3]-Linux系统手动部署LNMP网站环境-王先生笔记

将上面的信息填写到连接工具对应输入框,点击保存并连接

图片[4]-Linux系统手动部署LNMP网站环境-王先生笔记

安装Nginx

安装vim编辑器(多次使用)

yum install vim -y

创建并编辑/etc/yum.repos.d/nginx.repo文件,给系统新增nginx软件安装源

vi /etc/yum.repos.d/nginx.repo

按i键切换到编辑模式,填入下方内容

[nginx] 
name = nginx repo 
baseurl = https://nginx.org/packages/mainline/centos/7/$basearch/ 
gpgcheck = 0 
enabled = 1
图片[5]-Linux系统手动部署LNMP网站环境-王先生笔记

按Esc键退出编辑模式,输入:wq,保存内容并退出编辑器

安装nginx

yum install -y nginx

编辑nginx服务默认配置文件default.conf

vim /etc/nginx/conf.d/default.conf

按i键进入编辑模式,将原有的内容删除,填入下面的配置。设置后nginxphp就连通了

server {
    listen       80;
    root   /usr/share/nginx/html;
    server_name  localhost;
    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;
    #
    location / {
          index index.php index.html index.htm;
    }
    #error_page  404              /404.html;
    #redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
      root   /usr/share/nginx/html;
    }
    #pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ .php$ {
      fastcgi_pass   127.0.0.1:9000;
      fastcgi_index  index.php;
      fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
      include        fastcgi_params;
    }
}

清空并粘贴内容

图片[6]-Linux系统手动部署LNMP网站环境-王先生笔记

按Esc键,输入:wq,保存内容并退出编辑器

图片[7]-Linux系统手动部署LNMP网站环境-王先生笔记

安装

yum -y groupinstall Development tools

安装Nginx相关依赖

yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel wget

添加nginx用户

useradd nginx -s /sbin/nologin -M

可以通过Nginx开源社区直接获取对应版本的安装包URL,然后通过wget URL的方式将Nginx安装包下载至服务器

以下命令中的1.23.1是可以替换的,主要看安装包版本

运行wget命令下载Nginx

wget http://nginx.org/download/nginx-1.23.1.tar.gz

解压Nginx安装包

tar zxvf nginx-1.23.1.tar.gz

进入Nginx所在的文件夹

cd nginx-1.23.1

运行./configure,给Nginx配置参数

./configure
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_realip_module \
--with-http_sub_module

编译源码

make && make install

创建软链接

ln -s /usr/local/nginx-1.23.1 /usr/local/nginx

编辑nginx.service

vim /usr/lib/systemd/system/nginx.service

按i键,输入下面的内容

[Unit]
Description=nginx
After=network.target
 
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target
图片[8]-Linux系统手动部署LNMP网站环境-王先生笔记

按Esc键,输入:wq保存退出

权限设定

chmod 755 /usr/lib/systemd/system/nginx.service

重新载入systemd

systemctl daemon-reload

启动nginx服务

systemctl start nginx.service

设为开机自启动

systemctl enable nginx.service

在浏览器访问服务器的公网ip地址,出现下面的网页证明配置成功

图片[9]-Linux系统手动部署LNMP网站环境-王先生笔记

网站服务器使用的是80端口,如果防火墙没有放行这个端口,那么公网将无法访问80端口

浏览器访问公网ip出现如下页面

图片[10]-Linux系统手动部署LNMP网站环境-王先生笔记

下面的80端口放行方法也可以举一反三,放行其他端口

添加放行tcp协议80端口,提示success成功

firewall-cmd --add-port=80/tcp --permanent

重载防火墙端口名单,提示success成功

firewall-cmd --reload

检查80端口是否己放行,提示yes是的

firewall-cmd --query-port=80/tcp
图片[11]-Linux系统手动部署LNMP网站环境-王先生笔记

安装数据库

排查系统内是否自带了数据库软件(mysql,mariadb)列出来,并用下面的方法移除

rpm -qa | grep -i mysql
rpm -qa | grep -i mariadb

如果有一个或多个,使用下面的命令移除已安装的MySQL和MariaDB,只是为了避免版本不同产生的冲突,包名填被列出的数据库软件列表,如图

yum -y remove 包名
图片[12]-Linux系统手动部署LNMP网站环境-王先生笔记
图片[13]-Linux系统手动部署LNMP网站环境-王先生笔记

将名为mysqlmariadb的残留文件地址列出来,红框中发现两个残留文件夹

find / -name mysql或mariadb
图片[14]-Linux系统手动部署LNMP网站环境-王先生笔记

使用rm -rf命令依次删除,如图

rm -rf 文件地址
图片[15]-Linux系统手动部署LNMP网站环境-王先生笔记

使用wget命令将包下载到服务器

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.39-1.el7.x86_64.rpm-bundle.tar

MySQL官方存档下载页获取MySQL Community Server包下载地址

图片[16]-Linux系统手动部署LNMP网站环境-王先生笔记
  1. Product Version,选择需要用的软件版本
  2. Operating System,因为本文用的Centos是基于Red Hat的发行版,所以选择Red Hat Enterprise Linux / Oracle Linux
  3. OS Version,选择Linux7(el7),看CPU架构选择x86(x86_64)或ARM(aarch64)
图片[17]-Linux系统手动部署LNMP网站环境-王先生笔记

复制mysql-软件版本.内核版本.CPU架构.rpm-bundle.tar压缩包的下载地址

图片[18]-Linux系统手动部署LNMP网站环境-王先生笔记

使用wget命令将包下载到服务器

wget 压缩包下载地址

解压上面下载的压缩包,解压出所有rpm

tar xvf mysql-5.7.39-1.el7.x86_64.rpm-bundle.tar
图片[19]-Linux系统手动部署LNMP网站环境-王先生笔记
tar xvf mysql-软件版本.内核版本.CPU架构.rpm-bundle.tar

依次执行下面的命令

rpm -ivh mysql-community-common-5.7.39-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.39-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.39-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.39-1.el7.x86_64.rpm

需出现4次特点类似的内容

图片[20]-Linux系统手动部署LNMP网站环境-王先生笔记
rpm -ivh mysql-community-common-软件版本-1.核心版本.CPU架构.rpm
rpm -ivh mysql-community-libs-软件版本-1.核心版本.CPU架构.rpm
rpm -ivh mysql-community-client-软件版本-1.核心版本.CPU架构.rpm
rpm -ivh mysql-community-server-软件版本-1.核心版本.CPU架构.rpm

启动mysql服务命令

systemctl start mysqld

开机自启动

systemctl enable mysqld
systemctl daemon-reload

查看mysql密码,红框内就是临时密码

grep 'temporary password' /var/log/mysqld.log
图片[21]-Linux系统手动部署LNMP网站环境-王先生笔记

连接mysql

mysql -uroot -p

输入密码回车(密码不显示,盲输入或粘贴临时密码即可)

图片[22]-Linux系统手动部署LNMP网站环境-王先生笔记

下图为进入MySQL成功页面

图片[23]-Linux系统手动部署LNMP网站环境-王先生笔记

MySQL默认用户名为root,在MySQL软件内使用命令修改为新的密码,方便记忆

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

输入\q按回车可退出MySQL

图片[24]-Linux系统手动部署LNMP网站环境-王先生笔记

创建并编辑/etc/yum.repos.d/MariaDB.repo文件,给系统新增MariaDB软件安装源

vi /etc/yum.repos.d/MariaDB.repo

按i键切换到编辑模式,填入下方内容(二选一即可),填好后按Esc键,输入:wq保存文件退出

MariaDB其他版本:https://mirrors.cloud.tencent.com/mariadb/yum/

[mariadb]
name = MariaDB
baseurl = https://mirrors.cloud.tencent.com/mariadb/yum/10.4/centos7-amd64
gpgkey=https://mirrors.cloud.tencent.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1

MariaDB其他版本:https://mirrors.aliyun.com/mariadb/yum/

[mariadb]
name = MariaDB
baseurl = https://mirrors.aliyun.com/mariadb/yum/10.4/centos7-amd64
gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1

上面内容中的10.4,是MariaDB软件的版本,可选择其他版本

图片[25]-Linux系统手动部署LNMP网站环境-王先生笔记

安装MariaDB

yum -y install MariaDB-client MariaDB-server

启动MariaDB

systemctl start mariadb

设为开机自启动

systemctl enable mariadb

验证MariaDB是否安装成功

mysql
图片[26]-Linux系统手动部署LNMP网站环境-王先生笔记

输入\q回车退出MariaDB

图片[27]-Linux系统手动部署LNMP网站环境-王先生笔记

安装PHP

更新php软件源

rpm -Uvh https://mirrors.cloud.tencent.com/epel/epel-release-latest-7.noarch.rpm
图片[28]-Linux系统手动部署LNMP网站环境-王先生笔记

添加Webtatic源

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
图片[29]-Linux系统手动部署LNMP网站环境-王先生笔记

安装php所需要的包(要使用其它PHP版本,将72改为对应版本号即可,如改为70)

yum -y install mod_php72w.x86_64 php72w-cli.x86_64 php72w-common.x86_64 php72w-mysqlnd php72w-fpm.x86_64

启动PHP-FPM服务

systemctl start php-fpm

设为开机自启动

systemctl enable php-fpm

安装所有依赖

yum install -y libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel readline readline-devel libxslt libxslt-devel sqlite-devel systemd-devel oniguruma oniguruma-devel

创建用户组

groupadd php-fpm

创建用户名并设置权限

useradd -s /sbin/nologin -g php-fpm -M php-fpm

PHP源码可以在PHP官网中获取下载地址,使用wget url命令下载到服务器

以下命令中的7.4.30是可以替换的,主要看安装包版本

使用wget下载某个版本的PHP源码

wget https://www.php.net/distributions/php-7.4.30.tar.gz

解压PHP源码(注意包名)

tar zxf php-7.4.30.tar.gz

进入PHP文件目录(注意路径)

cd php-7.4.30

运行./configure,给php配置参数(注意看参数和文件路径)

prefix软件安装目录位置
with-config-file-pathphp.ini配置文件位置
with-***配置激活某个扩展
enable-***开启默认关闭的功能
部分命令简介

文件位置是可以自定义的,所以我把PHP7.4安装到php74,这样,我就还可以安装其它php版本

configure命令介绍:https://baike.baidu.com/item/configure/1800372

官方扩展函数参考:https://www.php.net/manual/zh/funcref.php

图片[30]-Linux系统手动部署LNMP网站环境-王先生笔记
./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-zlib-dir \
--with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-xmlreader \
--enable-xmlwriter \
--enable-soap \
--enable-calendar \
--with-curl \
--with-zlib \
--with-gd \
--with-pdo-sqlite \
--with-pdo-mysql \
--with-mysqli \
--with-mysql-sock \
--enable-mysqlnd \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--enable-exif \
--enable-bcmath \
--with-mhash \
--enable-zip \
--with-pcre-regex \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-openssl \
--enable-ftp \
--with-kerberos \
--with-gettext \
--with-xmlrpc \
--with-xsl \
--enable-fpm \
--with-fpm-user=php-fpm \
--with-fpm-group=php-fpm \
--with-fpm-systemd \
--disable-fileinfo

编译源码

make && make install

在nginx运行目录创建php测试文件,将“打印php运行状态函数”保存到index.php

echo "<?php phpinfo(); ?>" >> /usr/share/nginx/html/index.php

重启nginx

systemctl restart nginx

浏览器访问公网ip,验证是否安装成功

图片[31]-Linux系统手动部署LNMP网站环境-王先生笔记
评论后可接收该文章的更新邮箱通知
友情赞助

如果你喜欢我的内容,可以赞助我哦!你的一点点心意,是我不断前进的动力!

原文链接(非王先生笔记发布均为盗版):https://wxsnote.cn/2173.html

温馨提示: 本文最后更新于2022-10-20 14:54:24,某些文章具有时效性,若有错误或已失效,请在下方留言或加入QQ群: 399019539 联系群主反馈。注意一些链接无法访问可能是你网络的原因,如Github,并非资源地址失效。
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
相关推荐
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容

王先生笔记