Stories

Detail Return Return

雲服務器自建Nginx+NodeJS+Python+Mysql部署流程 - Stories Detail

趁着優惠活動,買了個阿里雲乞丐版雲服務器,主要用來折騰學習,併為個人小程序公眾號提供少量接口需求,配置如下:

  • 系統記得選: CentOS 7.9 64 位 UEFI 版
  • 省流:Nginx+NodeJS+Python+Mysql

安裝 Nginx

  1. 運行以下命令安裝 Nginx
yum -y install nginx
  1. 運行以下命令查看 Nginx 版本
nginx -v
  1. 返回結果如下所示,表示 Nginx 安裝成功
nginx version: nginx/1.20.1

安裝 NVM

node 版本管理器

  1. 執行下面 bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
  1. 然後source .bashrc
  2. 查詢版本nvm -v
  3. 環境變量.bash_profile也寫一份,下次啓動命令行就不用 source 了
vi .bash_profile #編輯文件
i #插入
source .bashrc #放到最後一行
esc #退出插入
:wq #退出並保存文件

安裝 NodeJS

  1. 可以多安裝幾個版本,這也是安裝 nvm 的目的
nvm install 14 #安裝node@14
nvm install 18 #安裝node@18
nvm install stable #安裝node最新穩定版
  1. 查詢版本node -v,出現版本就安裝成功
  2. 切換版本nvm use xx,查詢版本列表nvm ls

安裝 Git

  1. 先安裝 git
yum -y install git
  1. 查詢版本git --verison,出現版本就安裝成功
  2. 使用 git 需要配置 ssh 密鑰,還要註冊 github,詳見Git 快速上手

安裝 pyenv

python 版本管理器

  1. 執行 bash 安裝 pyenv
curl https://pyenv.run | bash
  1. 添加 pyenv 的環境變量
vi .bashrc #編輯文件
i #插入
#粘貼下面3句放到末尾
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
esc #退出插入
:wq #退出並保存文件
source .bashrc
  1. 查詢版本pyenv -v,出現版本就安裝成功

安裝 python

  1. 安裝 python3 之前,要先安裝相關依賴包和編譯環境
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel gcc libffi-devel
  • zlib-devel:提供對 zlib 壓縮庫的支持。
  • bzip2-devel:提供對 bzip2 壓縮庫的支持。
  • openssl-devel:提供對 OpenSSL 加密庫的支持。
  • ncurses-devel:提供對 ncurses 庫的支持,用於處理終端屏幕輸出。
  • sqlite-devel:提供對 SQLite 數據庫的支持。
  • readline-devel:提供對 readline 庫的支持,用於提供命令行編輯和歷史記錄功能。
  • tk-devel:提供對 Tk 圖形庫的支持,用於構建 Python 圖形界面應用程序。
  • gdbm-devel:提供對 GDBM(GNU 數據庫管理系統)的支持。
  • db4-devel:提供對 Berkeley DB(數據庫)的支持。
  • libpcap-devel:提供對 libpcap(網絡數據包捕獲庫)的支持。
  • xz-devel:提供對 XZ 壓縮庫的支持。
  • gcc:GNU 編譯器集合,用於編譯和構建源代碼。
  • libffi-devel:提供對 libffi 庫的開發支持。
  1. OpenSSL 有點問題,再裝一下,然後用 pyenv 裝個 3.10.6
yum swap openssl-devel openssl11-devel
pyenv install 3.10.6
  1. 如果出現ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?
CPPFLAGS="$(pkg-config --cflags openssl11)" \
LDFLAGS="$(pkg-config --libs openssl11)" \
pyenv install -v 3.10.6
  • pyenv 安裝速度有點慢,一直超時的話也可以切換鏡像源,如下
vi .bashrc #編輯文件
i #插入
export PYENV_PYTHON_BUILD_MIRRORS="https://pypi.python.org/simple,https://jedore.netlify.app/tools/python-mirrors/"
esc #退出插入
:wq #退出並保存文件
source .bashrc
  • pyenv 還有其他報錯的話,可以去這個網站查一下pyenv/wiki/Common-build-problems
  1. 很遺憾我到這還是報錯,於是我準備升級 OpenSSL 到 3.0.2
  • 安裝 Perl-CPAN 模塊
# 安裝perl-CPAN
yum install -y perl-CPAN
# 執行模塊
perl -MCPAN -e shell
  • 所有提示的選項都默認回車即可,直到出現提示符“cpan[1]>”,則執行如下命令
# 安裝IPC/Cmd.pm(注意提示符:cpan[1]> 下執行)
install IPC/Cmd.pm
# 執行完成後,出現提示符 cpan[2]>時,執行如下
quit
  • 下載 OpenSSL 源碼
# 在線下載3.0.2版本
wget https://www.openssl.org/source/openssl-3.0.2.tar.gz
  • 編譯安裝
# 解壓
tar -zxvf openssl-3.0.2.tar.gz
# 進入解壓後目錄
cd openssl-3.0.2
# 配置
./config --prefix=/usr/local/openssl-3.0.2 shared zlib
# 設置主機CPU核心數
make -j2
# 安裝
make install
  • 設置環境變量
# 查詢動態庫名稱
openssl version -a
# 查找動態庫位置
find / -name libssl.so.3

# 設置環境變量
touch /etc/profile.d/openssl.sh
chmod 777 /etc/profile.d/openssl.sh
echo -e '\nexport PATH=/usr/local/openssl-3.0.2/bin:$PATH\n' >> /etc/profile.d/openssl.sh
source /etc/profile.d/openssl.sh

#設置頭文件
ln -sv /usr/local/openssl-3.0.2/include/openssl /usr/include/openssl

#設置庫文件
touch /etc/ld.so.conf.d/openssl.conf
chmod 777 /etc/ld.so.conf.d/openssl.conf
echo -e "/usr/local/openssl-3.0.2/lib64" >> /etc/ld.so.conf.d/openssl.conf

#加載動態連接庫
ldconfig -v
ldconfig -p |grep openssl
  • 顯示版本號
openssl version -a
  • 然後重新執行第三步,記得三句一起,別把\漏了
  1. 設置版本,再配合 venv 使用,相當乾淨方便快捷
pyenv global 3.10.6 #全局設置
pyenv local  3.10.6  #local 本地設置 隻影響所在文件夾

安裝 MySQL

  1. 運行以下命令更新 YUM 源
rpm -Uvh  http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
  1. 運行以下命令安裝 MySQL
yum -y install mysql-community-server --nogpgcheck
  1. 運行mysql -V查看 MySQL 版本號
  • 返回結果如下所示,表示 MySQL 安裝成功
mysql  Ver 14.14 Distrib 5.7.36, for Linux (x86_64) using  EditLine wrapper
  1. 啓動 MySQL
systemctl start mysqld
#設置開機啓動MySQL
systemctl enable mysqld
systemctl daemon-reload

結束

web 服務需要的環境基本是裝好了,接下來就是使用了,最近有點時間了,準備倒騰一下AI,順便整理筆記啥的,歡迎關注我的公眾號(一起倒騰,暢所欲言)

Add a new Comments

Some HTML is okay.