温馨提示×

PHP Linux环境如何搭建

小樊
48
2025-10-01 11:56:12
栏目: 编程语言

PHP Linux环境搭建指南(以LAMP/LEMP为例)
在Linux系统上搭建PHP环境,通常选择**LAMP(Linux+Apache+MySQL+PHP)LEMP(Linux+Nginx+MySQL+PHP)**组合,以下是详细步骤:

一、环境准备

  1. 更新系统软件包:确保系统包列表最新,避免依赖冲突。
    • Ubuntu/Debian:sudo apt update && sudo apt upgrade -y
    • CentOS/RHEL:sudo yum update -y
  2. 安装必要工具:安装编译工具和开发库(部分扩展需要)。
    • Ubuntu/Debian:sudo apt install build-essential libssl-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libmcrypt-dev libreadline-dev
    • CentOS/RHEL:sudo yum groupinstall "Development Tools" -y

二、安装PHP及核心扩展

根据发行版选择对应命令,建议安装常用扩展(如MySQL、GD、MBString等)以满足Web开发需求:

  • Ubuntu/Debian
    sudo apt install php php-cli php-fpm php-mysql php-gd php-mbstring php-curl php-xml php-zip
    
  • CentOS/RHEL(需先启用EPEL/Remi仓库,以获取最新PHP版本):
    sudo yum install epel-release -y
    sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y  # CentOS 7
    sudo yum-config-manager --enable remi-php82  # 启用PHP 8.2仓库(根据需求调整版本)
    sudo yum install php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-curl php-xml php-zip -y
    

安装完成后,通过php -v验证安装(应显示PHP版本及编译信息)。

三、配置Web服务器

1. Apache配置(LAMP)

  • 安装Apache
    • Ubuntu/Debian:sudo apt install apache2 -y
    • CentOS/RHEL:sudo yum install httpd -y
  • 启用PHP模块
    • Ubuntu/Debian:sudo a2enmod php8.2(替换为实际PHP版本)
    • CentOS/RHEL:Apache默认集成PHP模块,无需额外启用。
  • 配置PHP处理
    编辑Apache配置文件(/etc/apache2/sites-available/000-default.conf/etc/httpd/conf/httpd.conf),确保包含以下内容:
    <FilesMatch \.php$>
        SetHandler application/x-httpd-php
    </FilesMatch>
    
  • 重启Apache
    • Ubuntu/Debian:sudo systemctl restart apache2
    • CentOS/RHEL:sudo systemctl restart httpd

2. Nginx配置(LEMP)

  • 安装Nginx
    • Ubuntu/Debian:sudo apt install nginx -y
    • CentOS/RHEL:sudo yum install nginx -y
  • 配置PHP-FPM
    编辑Nginx站点配置文件(/etc/nginx/sites-available/default/etc/nginx/conf.d/default.conf),在server块中添加以下内容:
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;  # Ubuntu/Debian
        # include fastcgi_params;           # CentOS/RHEL(需手动指定路径)
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;  # 替换为实际PHP-FPM socket路径
    }
    
  • 重启Nginx和PHP-FPM
    • Ubuntu/Debian:sudo systemctl restart nginx php8.2-fpm
    • CentOS/RHEL:sudo systemctl restart nginx php-fpm

四、集成MySQL/MariaDB数据库

  1. 安装数据库
    • Ubuntu/Debian:sudo apt install mysql-server -y
    • CentOS/RHEL:sudo yum install mariadb-server -y(MariaDB为MySQL分支,兼容性高)
  2. 安全配置
    运行sudo mysql_secure_installation,按提示设置root密码、移除匿名用户、禁止远程root登录等。
  3. 创建数据库和用户
    登录MySQL(sudo mysql -u root -p),执行以下SQL:
    CREATE DATABASE your_database_name;
    CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'your_password';
    GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_username'@'localhost';
    FLUSH PRIVILEGES;
    EXIT;
    
  4. 测试PHP与MySQL连接
    创建/var/www/html/test_db.php,内容如下:
    <?php
    $conn = new mysqli('localhost', 'your_username', 'your_password', 'your_database_name');
    if ($conn->connect_error) {
        die("连接失败: " . $conn->connect_error);
    }
    echo "MySQL连接成功";
    ?>
    
    访问http://your_server_ip/test_db.php,显示“MySQL连接成功”则配置正确。

五、环境优化与安全

  1. 调整PHP配置
    编辑php.ini(路径:/etc/php/8.2/apache2/php.ini/etc/php/8.2/fpm/php.ini),修改以下关键参数:
    memory_limit = 256M        # 脚本最大内存
    upload_max_filesize = 64M  # 上传文件大小限制
    post_max_size = 64M        # POST数据大小限制
    date.timezone = Asia/Shanghai  # 时区设置
    display_errors = Off       # 生产环境关闭错误显示(避免泄露敏感信息)
    
    修改后重启Web服务器使配置生效。
  2. 安装Composer
    Composer是PHP依赖管理工具,安装命令:
    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
    php composer-setup.php --install-dir=/usr/local/bin --filename=composer
    php -r "unlink('composer-setup.php');"
    
  3. 配置防火墙
    • Ubuntu(UFW):sudo ufw allow 80/tcp(允许HTTP流量)
    • CentOS(Firewalld):sudo firewall-cmd --add-port=80/tcp --permanent && sudo firewall-cmd --reload

六、常见问题排查

  • PHP页面不解析:检查Web服务器是否加载了PHP模块(如Apache的libapache2-mod-php),确认配置文件中SetHandler指令正确。
  • 502 Bad Gateway(Nginx):检查PHP-FPM服务是否运行(sudo systemctl status php-fpm),确认fastcgi_pass路径与PHP-FPM的socket路径一致。
  • 扩展未加载:使用php -m查看已加载模块,未加载的扩展可通过sudo phpenmod 扩展名(Ubuntu)或sudo yum reinstall php-扩展名(CentOS)安装。

通过以上步骤,可在Linux系统上搭建稳定的PHP环境,支持Web应用开发。根据实际需求,可进一步安装Redis、Memcached等扩展优化性能。

0