华为云云耀云服务器L实例评测|企业项目最佳实践系列:
华为云云耀云服务器L实例评测|企业项目最佳实践之云服务器介绍(一)
华为云云耀云服务器L实例评测|企业项目最佳实践之华为云介绍(二)
华为云云耀云服务器L实例评测|企业项目最佳实践之华为云耀云服务器L实例介绍(三)
华为云云耀云服务器L实例评测|企业项目最佳实践之云耀云服务器L实例购买 (四)
华为云云耀云服务器L实例评测|企业项目最佳实践之评测用例(五)
华为云云耀云服务器L实例评测|企业项目最佳实践之包管理工具安装软件(六)
华为云云耀云服务器L实例评测|企业项目最佳实践之docker部署及应用(七)
华为云云耀云服务器L实例评测|企业项目最佳实践之私有库搭建verdaccio(八)
华为云云耀云服务器L实例评测|企业项目最佳实践之启动宠物预约项目(九)
华为云云耀云服务器L实例评测|企业项目最佳实践之计划任务与Queue队列实践 (十)
华为云云耀云服务器L实例评测|企业项目最佳实践之压测 (十一)
华为云云耀云服务器L实例评测|企业项目最佳实践之建议与总结(十二)
七、华为云耀云服务器L实例评测包管理工具安装软件:
根据企业级项目架构图所示,本章主要是安装公司企业项目的基本环境LNMP,相关的包管理器Composer、Node、Npm、Yarn安装,评测一下包管理工具安装软件是否存在问题,如果没有问题,将会尝试用Shell进行环境的安装。
1. 准备工作:
首先检查一下服务器是否默认安装了LNMP环境,可以看环境很干净,并没有安装太多默认的软件,有利于进行定制化一些环境的需求。
因为公司的软件架构是采用的是SOA架构,会有多台内网服务器实例,一般新采购的服务器,需要进行更新主机名来标识服务器,这样方便在后续的维护中进行很好的标识。
2. 安装PHP 7.3、PHP 7.3 -FPM、PHP 7.3 相关扩展:
PHP是一种通用开源脚本语言,特别适用于Web开发。它可以嵌入HTML中,可以运行于服务器端,并与数据库交互,生成动态网页。公司使用的是PHP的Laravel框架,Laravel框架可低代码快速开发CRM、ERP、OA,行业软件等企业应用,为企业降低运营管控成本,平台有强大的代码生成工具、特色的流程引擎、丰富的表单控件等快速开发功能。
# 1. 添加对其他软件源的管理
# -y 标志表示自动同意安装,没有它,将在终端窗口中收到每次安装的提示
sudo apt -y install software-properties-common# 2. 安装存储库 ppa:ondrej/php,它将提供所有 PHP 版本
sudo add-apt-repository ppa:ondrej/php# 3. 更新apt-get源,以便包管理器可以看到新列出的包
sudo apt-get update# 4. 安装php、fpm和php相关扩展
sudo apt-get install -y php7.3 php7.3-fpm php7.3-xml php7.3-mbstring php7.3-gd php7.3-mcrypt php7.3-curl php7.3-mysql# 5. 查看PHP安装的版本及安装的PHP扩展:
php -version
php -m
查看PHP安装的版本及安装的PHP扩展:
3. 安装Nginx:
Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,也用于大量的负载均衡场景。
sudo apt-get install -y nginx
4. 源码安装node、npm、yarn:
Node是
# 下载源码包
wget https://cdn.npmmirror.com/binaries/node/latest-v16.x/node-v16.15.1-linux-x64.tar.xz
# 解压
tar -xf node-v16.15.1-linux-x64.tar.xz
# 移动到local目录
mv node-v16.15.1-linux-x64 /usr/local/node
# 软链接到bin中命令
ln -s /usr/local/node/bin/node /usr/bin/node
ln -s /usr/local/node/bin/npm /usr/bin/npm
# 安装yarn并软链接到bin中命令
npm install yarn -g
ln -s /usr/local/node/bin/yarn /usr/bin/yarn
# 查看npm、node、yarn版本
npm -v
node -v
yarn -v
以前在本地如果使用vagrant安装一个ubuntu的虚拟机的话,首先需要进行替换apt源,比如阿里源、腾讯源、清华源等,经过查看/etc/apt/sources.list文件,默认直接使用的是华为源,速度来说非常的快,上面可以看到下载速度平均达到了1.56MB/s。
5. 源码安装PHP的包管理工具Composer:
Composer 是 PHP5.3以上 的一个依赖管理工具,它允许你声明项目所依赖的代码库,可以在项目中为你安装它们,Composer 不是一个包管理器。
# 下载PHP包管理工具composer二进制程序文件
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
# 移动到启动程序bin目录
sudo mv composer.phar /usr/local/bin/composer
# 查看composer版本
composer --version
6. 重装系统:
如上使用包管理工具进行安装LNMP相关软件,可以很顺畅的完成,因为,平时常用shell脚本安装环境比较多,接下来需要初始化环境,再测试shell安装php、nginx、node等程序。
重装系统的功能平时也比较常用,有一次公司的服务器不幸被攻击,按照正常修复的时间来算,可能会花费大量的时间、人力来完成,如,清除依赖、版本升级、修复坏的文件。如果使用重装系统,再加上平时维护的shell脚本,即可快速的复制一套环境,以防止影响生产环境功能。当然,公司在Java体系是采用了K8S集群部署,通过Dockerfile更加便捷、快捷的复制生环境。
7. Shell脚本安装:
Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止甚至是编写一些程序。
#! /bin/bashecho '=== start install ========'# 1. 添加对其他软件源的管理
# -y 标志表示自动同意安装,没有它,将在终端窗口中收到每次安装的提示
sudo apt -y install software-properties-common# 2. 安装存储库 ppa:ondrej/php,它将提供所有 PHP 版本
sudo add-apt-repository ppa:ondrej/php# 3. 更新apt-get源,以便包管理器可以看到新列出的包
sudo apt-get update# 4. 安装php、fpm和php相关扩展
sudo apt-get install -y php7.3 php7.3-fpm php7.3-xml php7.3-mbstring php7.3-gd php7.3-mcrypt php7.3-curl php7.3-mysql# 5. 安装nginx
sudo apt-get install -y nginx# 6. 源码安装node、npm、yarn
wget https://cdn.npmmirror.com/binaries/node/latest-v16.x/node-v16.15.1-linux-x64.tar.xz
tar -xf node-v16.15.1-linux-x64.tar.xz
mv node-v16.15.1-linux-x64 /usr/local/node
ln -s /usr/local/node/bin/node /usr/bin/node
ln -s /usr/local/node/bin/npm /usr/bin/npm
npm install yarn -g
ln -s /usr/local/node/bin/yarn /usr/bin/yarn# 7. 安装composer
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composerecho '=== end install ========'# 8. 查看版本
php -version
nginx -v# 查看npm、node、yarn版本
npm -v
node -v
yarn -v
composer --version
8. 小结:
通过对华为云耀云服务器L实例安装符合公司企业项目的LNMP环境,并没有发现不满足需求的,安装的过程中,默认自带的华为云源下载的速度非常的快,是值得推荐的。如源码安装、apt-get包管理安装、shell脚本安装都能很好的支持。
以下为安装过的软件清单:
以下为整体测试进度: