PHP 安装
三平台安装、集成环境、验证与常用配置。
Key Points开发机上装集成环境最快;服务器上单独装 PHP-FPM + Nginx。
Windows:集成环境最快
Bash
# 方式一:XAMPP(Apache + MySQL + PHP)
# 下载安装包,一路下一步,启动 Apache 即可
# 方式二:winget 单独装 PHP
winget install PHP.PHP
# 验证
php -vOutput
PHP 8.3.12 (cli) (built: Oct 24 2024 12:34:56) (NTS Visual C++ 2019 x64)
Copyright (c) The PHP Group
Zend Engine v4.3.12, Copyright (c) Zend TechnologiesmacOS / Linux
Bash
# macOS
brew install php
# Ubuntu / Debian
sudo apt install php8.3-cli php8.3-fpm php8.3-mysql php8.3-mbstring php8.3-xml php8.3-curl
# CentOS / Rocky
sudo dnf install php-cli php-fpm php-mysqlnd php-mbstring php-xml php-opcache内置服务器
Bash
mkdir demo && cd demo
echo '<?php echo "hello", PHP_EOL;' > index.php
php -S 127.0.0.1:8000Output
PHP 8.3.12 Development Server (http://127.0.0.1:8000) started
$ curl http://127.0.0.1:8000/
hellophp -S is the built-in dev server since PHP 5.4 — single-process, no concurrency tuning, development only. Production uses Nginx plus PHP-FPM.
常用配置
INI
; php.ini
memory_limit = 256M
upload_max_filesize = 20M
post_max_size = 24M
max_execution_time = 30
date.timezone = Asia/Shanghai
display_errors = Off ; 生产环境必须关
error_log = /var/log/php/error.log
; opcache(生产必开)
opcache.enable = 1
opcache.memory_consumption = 128
opcache.validate_timestamps = 0 ; 部署时重启 FPM 刷新Bash
php --ini # 看加载了哪个 php.ini
php -i | grep memory_limit
php -m # 已加载的扩展Output
Configuration File (php.ini) Path: /etc/php/8.3/cli
Loaded Configuration File: /etc/php/8.3/cli/php.ini
memory_limit => 256M => 256Mdisplay_errors = Off in production is mandatory — messages leak file paths, SQL and even credentials. Keep it On in development and separate the two configs.扩展
Bash
# Linux:包管理器装
sudo apt install php8.3-gd php8.3-zip php8.3-redis
# Windows:在 php.ini 里取消注释
# extension=gd
# extension=curl
# extension=mbstring
# extension=openssl
php -m | grep -i mbstringOutput
mbstringWindows:集成环境最快
Bash
# 方式一:XAMPP(Apache + MySQL + PHP)
# 下载安装包,一路下一步,启动 Apache 即可
# 方式二:winget 单独装 PHP
winget install PHP.PHP
# 验证
php -vOutput
PHP 8.3.12 (cli) (built: Oct 24 2024 12:34:56) (NTS Visual C++ 2019 x64)
Copyright (c) The PHP Group
Zend Engine v4.3.12, Copyright (c) Zend TechnologiesmacOS / Linux
Bash
# macOS
brew install php
# Ubuntu / Debian
sudo apt install php8.3-cli php8.3-fpm php8.3-mysql php8.3-mbstring php8.3-xml php8.3-curl
# CentOS / Rocky
sudo dnf install php-cli php-fpm php-mysqlnd php-mbstring php-xml php-opcache内置服务器
Bash
mkdir demo && cd demo
echo '<?php echo "hello", PHP_EOL;' > index.php
php -S 127.0.0.1:8000Output
PHP 8.3.12 Development Server (http://127.0.0.1:8000) started
$ curl http://127.0.0.1:8000/
hellophp -S 是 PHP 5.4 起内置的开发服务器,单进程、无并发优化,只用于开发。生产环境用 Nginx + PHP-FPM。
常用配置
INI
; php.ini
memory_limit = 256M
upload_max_filesize = 20M
post_max_size = 24M
max_execution_time = 30
date.timezone = Asia/Shanghai
display_errors = Off ; 生产环境必须关
error_log = /var/log/php/error.log
; opcache(生产必开)
opcache.enable = 1
opcache.memory_consumption = 128
opcache.validate_timestamps = 0 ; 部署时重启 FPM 刷新Bash
php --ini # 看加载了哪个 php.ini
php -i | grep memory_limit
php -m # 已加载的扩展Output
Configuration File (php.ini) Path: /etc/php/8.3/cli
Loaded Configuration File: /etc/php/8.3/cli/php.ini
memory_limit => 256M => 256Mdisplay_errors = Off 在生产环境是硬性要求——错误信息里会带文件路径、SQL、甚至密码。开发环境设 On 便于调试,两个环境的配置必须分开。扩展
Bash
# Linux:包管理器装
sudo apt install php8.3-gd php8.3-zip php8.3-redis
# Windows:在 php.ini 里取消注释
# extension=gd
# extension=curl
# extension=mbstring
# extension=openssl
php -m | grep -i mbstringOutput
mbstring