当前位置:首页 > Linux > 正文

Linux下如何安装PHP环境

在Linux上安装PHP环境通常使用包管理器(如apt/yum)安装PHP核心及所需扩展,并配置Web服务器(如Apache或Nginx)支持PHP解析,基本步骤:,1. 安装PHP: sudo apt install php (Debian/Ubuntu) 或 sudo yum install php (RHEL/CentOS),2. 安装Web服务器模块(如Apache的 libapache2-mod-php或Nginx的PHP-FPM),3. 安装常用扩展(如php-mysql),4. 重启Web服务生效

安装前的准备

在Linux系统部署PHP环境前,请确保:

  1. 已获取root或sudo权限
  2. 终端网络连接正常
  3. 确认系统版本(推荐Ubuntu 20.04+/CentOS 7+)
  4. 更新系统:

    Ubuntu/Debian sudo apt update && sudo apt upgrade -y

    CentOS/RHEL

    Linux下如何安装PHP环境 第1张

    sudo yum update -y


分步骤安装指南

安装PHP核心

Ubuntu/Debian

sudo apt install php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip -y

CentOS/RHEL

sudo yum install epel-release -y sudo yum install https://rpms.remirepo.net/enterprise/remi-release-$(rpm -E %rhel).rpm -y sudo yum module enable php:remi-8.1 -y # 以PHP 8.1为例 sudo yum install php php-fpm php-mysqlnd php-curl php-gd php-mbstring php-xml php-zip -y

配置PHP(关键安全设置)

  1. 编辑主配置文件: sudo nano /etc/php/*/fpm/php.ini # Ubuntu路径 sudo nano /etc/php.ini # CentOS路径
  2. 修改以下参数: expose_php = Off # 隐藏PHP版本 cgi.fix_pathinfo=0 # 防止路径遍历攻破 upload_max_filesize = 64M # 调整上传文件大小 post_max_size = 64M memory_limit = 256M

集成Web服务器(Nginx示例)

  1. 安装Nginx:

    Ubuntu

    Linux下如何安装PHP环境 第2张

    CentOS

  2. 配置站点(示例/etc/nginx/sites-available/your_site):

    server { listen 80; server_name your_domain.com; root /var/www/html; location ~ .php$ { include snippets/fastcgi-php.conf; # Ubuntu路径 # include /etc/nginx/fastcgi_params; # CentOS路径 fastcgi_pass unix:/run/php/php-fpm.sock; } }
  3. 重启服务生效:

    Linux下如何安装PHP环境 第3张

    sudo systemctl restart nginx php-fpm sudo systemctl enable nginx php-fpm
  4. 验证安装

    1. 创建测试文件: echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
    2. 浏览器访问: http://your_server_ip/info.php

      预期结果:显示PHP版本、扩展列表等详细信息(测试后务必删除此文件:sudo rm /var/www/html/info.php)


    安全加固措施

    1. 限制敏感函数:在php.ini中添加 disable_functions = exec,passthru,shell_exec,system
    2. 配置文件权限: sudo chown -R www-data:www-data /var/www/html # Ubuntu sudo chown -R nginx:nginx /var/www/html # CentOS sudo find /var/www/html -type d -exec chmod 755 {} ; sudo find /var/www/html -type f -exec chmod 644 {} ;
    3. 启用防火墙:

      Ubuntu sudo ufw allow 'Nginx Full'

      CentOS

      sudo firewall-cmd --permanent --add-service=http --add-service=https sudo firewall-cmd --reload


    故障排查

    • 502 Bad Gateway:检查php-fpm.sock路径是否匹配Nginx配置
    • 扩展未加载:运行php -m确认扩展状态,重启php-fpm
    • 权限拒绝:使用namei -l /var/www/html检查目录权限链


    扩展建议

    1. 性能优化
      • 安装OPcache:sudo apt install php-opcache / sudo yum install php-opcache
      • 调整pm模式(/etc/php-fpm.d/www.conf): pm = dynamic pm.max_children = 50 pm.start_servers = 5
    2. 版本管理

      使用update-alternatives(Ubuntu)或remi仓库(CentOS)切换多版本PHP


    引用说明

0