在 Ubuntu 下配置 PHP,通常取决于你的使用场景:命令行(CLI)、Web 服务器(Apache / Nginx)、以及版本选择。下面给你一套从零到可用的完整方案,基本覆盖 90% 的使用场景。
lsb_release -a
sudo apt update
sudo apt install php php-cli php-fpm php-json php-common php-mysql php-zip php-gd php-mbstring php-curl php-xml php-bcmath
Ubuntu 默认源可能版本较旧,建议用 Ondřej Surý PPA(最常用)
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
安装 PHP 8.2:
sudo apt install php8.2 php8.2-cli php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip
查看版本:
php -v
php --ini
常见路径:
/etc/php/8.2/cli/php.ini/etc/php/8.2/fpm/php.inisudo nano /etc/php/8.2/fpm/php.ini
常用修改项:
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
max_execution_time = 120
date.timezone = Asia/Shanghai
保存后重启:
sudo systemctl restart php8.2-fpm
sudo apt install apache2
sudo apt install libapache2-mod-php8.2
sudo systemctl restart apache2
测试:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
访问:
http://服务器IP/info.php
sudo apt install nginx
sudo apt install php8.2-fpm
编辑站点配置:
sudo nano /etc/nginx/sites-available/default
核心配置:
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php index.html;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
}
sudo systemctl restart nginx
sudo systemctl restart php8.2-fpm
CLI 使用的 php.ini 与 Web 不同:
php -i | grep "Loaded Configuration File"
直接运行 PHP 脚本:
php test.php
sudo apt install php8.2-redis
sudo apt install php8.2-mongodb
sudo apt install php8.2-sqlite3
查看已安装扩展:
php -m
php8.2-fpm 是否运行systemctl status php8.2-fpm
sudo apt install php-cli
✅ Nginx + PHP-FPM(主流)
nginx + php8.2-fpm + php8.2-mysql
✅ Apache(简单)
apache2 + libapache2-mod-php8.2
如果你愿意,可以告诉我:
我可以给你精确到每一步的命令。