插件窝 干货文章 Ubuntu如何编译安装PHP和Nginx

Ubuntu如何编译安装PHP和Nginx

PHP Nginx with sudo 518    来源:    2025-04-27

Ubuntu 下编译安装 PHP 和 Nginx 指南

准备工作

  1. 更新系统并安装编译工具:
sudo apt update
sudo apt upgrade -y
sudo apt install -y build-essential autoconf libtool pkg-config \
    libxml2-dev libssl-dev libcurl4-openssl-dev libonig-dev \
    libsqlite3-dev libpng-dev libjpeg-dev libzip-dev \
    libxslt1-dev libpcre2-dev zlib1g-dev

编译安装 Nginx

  1. 下载 Nginx 源码(以 1.25.3 为例):
wget https://nginx.org/download/nginx-1.25.3.tar.gz
tar -xzvf nginx-1.25.3.tar.gz
cd nginx-1.25.3
  1. 配置编译选项:
./configure \
    --prefix=/usr/local/nginx \
    --sbin-path=/usr/sbin/nginx \
    --conf-path=/etc/nginx/nginx.conf \
    --pid-path=/var/run/nginx.pid \
    --with-http_ssl_module \
    --with-http_v2_module \
    --with-http_realip_module \
    --with-http_stub_status_module \
    --with-threads \
    --with-file-aio
  1. 编译并安装:
make
sudo make install
  1. 创建 systemd 服务文件 /lib/systemd/system/nginx.service
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
  1. 启动并设置开机自启:
sudo systemctl daemon-reload
sudo systemctl start nginx
sudo systemctl enable nginx

编译安装 PHP

  1. 下载 PHP 源码(以 8.2.10 为例):
wget https://www.php.net/distributions/php-8.2.10.tar.gz
tar -xzvf php-8.2.10.tar.gz
cd php-8.2.10
  1. 配置编译选项:
./configure \
    --prefix=/usr/local/php \
    --with-config-file-path=/usr/local/php/etc \
    --enable-fpm \
    --with-fpm-user=www-data \
    --with-fpm-group=www-data \
    --enable-mbstring \
    --enable-zip \
    --enable-bcmath \
    --enable-pcntl \
    --enable-ftp \
    --enable-exif \
    --enable-calendar \
    --with-openssl \
    --with-curl \
    --with-zlib \
    --with-mysqli=mysqlnd \
    --with-pdo-mysql=mysqlnd \
    --with-gd \
    --with-jpeg \
    --with-freetype \
    --with-xsl \
    --with-pear \
    --enable-opcache
  1. 编译并安装:
make
sudo make install
  1. 复制配置文件:
sudo cp php.ini-production /usr/local/php/etc/php.ini
sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
sudo cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
  1. 创建 systemd 服务文件 /lib/systemd/system/php-fpm.service
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target

[Service]
Type=simple
PIDFile=/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target
  1. 启动并设置开机自启:
sudo systemctl daemon-reload
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

配置 Nginx 支持 PHP

  1. 编辑 Nginx 配置文件 /etc/nginx/nginx.conf,在 http 块中添加:
server {
    listen 80;
    server_name localhost;

    root /var/www/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}
  1. 创建测试 PHP 文件:
sudo mkdir -p /var/www/html
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/index.php
  1. 重启 Nginx:
sudo systemctl restart nginx

验证安装

  1. 访问 http://your-server-ip 应该能看到 PHP 信息页面
  2. 检查服务状态:
systemctl status nginx
systemctl status php-fpm

可选配置

  1. 将 PHP 和 Nginx 可执行文件加入 PATH:
echo 'export PATH="/usr/local/php/bin:/usr/local/php/sbin:/usr/local/nginx/sbin:$PATH"' >> ~/.bashrc
source ~/.bashrc
  1. 安装常用 PHP 扩展:
sudo apt install -y php-mysql php-curl php-gd php-mbstring php-xml php-zip

这样就完成了在 Ubuntu 上从源码编译安装 PHP 和 Nginx 的全部过程。