当前位置:首页 > 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. 已获取rootsudo权限
  2. 终端网络连接正常
  3. 确认系统版本(推荐Ubuntu 20.04+/CentOS 7+)
  4. 更新系统:
    Ubuntu/Debian

    sudo apt update && sudo apt upgrade -y

    CentOS/RHEL

    sudo yum update -y

分步骤安装指南

安装PHP核心

Ubuntu/Debian

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

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

    sudo apt install nginx -y

    CentOS

    sudo yum install nginx -y
  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. 重启服务生效:

    sudo systemctl restart nginx php-fpm
    sudo systemctl enable nginx php-fpm

验证安装

  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

引用说明

  • PHP官方安装文档:https://www.php.net/manual/en/install.unix.php
  • Nginx PHP配置指南:https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/
  • Linux安全加固标准:CIS Benchmarks
    本文基于主流Linux发行版编写,适用于生产环境部署,定期更新保证方案有效性。
0