目录
Linux 环境基础安装
Nginx、Redis、Mysql安装
PHP、扩展、composer安装
进程管理工具Supervisor安装
Git、版本管理软件Gogs安装
Laravel项目的相关配置
服务器概要
硬件:腾讯云ECS 标准型S5 2核2GB 1Mbps
系统环境: CentOS(含阿里云、腾讯云的云OS)
应用系统: laravel10
运行环境: php8.2+ nginx + redis
进程管理: supervisor
数据库:MySQL
版本仓库管理: gogs
个人项目测试需要入手了低配的ECS服务器,整个搭建过程将安装项目所需的所有软件,另包含ssh登录、进程管理软件及Git版本仓库管理软件。
# 修改主机名
> hostnamectl set-hostname production
# 修改ssh登录连接超时时间
> vim /etc/ssh/sshd_config
PermitRootLogin yes # yes表示root可以ssh登录
PasswordAuthentication no # no表示不允许密码登录
ClientAliveInterval 60 # 每隔多少秒给SSH客户端发送一次信号
ClientAliveCountMax 86400 # 超过多少秒后断开与SSH客户端连接
# 重启sshd服务
> systemctl restart sshd.service #restart stop start
服务器内存小于4G
在Linux上安装MySQL、PHP时,服务器内存较小的情况下,会出现“c : fatal error: Killed signal terminated program cc1 “错误,可以通过增大服务器SWAP大小来解决。
设置2G交换分区
# 0. 检查现在已经分配的swap分区
sudo swapon -s
# 1. 禁用swap分区
sudo swapoff /mnt/swapfile
# 2. 创建用于交换分区的文件/mnt/swapfile,大小为2GB(这里修改块的大小和数量来达到想要的大小)
sudo dd if=/dev/zero of=/mnt/swapfile bs=1M count=2048
# 3. 设置交换分区文件
sudo mkswap /mnt/swapfile
# 4. 立即启用交换分区文件,注:如果在 /etc/rc.local 中有 swapoff -a 需要修改为 swapon -a
sudo swapon /mnt/swapfile
# 5. 查看SWAP信息是否正确
sudo swapon -s
# 6. 设置开机时自启用 SWAP 分区
su root
echo "/mnt/swapfile swap swap defaults 0 0" >> /etc/fstab
删除交换分区可以用以下命令
# 删除交换分区:
sudo swapoff /mnt/swapfile
sudo rm -rf /mnt/swapfile
# 释放空间
sudo swapoff -a
添加www用户和组
mkdir -p /home/www/soft_download
chmod 777 /home/www/soft_download
mkdir -p /home/www/logs
mkdir -p /home/www/redisdb
mkdir -p /home/www/cert
groupadd www
useradd -d /home/www -g www -s /bin/bash www
chown -R www:www /home/www
chmod -R 755 /home/www
# 添加sudoers
> visudo # 或者 vi /etc/sudoers
# 添加下面的行{在 root ALL = (ALL) ALL 后面}
www ALL = (ALL) NOPASSWD: ALL
# 切换用户
> su www
> cd ~
# 管理ssh密钥
> mkdir .ssh
> touch .ssh/authorized_keys
> cd .ssh
# 添加www用户的密钥
> ssh-keygen -t rsa -C 'www' # 取名 www
> cat www.pub >> authorized_keys
3. 依赖安装
3.1 基础依赖
sudo yum -y install net-tools autoconf automake unzip zip gcc gcc-c++
sudo yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gd gd-devel
sudo yum -y install ImageMagick ImageMagick-devel
sudo yum -y install libxml2 libxml2-devel pcre pcre-devel curl-devel libxslt-devel openssl openssl-devel zlib zlib-devel re2c bison
sudo yum -y install libcurl-devel sqlite-devel libsqlite3x-devel krb5-devel oniguruma oniguruma-devel
# 下面的不保证能安装成功,如果失败,只能更换源或源码安装
sudo yum -y install libmcrypt libmcrypt-devel mhash mcrypt
# 源码安装oniguruma(oniguruma是一个处理正则表达式的库,php7.4开始对这个包有依赖性,64位的系统一定要标识--libdir=/lib64)
cd /home/www/soft_download
wget -c https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz
tar -zxvf oniguruma-6.9.4.tar.gz
cd oniguruma-6.9.4/
sudo ./autogen.sh
sudo ./configure --libdir=/lib64
sudo make
sudo make install
sudo ldconfig /usr/local/lib
# 安装ImageMagickb (yum安装不了时)
cd /home/www/soft_download
# git clone https://github.com/ImageMagick/ImageMagick.git ImageMagick-7.1.1
wget -c https://ftp.icm.edu.pl/pub/unix/graphics/ImageMagick/ImageMagick-7.1.1-21.tar.gz
tar -zxvf ImageMagick-7.1.1-21.tar.gz
cd ImageMagick-7.1.1-21
sudo ./configure
sudo make
sudo make install
sudo ldconfig /usr/local/lib
3.2 安装python
python官网找到对应版本下载地址
cd /home/www/soft_download
wget -c https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz
tar -zxvf Python-3.10.11.tgz
cd Python-3.10.11
./configure --prefix=/usr/local/Python-3.10.11
sudo make
sudo make install
# 建立软连接
sudo ln -s /usr/local/Python-3.10.11/bin/python3.10 /usr/bin/python
sudo ln -s /usr/local/Python-3.10.11/bin/pip3.10 /usr/bin/pip
# 查看版本
python --version
# 配置环境变量(pip安装的软件会放置在bin目录下)
> sudo vim /etc/profile
# 配置python
export PYTHON_HOME=/usr/local/Python-3.10.11
export PATH=$PYTHON_HOME/bin:$PATH
# 环境变量生效
source /etc/profile