阿里地区档案管理系统从零到一的部署与配置实战

一、系统环境准备与基础服务安装

系统部署在阿里云ECS服务器上,操作系统选择CentOS 7.9。确保服务器已配置安全组,开放22(SSH)、80(HTTP)、443(HTTPS)、3306(MySQL)端口。

1.1 系统更新与依赖安装

首先以root用户登录服务器,执行以下命令更新系统并安装基础依赖包。

yum update -y
yum install -y wget curl vim git unzip lsof net-tools epel-release
yum groupinstall -y "Development Tools"

1.2 Nginx Web服务器安装与配置

使用Nginx作为反向代理和静态文件服务器。

yum install -y nginx
systemctl start nginx
systemctl enable nginx

编辑Nginx主配置文件:

vim /etc/nginx/nginx.conf

在http块内,确保以下配置存在:

http {
include       /etc/nginx/mime.types;
default_type  application/octet-stream;
sendfile        on;
keepalive_timeout  65;
include /etc/nginx/conf.d/.conf;
}

/etc/nginx/conf.d/目录下创建应用配置文件:

vim /etc/nginx/conf.d/archive.conf

写入以下配置,将your_server_ip替换为你的服务器公网IP或域名。

server {
listen 80;
server_name your_server_ip;  替换为你的IP或域名
root /var/www/archive/public;  假设项目部署在此路径
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}

配置完成后,检查语法并重启Nginx:

nginx -t
systemctl restart nginx

1.3 PHP运行环境安装

档案管理系统基于PHP开发,需要安装PHP 7.4及必要的扩展。

yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php74
yum install -y php php-fpm php-cli php-common php-mysqlnd php-gd php-mbstring php-xml php-zip php-curl php-bcmath php-json php-tokenizer

编辑PHP-FPM配置文件:

vim /etc/php-fpm.d/www.conf

找到并修改以下参数,确保Nginx能与之通信:

user = nginx
group = nginx
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

启动并设置开机自启:

systemctl start php-fpm
systemctl enable php-fpm

1.4 MySQL数据库安装与初始化

使用MySQL 5.7作为数据库。

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
yum install -y mysql-community-server

启动MySQL服务并设置开机启动:

systemctl start mysqld
systemctl enable mysqld

获取初始root密码:

grep 'temporary password' /var/log/mysqld.log

使用该密码登录MySQL:

mysql -uroot -p

登录后立即修改root密码并创建档案系统专用数据库和用户:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword!123';
CREATE DATABASE ali_archive CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'archive_admin'@'localhost' IDENTIFIED BY 'Archive@SecurePass456';
GRANT ALL PRIVILEGES ON ali_archive. TO 'archive_admin'@'localhost';
FLUSH PRIVILEGES;
EXIT;

请务必将上述命令中的YourNewStrongPassword!123Archive@SecurePass456替换为你自己的高强度密码。

二、档案管理系统源码部署与配置

假设系统采用Laravel框架开发,以下为通用部署流程。

2.1 获取项目源码与目录准备

创建项目目录并设置权限:

mkdir -p /var/www/archive
cd /var/www/archive

假设你已通过Git管理代码,将项目克隆到该目录(此处以示例仓库为例):

git clone https://your-git-repo.com/ali-archive-system.git .

如果项目以压缩包形式提供,则上传archive-system.zip/var/www目录并解压:

unzip archive-system.zip -d /var/www/archive

设置正确的目录所有权和权限,这是避免后续权限错误的关键

阿里地区档案管理系统从零到一的部署与配置实战

chown -R nginx:nginx /var/www/archive
chmod -R 755 /var/www/archive
chmod -R 775 /var/www/archive/storage
chmod -R 775 /var/www/archive/bootstrap/cache

2.2 配置环境变量与数据库连接

进入项目根目录,复制环境配置文件:

cd /var/www/archive
cp .env.example .env

编辑.env文件,配置数据库连接和应用基础信息:

