在安装任何软件前,确保系统包列表是最新的,以避免依赖冲突:
sudo apt update
Debian提供了多版本PHP(如8.2、7.4),可通过以下命令安装最新稳定版PHP及常用扩展(覆盖数据库、图像处理、JSON解析等场景):
sudo apt install php php-cli php-fpm php-mysql php-zip php-gd php-mbstring php-curl php-xml php-bcmath
php:核心PHP解释器;php-cli:命令行模式下的PHP;php-fpm:FastCGI进程管理器(适用于Nginx);php-mysql/php-mysqli:MySQL数据库扩展;php-gd:图像处理扩展(如生成验证码);php-mbstring:多字节字符串支持(如中文处理)。PHP的主配置文件分为命令行模式(cli)和FPM模式(fpm),路径随版本变化(如PHP 8.2的配置位于/etc/php/8.2/)。
/etc/php/8.2/fpm/php.ini(FPM模式,影响Web请求)或/etc/php/8.2/cli/php.ini(命令行模式),调整以下参数:cgi.fix_pathinfo=0          # 禁用路径信息猜测,提升安全性
upload_max_filesize=20M     # 允许上传的最大文件大小
post_max_size=25M           # POST请求最大数据量
memory_limit=128M           # 单个脚本最大内存占用
display_errors=Off          # 生产环境关闭错误显示(避免泄露敏感信息)
error_log=/var/log/php_errors.log  # 错误日志路径
sudo systemctl restart php8.2-fpm
PHP需与Web服务器配合才能处理动态请求,以下分别介绍Nginx和Apache的配置方法:
Nginx通过fastcgi_pass指令将PHP请求转发给PHP-FPM处理。
/etc/nginx/sites-available/default):sudo nano /etc/nginx/sites-available/default
root路径为你的网站目录):server {
    listen 80;
    server_name your_domain_or_ip;  # 替换为域名或IP
    root /var/www/html;
    index index.php index.html index.htm;
    location / {
        try_files $uri $uri/ =404;  # 尝试匹配文件,不存在则返回404
    }
    location ~ \.php$ {             # 匹配所有.php结尾的请求
        include snippets/fastcgi-php.conf;  # 引入Nginx的FastCGI配置
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;  # 与PHP-FPM通信的Unix套接字
    }
    location ~ /\.ht {              # 禁止访问.htaccess文件(Apache遗留配置)
        deny all;
    }
}
sudo nginx -t   # 检查配置语法
sudo systemctl restart nginx
Apache需启用proxy_fcgi模块,并修改虚拟主机配置以处理PHP文件。
sudo a2enmod proxy_fcgi setenvif  # 启用FastCGI代理和环境变量设置
sudo systemctl restart apache2
/etc/apache2/sites-available/000-default.conf):<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    <Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All       # 允许.htaccess文件覆盖配置
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    <FilesMatch \.php$>         # 将.php文件交给PHP-FPM处理
        SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
    </FilesMatch>
</VirtualHost>
sudo systemctl restart apache2
创建一个info.php文件,用于验证PHP是否正常运行:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
在浏览器中访问http://your_domain_or_ip/info.php,若看到PHP版本、模块列表等信息,则说明配置成功。
安全提示:测试完成后,建议删除info.php文件(sudo rm /var/www/html/info.php),避免泄露服务器信息。
若项目需要管理依赖(如Laravel、Symfony),可安装Composer:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
验证安装:
composer --version
通过以上步骤,你已在Debian上成功配置了PHP环境,可根据项目需求进一步调整扩展或配置。