1. 项目概述
最近在CentOS7服务器上部署了一个捕鱼达人的在线小游戏,整个过程踩了不少坑,也积累了一些经验。这个项目非常适合Linux初学者练手,涉及了基础的服务器环境配置、Web服务部署和权限管理等核心运维技能。下面我会详细记录整个部署过程,包括环境准备、Apache配置、游戏部署以及一些优化技巧。
2. 环境准备
2.1 系统环境检查
在开始部署前,首先要确认服务器的基本环境信息。执行以下命令查看系统版本和网络配置:
bash复制# 查看主机名
hostname
# 查看IP地址和网络接口
ip addr show
# 查看CentOS版本
cat /etc/centos-release
# 查看内核版本
uname -r
这些信息对于后续的配置和问题排查都很重要。特别是内核版本,某些软件包可能需要特定版本的内核支持。
注意:建议使用CentOS 7.6及以上版本,因为较老的版本可能缺少某些依赖包或存在已知的安全漏洞。
2.2 配置YUM源
为了确保软件包下载速度和稳定性,我选择了阿里云的YUM源。配置步骤如下:
bash复制# 备份原有源
mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
# 下载阿里云Base源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 下载阿里云EPEL源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 清理并重建缓存
yum clean all
yum makecache
配置完成后,建议执行yum update更新系统软件包,但如果是生产环境,需要谨慎评估更新可能带来的影响。
3. Apache HTTP服务器安装与配置
3.1 安装httpd服务
Apache HTTP服务器是部署Web应用的基础,安装非常简单:
bash复制yum install -y httpd
安装完成后,可以通过httpd -v查看安装的版本。我使用的是Apache 2.4.6版本,这个版本已经足够稳定。
3.2 服务配置与启动
Apache的主要配置文件位于/etc/httpd/conf/httpd.conf。在启动服务前,建议做以下基础配置:
- 修改ServerName防止启动警告:
bash复制echo "ServerName localhost" >> /etc/httpd/conf/httpd.conf
- 启动Apache服务并设置开机自启:
bash复制systemctl start httpd
systemctl enable httpd
- 检查服务状态:
bash复制systemctl status httpd
如果看到"active (running)"状态,说明服务已正常启动。
3.3 安全配置
为了服务器安全,建议进行以下基础安全配置:
- 修改默认监听端口(如果需要):
bash复制sed -i 's/Listen 80/Listen 8080/' /etc/httpd/conf/httpd.conf
- 配置防火墙允许HTTP流量:
bash复制firewall-cmd --permanent --add-service=http
firewall-cmd --reload
- 禁用目录浏览(防止敏感文件暴露):
bash复制sed -i 's/Options Indexes FollowSymLinks/Options FollowSymLinks/' /etc/httpd/conf/httpd.conf
3.4 测试Apache
在浏览器中输入服务器IP地址,应该能看到Apache的测试页面。如果看不到,可以检查:
- 防火墙是否放行了80端口
- SELinux是否处于强制模式(可以临时设置为宽容模式测试)
- 服务是否真的启动成功
4. 捕鱼达人游戏部署
4.1 安装Git
游戏源码托管在Git仓库中,所以需要先安装Git:
bash复制yum install -y git
4.2 下载游戏源码
将游戏源码克隆到Apache的默认网站目录:
bash复制cd /var/www/html
git clone https://github.com/example/Fishing-talentGame.git
注意:这里使用的是示例仓库地址,实际部署时需要替换为真实的游戏源码仓库。
4.3 权限设置
正确的权限设置对Web应用的安全至关重要:
bash复制# 设置目录所有者
chown -R apache:apache /var/www/html/Fishing-talentGame
# 设置目录权限
chmod -R 755 /var/www/html/Fishing-talentGame
4.4 重启Apache服务
完成上述配置后,需要重启Apache使配置生效:
bash复制systemctl restart httpd
5. 访问游戏
5.1 通过IP访问
在浏览器中输入服务器IP地址和游戏路径,例如:
code复制http://your_server_ip/Fishing-talentGame/
如果想让游戏成为网站首页,可以创建符号链接:
bash复制rm -f /var/www/html/index.html
ln -s /var/www/html/Fishing-talentGame/index.html /var/www/html/index.html
这样直接访问IP地址就能打开游戏。
5.2 查看游戏文件
可以通过以下命令查看游戏目录结构:
bash复制ls -l /var/www/html/Fishing-talentGame/
确保index.html和其他关键资源文件存在且权限正确。
6. 可选优化配置
6.1 配置虚拟主机(可选)
如果服务器需要托管多个网站,可以配置虚拟主机:
- 创建虚拟主机配置文件:
bash复制vi /etc/httpd/conf.d/vhost.conf
- 添加以下内容(根据实际情况修改):
code复制<VirtualHost *:80>
ServerName game.yourdomain.com
DocumentRoot /var/www/html/Fishing-talentGame
ErrorLog /var/log/httpd/game_error.log
CustomLog /var/log/httpd/game_access.log combined
</VirtualHost>
- 重启Apache服务使配置生效。
6.2 性能优化(可选)
对于游戏这类Web应用,可以做一些性能优化:
- 启用gzip压缩:
bash复制echo "
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
</IfModule>
" >> /etc/httpd/conf/httpd.conf
- 设置浏览器缓存:
bash复制echo "
<FilesMatch "\.(jpg|jpeg|png|gif|js|css)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
" >> /etc/httpd/conf/httpd.conf
7. 常见问题与解决方案
7.1 403 Forbidden错误
如果访问游戏时出现403错误,可能的原因和解决方法:
- 目录权限不足:
bash复制chmod -R 755 /var/www/html/Fishing-talentGame
- SELinux限制:
bash复制# 临时解决方案
setenforce 0
# 永久解决方案
sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
- Apache配置错误:
检查/etc/httpd/conf/httpd.conf中的DocumentRoot和Directory配置是否正确。
7.2 游戏资源加载失败
如果游戏能打开但图片或JS加载失败:
- 检查资源路径是否正确
- 确保所有资源文件权限正确
- 查看浏览器开发者工具中的网络请求,定位具体问题
7.3 Apache无法启动
如果Apache服务无法启动:
- 检查配置文件语法:
bash复制httpd -t
- 查看错误日志:
bash复制tail -n 50 /var/log/httpd/error_log
- 检查端口是否被占用:
bash复制netstat -tulnp | grep :80
8. 维护与监控
8.1 日志监控
Apache的访问日志和错误日志位于:
/var/log/httpd/access_log/var/log/httpd/error_log
可以使用以下命令实时查看日志:
bash复制tail -f /var/log/httpd/error_log
8.2 定期备份
建议定期备份游戏数据和配置:
- 备份游戏文件:
bash复制tar -czvf fishing_game_backup_$(date +%Y%m%d).tar.gz /var/www/html/Fishing-talentGame
- 备份Apache配置:
bash复制tar -czvf apache_config_backup_$(date +%Y%m%d).tar.gz /etc/httpd
8.3 性能监控
可以使用以下工具监控服务器性能:
- 实时监控:
bash复制top
htop
- 网络连接监控:
bash复制iftop
nethogs
- Apache状态监控:
bash复制apachectl status
在实际部署过程中,我发现CentOS7的默认配置已经足够运行这类小游戏,但如果访问量增大,可能需要考虑增加服务器资源或使用Nginx替代Apache以获得更好的性能。另外,游戏本身的优化也很重要,比如合并JS/CSS文件、压缩图片等都能显著提升加载速度。