vim .env
APP_NAME="阿里地区档案管理系统"
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=http://your_server_ip  替换为你的IP或域名
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=ali_archive
DB_USERNAME=archive_admin
DB_PASSWORD=Archive@SecurePass456  替换为之前设置的数据库用户密码
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
文件存储配置(本地存储)
FILESYSTEM_DRIVER=local
如果涉及大量文件,可考虑配置OSS(阿里云对象存储)
FILESYSTEM_DRIVER=oss
OSS_ACCESS_KEY_ID=your_key
OSS_ACCESS_KEY_SECRET=your_secret
OSS_BUCKET=your_bucket
OSS_ENDPOINT=oss-cn-beijing.aliyuncs.com

生成应用加密密钥:

php artisan key:generate

此命令会自动将生成的密钥填入.env文件的APP_KEY项。

2.3 安装PHP依赖与初始化数据库

使用Composer安装项目依赖。如果服务器未安装Composer,先安装:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
mv composer.phar /usr/local/bin/composer

进入项目目录安装依赖:

cd /var/www/archive
composer install --no-dev --optimize-autoloader

运行数据库迁移和种子数据填充(如果项目提供了初始数据):

php artisan migrate --force
如果项目有初始数据种子文件
php artisan db:seed --force

生成应用链接(如果项目有前端资源):

php artisan storage:link

设置任务调度(如果需要定时任务,如档案备份提醒):

crontab -u nginx -e

在打开的编辑器中添加以下行:

     cd /var/www/archive && php artisan schedule:run >> /dev/null 2>&1

三、系统安全加固与优化

3.1 文件权限与目录保护

确保关键配置文件不可通过Web访问。在Nginx配置文件中,我们已通过location ~ /\.ht { deny all; }拒绝了.htaccess文件访问。另外,确保.env.git目录被保护。可以在Nginx的server块中添加:

location ~ /\.(env|git) {
deny all;
return 403;
}

重启Nginx使配置生效:

systemctl restart nginx

3.2 配置SSL证书启用HTTPS(可选但推荐)

使用Certbot申请免费的Let's Encrypt SSL证书。首先安装Certbot:

yum install -y certbot python3-certbot-nginx

申请证书(确保你的域名已解析到服务器IP):

certbot --nginx -d your_domain.com  替换为你的域名

按照交互提示操作,Certbot会自动修改Nginx配置,重定向HTTP到HTTPS。

3.3 系统备份策略配置

创建数据库自动备份脚本:

vim /usr/local/bin/backup_archive_db.sh

写入以下内容,替换其中的密码为你的实际数据库密码:

!/bin/bash
BACKUP_DIR="/backup/archive_db"
DATE=$(date +%Y%m%d_%H%M%S)
DB_NAME="ali_archive"
DB_USER="archive_admin"
DB_PASS="Archive@SecurePass456"  替换为真实密码
mkdir -p $BACKUP_DIR
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/${DB_NAME}_${DATE}.sql.gz
删除7天前的备份
find $BACKUP_DIR -name ".sql.gz" -mtime +7 -delete

赋予脚本执行权限并加入定时任务:

chmod +x /usr/local/bin/backup_archive_db.sh
crontab -e

添加一行,每天凌晨2点执行备份:

0 2    /usr/local/bin/backup_archive_db.sh

四、系统访问与基础功能验证

在浏览器中访问你的服务器IP或域名(如http://your_server_ip)。你应该能看到档案管理系统的登录页面。

使用系统初始管理员账号登录(具体账号信息通常在项目文档或数据库种子数据中定义,常见为admin@admin.com / password,登录后请立即修改)。

验证以下核心功能是否正常:

  • 用户登录与权限管理
  • 档案目录的创建、编辑、删除
  • 档案文件的上传、下载、预览
  • 档案借阅申请与审批流程
  • 系统日志查看

如果任何功能异常,请检查:

  1. /var/log/nginx/error.log/var/log/php-fpm/error.log中的错误信息。
  2. 项目storage/logs/laravel.log中的应用日志。
  3. 数据库连接状态和表结构是否完整。
  4. 文件存储目录(storage/app/public)的写入权限。
AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

扫码咨询
安答联动微信公众号二维码

微信扫码关注安答联动

申请试用
热线电话
申请试用

安答联动档案管理系统