温馨提示×

Ubuntu怎么配置Apache2 PHP

小樊
46
2026-07-31 23:31:31
栏目: 编程语言

下面给你一个在 Ubuntu 上配置 Apache2 + PHP 的完整流程,适用于 Ubuntu 20.04 / 22.04 / 24.04,基本通用。


一、更新系统

sudo apt update
sudo apt upgrade -y

二、安装 Apache2

sudo apt install apache2 -y

启动并设置开机自启

sudo systemctl start apache2
sudo systemctl enable apache2

验证 Apache2 是否运行

浏览器访问:

http://服务器IP

看到 Apache2 Ubuntu Default Page 即成功。


三、安装 PHP(常用版本)

1️⃣ 安装 PHP 及常用扩展

PHP 8.1 为例(Ubuntu 22.04 默认):

sudo apt install php libapache2-mod-php php-cli php-mysql php-curl php-xml php-mbstring php-zip -y

如果你需要其他版本(如 PHP 7.4 / 8.2),可以加 PPA:

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2 libapache2-mod-php8.2

四、配置 Apache2 支持 PHP

1️⃣ 确认 PHP 模块已启用

ls /etc/apache2/mods-enabled/ | grep php

应看到类似:

php8.1.conf
php8.1.load

如果没有:

sudo a2enmod php8.1
sudo systemctl restart apache2

2️⃣ 设置默认优先解析 PHP(可选但推荐)

编辑 Apache 配置:

sudo nano /etc/apache2/mods-enabled/dir.conf

确保 index.php 在最前:

<IfModule mod_dir.c>
    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

保存后重启:

sudo systemctl restart apache2

五、测试 PHP 是否正常工作

创建测试文件

sudo nano /var/www/html/info.php

内容:

<?php
phpinfo();

浏览器访问:

http://服务器IP/info.php

✅ 能看到 PHP 信息页面说明配置成功。

⚠️ 测试完成后建议删除

sudo rm /var/www/html/info.php

六、修改网站根目录(可选)

默认目录:

/var/www/html

如需自定义:

sudo mkdir -p /var/www/example.com
sudo chown -R www-data:www-data /var/www/example.com

新建虚拟主机:

sudo nano /etc/apache2/sites-available/example.com.conf

示例:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example.com

    <Directory /var/www/example.com>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

启用:

sudo a2ensite example.com.conf
sudo systemctl restart apache2

七、常见问题排查

PHP 文件被下载而不是执行

sudo a2enmod php8.1
sudo systemctl restart apache2

403 Forbidden

sudo chown -R www-data:www-data /var/www/html

八、总结

✅ Apache2 安装
✅ PHP 安装
✅ Apache 解析 PHP
✅ 测试成功

如果你需要 PHP + MySQL + Apache(LAMP)多 PHP 版本切换HTTPS(Let’s Encrypt),可以继续问我。

0