如何轻松在Ubuntu上配置Apache2与PHP,实现网站PHP功能?
- 内容介绍
- 文章标签
- 相关推荐
换个思路。 Ubuntu系统下搭建Apache + PHP开发环境的完整攻略,帮你快速实现网站的动态功能!
前言:为什么选择Ubuntu + Apache + PHP?
#1 开源、 免费,社区活跃,学习资源丰富;#1a Ubuntu 的稳定性让服务器长期无忧;#1b Apache 与 PHP 的结合已经是最成熟、最广泛使用的 Web 堆栈。
如果你想从零开始搭建自己的博客、 电商平台或者后台管理系统, 最终的最终。 一套干净利落的开发环境就能让你省去大量时间。
准备工作:先做“打底”,再来“开工”!
- * 更新软件包列表, 让一切都保持最新:
# sudo apt update && sudo apt upgrade -y
这一步保证后面安装的软件都是官方仓库中的最新版本,避免出现不兼容的问题。
* 确认机器已联网并且拥有 root 或 sudo 权限:
# whoami
root
若不是 root,可以在命令前加上 sudo。
* 如果你使用的是虚拟机或云主机, 请打开对应的平安组端口:**
此处不写具体 IP,只提醒你记得开启对应端口。**
* 为了后面更方便管理, 建议先创建一个专门存放网站文件的目录,比方说 /var/www/myproject。
# mkdir -p /var/www/myproject/public
# chown -R $USER:$USER /var/www/myproject
这样做可以避免后期权限冲突。
温馨提示:在正式生产环境中一定要开启 UFW 防火墙,并只允许必要端口通过。
步骤一:安装 Apache Web Server 并验证其运行状态。
# apt install apache2 -y
Active: active since ...
打开浏览器输入服务器 IP 或 localhost,你应该能看到 “It works!” 的默认页面。若没出现,请检查日志:
# tail -f /var/log/apache2/error.log
常见错误通常是权限或 SELinux 限制。
小彩蛋: "It works!" 页面就是 Apache 的默认欢迎页,它告诉你服务器已经跑起来啦!此时就可以继续下一步了。
步骤二:为 Apache 加装 PHP 支持。
# apt install php libapachemod-php php-cli php-mysql php-curl php-gd php-mbstring -y
PHP 8.x.x
Copyright...
上述命令会把 PHP 与 Apache 做绑定, 并一边装好 MySQL、cURL、GD 等常用
。
如果你的项目需要数据库支持, 记得把 mysql 或 mariadb 一起安装:
# apt install mysql-server -y # 或者 mariadb-server -y
提醒: "libapachemod-php" 是让 Apache 能识别 .php 文件的关键模块,如果缺失,你访问任何 .php 页面都会被当作普通文本直接返回。
步骤三:验证 PHP 是否真的可以被解析。
# nano /var/www/html/info.php
保存后关闭编辑器,在浏览器地址栏输入 `http://your_server_ip/info.php`。
如果看到一页信息满满的页面其中包括 `Your System Configuration Summary:` 就代表成功。
;Tip: "info.php" 必须删掉后再上传到线上,以免泄露敏感信息给黑客!".
; 步骤四:如果你打算托管多个站点,推荐使用 VirtualHost 配置。
- ① 创建站点目录:`mkdir -p /var/www/example.com/public`
- ② 拷贝默认配置文件为新站点模板:`cp /etc/apache/sites-available/000-default.conf /etc/apache/sites-available/example.com.conf`
- ③ 编辑 `example.com.conf`:`nano /etc/apache/sites-available/example.com.conf` , 改动如下:
apacheconf
ServerName example.com
DocumentRoot /var/www/example.com/public
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
Options Indexes FollowSymLinks MultiViews
AllowOverride All # 允许 .htaccess 覆盖设置
Require all granted # 允许所有人访问该目录
注意将 `ServerName` 替换成自己的域名或 IP,DocumentRoot 对应实际路径。
④ 启用站点并重载 Apache:a2ensite example.com.conf && systemctl reload apache2,试试水。
⑤ 验证是否生效:curl http://localhost/ 或者直接在浏览器访问 http://example.com/ 。若显示自定义首页,则表示 VirtualHost 成功部署。
就这样吧... 💡软链接 vs 复制? "在 Debian 系统中推荐使用 a₂ensite 创建软链接, 而不是手工复制文件,这样维护更简单也更平安。" .
步骤五:排查常见错误 & 日志查看技巧。
- ErrorLog 路径不对导致页面白屏?——检查 DocumentRoot 下是否有 index.html 或 index.php 且权限正确;否则请确认 'AllowOverride All'=true 并且 .htaccess 存在且可读。
- 'mod_rewrite' 未启用导致路由失效?——施行 a₂enmod rewrite && systemctl reload apache …'.
- 'Permission denied' 报错?——确保 web 用户 www‑www-data 对 DocumentRoot 有 rwx 权限,可通过 'chown –R www‑www-data:www‑www-data /var/www/...'.
- '404 Not Found' 又一次?——检查虚拟主机配置中的 ServerName 与请求域名完全一致;或者在 DNS 指向错误时仍会报此错误。
步骤六:细调 PHP 参数,让性能与平安双提升。
重要参数说明
- upload_max_filesize 如 20M 默认值是 8M 可根据需求增大。
- post_max_size 至少比 upload_max_filesize 大一些,比方说 25M。
- max_execution_time 单位秒,一般设置为30~60秒即可。
- max_input_time 同上,但用于接收表单数据时生效。
- memory_limit 根据项目需要调整, 比方说512M、1G等,以免脚本因内存不足崩溃。
- date.timezone , 务必设定,否则可能出现警告或日期偏差问题,比方说 'Asia/Shanghai' 。
其他可选
还包括 mysqli、 pdo_mysql 等数据库驱动;以及 redis、memcached 等缓存方案,可按需单独安装和启用。
操作方法:
# 编辑配置文件
sudo nano /etc/php/8.x/apache/php.ini
# 修改完毕后重启服务
sudo systemctl restart apache,最后强调一点。
步骤七:加强平安防护,让你的开发环境稳如磐石。
- 关闭远程根登录 & 强化 SSH 密码策略 — 用密钥登录并禁止密码登录;仅开放必要端口。
\t\t\t\t\t\t \t \t \t \t\t\t \t \tLinux 操作系统有多种方式来加强 SSH 平安, 如修改Port号、防火墙规则等,请自行查阅相关文档!\t \t\t \t
换个思路。 Ubuntu系统下搭建Apache + PHP开发环境的完整攻略,帮你快速实现网站的动态功能!
前言:为什么选择Ubuntu + Apache + PHP?
#1 开源、 免费,社区活跃,学习资源丰富;#1a Ubuntu 的稳定性让服务器长期无忧;#1b Apache 与 PHP 的结合已经是最成熟、最广泛使用的 Web 堆栈。
如果你想从零开始搭建自己的博客、 电商平台或者后台管理系统, 最终的最终。 一套干净利落的开发环境就能让你省去大量时间。
准备工作:先做“打底”,再来“开工”!
- * 更新软件包列表, 让一切都保持最新:
# sudo apt update && sudo apt upgrade -y
这一步保证后面安装的软件都是官方仓库中的最新版本,避免出现不兼容的问题。
* 确认机器已联网并且拥有 root 或 sudo 权限:
# whoami
root
若不是 root,可以在命令前加上 sudo。
* 如果你使用的是虚拟机或云主机, 请打开对应的平安组端口:**
此处不写具体 IP,只提醒你记得开启对应端口。**
* 为了后面更方便管理, 建议先创建一个专门存放网站文件的目录,比方说 /var/www/myproject。
# mkdir -p /var/www/myproject/public
# chown -R $USER:$USER /var/www/myproject
这样做可以避免后期权限冲突。
温馨提示:在正式生产环境中一定要开启 UFW 防火墙,并只允许必要端口通过。
步骤一:安装 Apache Web Server 并验证其运行状态。
# apt install apache2 -y
Active: active since ...
打开浏览器输入服务器 IP 或 localhost,你应该能看到 “It works!” 的默认页面。若没出现,请检查日志:
# tail -f /var/log/apache2/error.log
常见错误通常是权限或 SELinux 限制。
小彩蛋: "It works!" 页面就是 Apache 的默认欢迎页,它告诉你服务器已经跑起来啦!此时就可以继续下一步了。
步骤二:为 Apache 加装 PHP 支持。
# apt install php libapachemod-php php-cli php-mysql php-curl php-gd php-mbstring -y
PHP 8.x.x
Copyright...
上述命令会把 PHP 与 Apache 做绑定, 并一边装好 MySQL、cURL、GD 等常用
。
如果你的项目需要数据库支持, 记得把 mysql 或 mariadb 一起安装:
# apt install mysql-server -y # 或者 mariadb-server -y
提醒: "libapachemod-php" 是让 Apache 能识别 .php 文件的关键模块,如果缺失,你访问任何 .php 页面都会被当作普通文本直接返回。
步骤三:验证 PHP 是否真的可以被解析。
# nano /var/www/html/info.php
保存后关闭编辑器,在浏览器地址栏输入 `http://your_server_ip/info.php`。
如果看到一页信息满满的页面其中包括 `Your System Configuration Summary:` 就代表成功。
;Tip: "info.php" 必须删掉后再上传到线上,以免泄露敏感信息给黑客!".
; 步骤四:如果你打算托管多个站点,推荐使用 VirtualHost 配置。
- ① 创建站点目录:`mkdir -p /var/www/example.com/public`
- ② 拷贝默认配置文件为新站点模板:`cp /etc/apache/sites-available/000-default.conf /etc/apache/sites-available/example.com.conf`
- ③ 编辑 `example.com.conf`:`nano /etc/apache/sites-available/example.com.conf` , 改动如下:
apacheconf
ServerName example.com
DocumentRoot /var/www/example.com/public
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
Options Indexes FollowSymLinks MultiViews
AllowOverride All # 允许 .htaccess 覆盖设置
Require all granted # 允许所有人访问该目录
注意将 `ServerName` 替换成自己的域名或 IP,DocumentRoot 对应实际路径。
④ 启用站点并重载 Apache:a2ensite example.com.conf && systemctl reload apache2,试试水。
⑤ 验证是否生效:curl http://localhost/ 或者直接在浏览器访问 http://example.com/ 。若显示自定义首页,则表示 VirtualHost 成功部署。
就这样吧... 💡软链接 vs 复制? "在 Debian 系统中推荐使用 a₂ensite 创建软链接, 而不是手工复制文件,这样维护更简单也更平安。" .
步骤五:排查常见错误 & 日志查看技巧。
- ErrorLog 路径不对导致页面白屏?——检查 DocumentRoot 下是否有 index.html 或 index.php 且权限正确;否则请确认 'AllowOverride All'=true 并且 .htaccess 存在且可读。
- 'mod_rewrite' 未启用导致路由失效?——施行 a₂enmod rewrite && systemctl reload apache …'.
- 'Permission denied' 报错?——确保 web 用户 www‑www-data 对 DocumentRoot 有 rwx 权限,可通过 'chown –R www‑www-data:www‑www-data /var/www/...'.
- '404 Not Found' 又一次?——检查虚拟主机配置中的 ServerName 与请求域名完全一致;或者在 DNS 指向错误时仍会报此错误。
步骤六:细调 PHP 参数,让性能与平安双提升。
重要参数说明
- upload_max_filesize 如 20M 默认值是 8M 可根据需求增大。
- post_max_size 至少比 upload_max_filesize 大一些,比方说 25M。
- max_execution_time 单位秒,一般设置为30~60秒即可。
- max_input_time 同上,但用于接收表单数据时生效。
- memory_limit 根据项目需要调整, 比方说512M、1G等,以免脚本因内存不足崩溃。
- date.timezone , 务必设定,否则可能出现警告或日期偏差问题,比方说 'Asia/Shanghai' 。
其他可选
还包括 mysqli、 pdo_mysql 等数据库驱动;以及 redis、memcached 等缓存方案,可按需单独安装和启用。
操作方法:
# 编辑配置文件
sudo nano /etc/php/8.x/apache/php.ini
# 修改完毕后重启服务
sudo systemctl restart apache,最后强调一点。
步骤七:加强平安防护,让你的开发环境稳如磐石。
- 关闭远程根登录 & 强化 SSH 密码策略 — 用密钥登录并禁止密码登录;仅开放必要端口。
\t\t\t\t\t\t \t \t \t \t\t\t \t \tLinux 操作系统有多种方式来加强 SSH 平安, 如修改Port号、防火墙规则等,请自行查阅相关文档!\t \t\t \t

