在Ubuntu上配置PHP需根据项目需求(如Web服务器类型、所需扩展、性能优化等)分步操作,以下是详细指南:
在安装任何软件前,需确保系统包列表是最新的,避免依赖冲突:
sudo apt update
根据项目需求选择PHP版本(如PHP 8.1/8.2)和扩展。以下是基础配置命令:
安装PHP核心及常用扩展(覆盖数据库、加密、图像处理等场景):
sudo apt install php php-cli php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
php:PHP核心解释器;php-cli:命令行PHP工具;php-fpm:FastCGI进程管理器(适用于Nginx/Apache);php-mysql:MySQL数据库驱动;php-curl:HTTP请求库;php-gd:图像处理库(如生成验证码);php-mbstring:多字节字符串支持(如中文处理);php-xml:XML解析库;php-zip:ZIP压缩库。安装特定版本PHP(如PHP 8.2):
若需特定版本,需先添加对应PPA(个人包档案),再安装:
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2 php8.2-cli php8.2-fpm php8.2-mysql php8.2-curl
PHP-FPM(FastCGI Process Manager)能高效处理并发请求,尤其适合Nginx/Apache。
sudo systemctl start php8.2-fpm # 替换为你的PHP版本
sudo systemctl enable php8.2-fpm
www.conf文件(路径随版本变化,如/etc/php/8.2/fpm/pool.d/www.conf),调整以下参数:pm.max_children = 50 # 最大子进程数(根据服务器内存调整,每进程约消耗10-20MB内存)
pm.start_servers = 10 # 启动时的子进程数
pm.min_spare_servers = 5 # 最小空闲子进程数
pm.max_spare_servers = 20 # 最大空闲子进程数
listen = /run/php/php8.2-fpm.sock # 推荐使用Unix socket(性能优于TCP)
修改后重启PHP-FPM:sudo systemctl restart php8.2-fpm
根据项目使用的Web服务器,需调整配置以让Web服务器与PHP通信。
Nginx配置(适用于高性能场景):
编辑Nginx站点配置文件(如/etc/nginx/sites-available/default),添加PHP处理逻辑:
server {
listen 80;
server_name your_domain_or_ip;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf; # 引入FastCGI配置
fastcgi_pass unix:/run/php/php8.2-fpm.sock; # 与PHP-FPM的listen路径一致
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all; # 禁止访问.htaccess文件
}
}
重启Nginx使配置生效:
sudo systemctl restart nginx
Apache配置(适用于传统场景):
启用PHP模块并调整目录索引:
sudo a2enmod php8.2 # 替换为你的PHP版本
sudo systemctl restart apache2
编辑Apache虚拟主机配置(如/etc/apache2/sites-available/000-default.conf),确保DirectoryIndex包含index.php:
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi
</IfModule>
重启Apache:
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信息页面(包含版本、扩展列表等),则说明配置成功。
启用OPcache(加速PHP脚本执行):
OPcache是PHP内置的字节码缓存,能减少脚本编译时间。安装并启用:
sudo apt install php-opcache
编辑php.ini文件(路径可通过php --ini查看,如/etc/php/8.2/cli/php.ini),添加以下配置:
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128 # 缓存大小(MB,根据内存调整)
opcache.max_accelerated_files=10000 # 缓存文件数量
opcache.validate_timestamps=0 # 生产环境关闭文件时间戳检查(提升性能)
重启PHP-FPM和Web服务器使配置生效。
调整内存限制(避免脚本因内存不足崩溃):
编辑php.ini,修改memory_limit(单位:MB,如256MB):
memory_limit = 256M
扩展未找到:若项目需要额外扩展(如redis、imagick),可通过APT安装:
sudo apt install php-redis php-imagick
安装后重启PHP-FPM和Web服务器。
配置未生效:修改配置文件后,务必重启对应服务(PHP-FPM、Nginx/Apache)。
权限问题:确保Web服务器用户(如www-data)对项目目录有读写权限:
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
通过以上步骤,可根据项目需求(如Web服务器类型、扩展需求、性能要求)完成Ubuntu下PHP的配置。需注意,生产环境需额外关注安全性(如禁用危险函数、配置HTTPS、设置防火墙),建议参考官方文档进一步加固。