菜鸟科技网

如何服务器搭建php环境搭建,服务器如何搭建PHP环境?

服务器搭建PHP环境是一个系统性的过程,涉及操作系统选择、软件安装、配置优化及安全加固等多个环节,以下以Linux操作系统(以CentOS 7为例)为基础,详细讲解如何通过多种方式搭建PHP运行环境,并涵盖常见问题的解决方案。

如何服务器搭建php环境搭建,服务器如何搭建PHP环境?-图1
(图片来源网络,侵删)

环境准备与基础配置

在开始搭建PHP环境前,需确保服务器满足基本要求:建议内存至少2GB(推荐4GB以上),硬盘空间预留20GB以上,操作系统为CentOS 7/Ubuntu 18.04 LTS或更高版本,首先通过SSH工具登录服务器,更新系统软件包列表:

# CentOS系统
sudo yum update -y
# Ubuntu系统
sudo apt update && sudo apt upgrade -y

安装必要的编译工具和依赖库,

# CentOS系统
sudo yum groupinstall "Development Tools" -y
sudo yum install wget vim curl openssl-devel libxml2-devel libjpeg-turbo-devel libpng-devel freetype-devel mariadb-devel -y
# Ubuntu系统
sudo apt install build-essential wget vim curl libssl-dev libxml2-dev libjpeg-dev libpng-dev libfreetype6-dev libmariadb-dev -y

搭建方式选择与实施

PHP环境搭建主要有两种方式:通过包管理器安装(快速但版本受限)和手动编译安装(灵活但需处理依赖),以下是两种方式的详细步骤:

(一)通过包管理器安装(以CentOS为例)

  1. 安装Nginx与MariaDB
    使用yum安装Nginx作为Web服务器,MariaDB作为数据库:
    sudo yum install nginx mariadb-server mariadb -y
    sudo systemctl start nginx mariadb
    sudo systemctl enable nginx mariadb
  2. 安装PHP及扩展
    添加EPEL仓库和Remi仓库(提供更高版本的PHP):
    sudo yum install epel-release -y
    sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
    sudo yum install yum-utils -y
    sudo yum-config-manager --enable remi-php74  # 安装PHP 7.4
    sudo yum install php php-fpm php-mysqlnd php-gd php-xml php-mbstring php-curl php-zip -y
  3. 配置Nginx支持PHP
    修改Nginx配置文件(/etc/nginx/nginx.conf),在server块中添加:
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    启动PHP-FPM并设置开机自启:

    如何服务器搭建php环境搭建,服务器如何搭建PHP环境?-图2
    (图片来源网络,侵删)
    sudo systemctl start php-fpm
    sudo systemctl enable php-fpm

(二)手动编译安装PHP(以PHP 8.0为例)

  1. 下载PHP源码并安装依赖
    wget https://www.php.net/distributions/php-8.0.28.tar.gz
    tar -zxvf php-8.0.28.tar.gz
    cd php-8.0.28
    ./buildconf --force
  2. 配置编译参数
    根据需求选择模块支持,
    ./configure --prefix=/usr/local/php \
    --with-curl \
    --with-freetype \
    --with-gd \
    --with-gettext \
    --with-iconv \
    --with-openssl \
    --with-pcre-regex \
    --with-pdo-mysql \
    --with-pear \
    --with-jpeg \
    --with-zlib \
    --enable-bcmath \
    --enable-fpm \
    --enable-mbstring \
    --enable-pdo \
    --enable-xml \
    --enable-zip
  3. 编译与安装
    make -j$(nproc)
    sudo make install
  4. 配置PHP-FPM
    复制配置文件并编辑:
    sudo cp php.ini-production /usr/local/php/lib/php.ini
    sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
    sudo cp sapi/fpm/php-fpm.service /etc/systemd/system/
    sudo systemctl start php-fpm

环境配置与测试

  1. 配置数据库安全
    执行mysql_secure_installation命令,设置MariaDB root密码并移除匿名用户。
  2. 创建PHP测试页面
    在Nginx网站根目录(如/usr/share/nginx/html)创建info.php文件:
    <?php
    phpinfo();
    ?>

    访问服务器IP/info.php,若显示PHP配置信息则说明环境搭建成功。

  3. 优化PHP配置
    编辑php.ini文件(手动安装路径为/usr/local/php/lib/php.ini),调整关键参数:
    memory_limit = 256M
    upload_max_filesize = 100M
    post_max_size = 100M
    max_execution_time = 300

    修改后重启PHP-FPM:sudo systemctl restart php-fpm

安全加固与维护

  1. 配置防火墙规则
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --reload
  2. 定期更新软件
    # CentOS系统
    sudo yum update --security
    # Ubuntu系统
    sudo apt unattended-upgrades install
  3. 监控日志文件
    Nginx日志:/var/log/nginx/error_log
    PHP-FPM错误日志:/var/log/php-fpm/www-error.log

常见问题处理

问题现象 可能原因 解决方案
访问PHP页面显示404 Nginx配置未正确解析PHP 检查location块配置,确保fastcgi_param SCRIPT_FILENAME路径正确
PHP上传文件失败 upload_max_filesize或post_max_size设置过小 修改php.ini中的对应参数并重启PHP-FPM
数据库连接失败 MariaDB服务未启动或用户权限不足 执行systemctl start mariadb,并使用GRANT ALL PRIVILEGES授权用户

相关问答FAQs

Q1: 如何在PHP环境中配置多个虚拟主机?
A1: 在Nginx配置中为每个域名创建独立的server块,指定不同的root目录和端口,

server {
    listen 80;
    server_name example1.com;
    root /var/www/example1;
    location / {
        index index.php index.html;
    }
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

保存后重启Nginx:sudo systemctl restart nginx

如何服务器搭建php环境搭建,服务器如何搭建PHP环境?-图3
(图片来源网络,侵删)

Q2: 如何切换PHP版本(如从7.4升级到8.0)?
A2: 若通过Remi仓库安装,可直接执行:

sudo yum-config-manager --disable remi-php74
sudo yum-config-manager --enable remi-php80
sudo yum update php*

若为手动编译安装,需卸载旧版本后重新编译新版本PHP,并更新Nginx/Apache的PHP-FPM配置路径。

分享:
扫描分享到社交APP
上一篇
下一篇