阿里地区档案管理系统从零到一的部署与配置实战
一、系统环境准备与基础服务安装
系统部署在阿里云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!123和Archive@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,登录后请立即修改)。
验证以下核心功能是否正常:
- 用户登录与权限管理
- 档案目录的创建、编辑、删除
- 档案文件的上传、下载、预览
- 档案借阅申请与审批流程
- 系统日志查看
如果任何功能异常,请检查:
/var/log/nginx/error.log和/var/log/php-fpm/error.log中的错误信息。- 项目
storage/logs/laravel.log中的应用日志。 - 数据库连接状态和表结构是否完整。
- 文件存储目录(
storage/app/public)的写入权限。