当前位置: 首页 > news >正文

在Ubuntu中使用Apache2部署项目

1. 安装Apache2

sudo apt update
sudo apt install apache2 -y

安装完成后,Apache会自动启动,通过浏览器访问 http://服务器IP 应看到默认的Apache欢迎页。

2. 配置防火墙(UFW)

sudo ufw allow 'Apache'  # 允许Apache通过防火墙
sudo ufw status  # 检查状态

3. 部署项目文件

  • 自定义目录:/var/www/

若需使用其他目录(如/var/www/myproject),需确保Apache有权限访问:

#myproject替换成你的项目名字
sudo mkdir -p /var/www/myproject
sudo chown -R $USER:$USER /var/www/myproject  # 赋予当前用户权限
sudo chmod -R 755 /var/www/myproject  # 设置目录权限
  • 自定义html页面
echo '<!DOCTYPE html>
<html>
<head><title>我的项目</title>
</head>
<body><h1>Hello World!</h1>
</body>
</html>' | sudo tee /var/www/myproject/index.html > /dev/null

4. 配置虚拟主机

为每个项目创建独立的配置文件,避免冲突:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/myproject.conf

编辑配置文件:

sudo nano /etc/apache2/sites-available/myproject.conf

修改以下内容(示例):

<VirtualHost *:80>ServerAdmin admin@example.comServerName myproject.com  # 或服务器IPDocumentRoot /var/www/myprojectErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combined<Directory /var/www/myproject>Options Indexes FollowSymLinksAllowOverride All  # 允许.htaccess覆盖配置Require all granted</Directory>
</VirtualHost>

启用配置并重启Apache:

sudo a2ensite myproject.conf
sudo a2dissite 000-default.conf  # 可选:禁用默认配置
sudo systemctl restart apache2   # 重启Apache2

5. 测试与调试

  • 检查语法错误:
sudo apache2ctl configtest

以上就可以正常使用Http进行访问了,如果要设置成Https看后续操作,不过我这个Https只是测试项目使用,因为我没有域名,所以没办法申请Let’s Encrypt的受信任的证书。

设置Https访问

  1. 安装必要软件
sudo apt update
sudo apt install apache2 openssl
  1. 生成自签名SSL证书
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \-keyout /etc/ssl/private/apache-selfsigned.key \-out /etc/ssl/certs/apache-selfsigned.crt \-subj "/C=US/ST=State/L=City/O=Organization/CN=localhost"

说明:
CN=localhost:本地测试时使用localhost作为通用名。
证书有效期为365天,到期后需重新生成。

  1. 启用SSL模块
sudo a2enmod ssl
sudo systemctl restart apache2
  1. 配置SSL虚拟主机

手动创建ssl配置文件:

sudo nano /etc/apache2/sites-available/localhost-ssl.conf
  • 内容:
<VirtualHost *:443>ServerName localhostDocumentRoot /var/www/htmlSSLEngine onSSLCertificateFile /etc/ssl/certs/apache-selfsigned.crtSSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
</VirtualHost>
  1. 启用SSL虚拟主机
sudo a2ensite localhost-ssl.conf
sudo systemctl reload apache2
  1. 配置HTTP到HTTPS的重定向
    修改默认虚拟主机配置
sudo nano /etc/apache2/sites-available/000-default.conf
  • 添加以下内容:
<VirtualHost *:80>ServerName localhostRedirect permanent / https://localhost/
</VirtualHost>

启用重写模块:

sudo a2enmod rewrite
sudo systemctl reload apache2

总结

  • 自签名证书:仅适用于本地测试,生产环境需使用受信任的证书(如Let’s Encrypt)。
  • 重定向:通过修改Apache配置或.htaccess实现HTTP到HTTPS的自动跳转。
  • 信任证书:浏览器会提示证书不安全,本地测试时可忽略或手动信任。
http://www.xdnf.cn/news/993295.html

相关文章:

  • FastJSON 1.2.83版本升级指南:安全加固与性能优化实践
  • 二维磁光材料新纪元!NYUAD论文展示CCPS如何解决硅基光子芯片热耗散难题
  • 若依框架中权限字符(perms)的作用
  • Spark on yarn的作业提交流程
  • Android7 Input(十一)App View InputEvent事件分发
  • Appium + Python 测试全流程
  • STM32外设学习之串口
  • ABP vNext + Redis Streams:构建实时事件驱动架构
  • Redis的常用配置详解
  • 如何彻底解决缓存击穿、缓存穿透、缓存雪崩
  • Redis集群模式之Redis Cluster(1)
  • SPP——神经网络中全连接层输出尺寸限制的原因和解决办法
  • 【强连通分量 拓扑序】P9431 [NAPC-#1] Stage3 - Jump Refreshers|普及+
  • HashMap真面目
  • Python数据可视化艺术:动态壁纸生成器
  • 《C++初阶之类和对象》【类 + 类域 + 访问限定符 + 对象的大小 + this指针】
  • Vue3+TypeScript实现中介者模式
  • 【Docker管理工具】安装容器管理工具Oxker
  • 通信网络编程2.0——JAVA
  • HALCON第五讲-> 形状匹配
  • 每日八股文6.12
  • 蓝桥杯20112 不同的总分值
  • 网页怎么调用字体ttf文件?
  • Go 语言安装指南:并解决 `url.JoinPath` 及 `Exec format error` 问题
  • [论文阅读] 系统架构 | 零售 IT 中的微服务与实时处理:开源工具链与部署策略综述
  • MySQL数据库:关系型数据库的基石
  • AVL树的平衡艺术:用C++写出会“站立”的二叉树(未完待续)
  • 【SAS求解多元回归方程】REG多元回归分析-多元一次回归
  • windows基线配置
  • ss928v100模型的导出、量化和转换