【Ubuntu - php环境配置】

本文记录在ubuntu环境下,分别安装php 和 php-fpm,以及如何在nginx中使用。

安装php

通过以下步骤来完成:

  1. 打开终端。

  2. 更新系统软件包列表,以确保安装的软件包是最新的:

    sudo apt update
    
  3. 安装PHP及其相关组件。如果你只需要基本的PHP功能,可以安装 php 包,但如果你需要与 MySQL 或 PostgreSQL 等数据库进行交互,你可能还需要安装其他的 PHP 扩展。常用的扩展包括 php-mysql(用于 MySQL)、php-pgsql(用于 PostgreSQL)等。你可以根据自己的需求选择性安装这些扩展。
    如果需要其他的扩展,可以使用类似的命令安装,例如:

    sudo apt install php
    
    sudo apt install php-mysql
    sudo apt install php-pgsql
    
  4. 安装完成后,你可以通过以下命令验证PHP是否已成功安装:
    这将显示已安装的PHP版本信息。

    php -v
    

安装完成后,你就可以开始在Ubuntu上使用PHP了。

安装php-fpm

如果在安装PHP时没有安装PHP-FPM,你可以按照以下步骤在Ubuntu上安装PHP-FPM:

  1. 打开终端。

  2. 确保你的系统软件包列表是最新的:

    sudo apt update
    
  3. 安装PHP-FPM:

    sudo apt install php-fpm
    
  4. 安装完成后,你可以使用以下命令来检查PHP-FPM是否已成功安装:

    sudo systemctl php-fpm status
    

    如果PHP-FPM正在运行,命令将显示服务的状态信息。如果没有运行,它将会显示服务停止的信息。

  5. 如果需要启动、停止或重启PHP-FPM服务,可以使用以下命令:

    sudo systemctl php-fpm start   # 启动服务
    sudo systemctl php-fpm stop    # 停止服务
    sudo systemctl php-fpm restart # 重启服务
    

安装完成后,PHP-FPM应该就会在你的系统上正常运行了。

安装后,php-fpm在哪里

安装完PHP后,PHP-FPM(PHP FastCGI Process Manager)通常会被安装在系统中,并作为一个系统服务运行。在Ubuntu上,PHP-FPM的配置文件和启动脚本通常位于 /etc/php/{PHP_VERSION}/fpm/ 目录中,其中 {PHP_VERSION} 是你安装的PHP版本号。

你可以在终端中使用以下命令来检查PHP-FPM是否正在运行:

sudo service php{PHP_VERSION}-fpm status

替换 {PHP_VERSION} 为你安装的PHP的实际版本号。

如果PHP-FPM正在运行,命令将显示服务的状态信息,包括运行的进程数量等。如果没有运行,它将会显示服务停止的信息。

要启动或停止PHP-FPM服务,可以使用以下命令:

sudo service php{PHP_VERSION}-fpm start  # 启动服务
sudo service php{PHP_VERSION}-fpm stop   # 停止服务
sudo service php{PHP_VERSION}-fpm restart  # 重启服务

记得将 {PHP_VERSION} 替换为你安装的PHP的实际版本号。

如何在nginx中使用

nginx.conf配置如下

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       8000;
        server_name  localhost;
        root   ${your_root_path};
        index index.php index.html index.htm;
        access_log  /var/nginx/log/access.log;
        error_log   /var/nginx/log/error.log;

        location ~* \.(css|js|jpg|jpeg|png|gif|ico|svg)$ {
            expires max;
            log_not_found off;
        }

        location ~ \.php$ {
            # 设置fastcgi的请求地址
            # 方式1:使用unix socket
            # fastcgi_pass  unix:/tmp/php-cgi.sock; 
            # 方式2: 使用端口,需要在php-fpm的配置文件中设置,
            # 设置方式为下面问题`如何查看php-fpm监听的端口号` 中listen部分
            fastcgi_pass 127.0.0.1:9000;
            # 设置脚本文件请求的路径
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param SCRIPT_FILENAME scripts$fastcgi_script_name;
$fastcgi_script_name
            # 引入fastcgi的配置文件
            include fastcgi_params;
        }
    }

}

问题记录

提示Failed to start php-fpm.service: Unit php-fpm.service not found.

如果在 Ubuntu 上安装 PHP-FPM 后,无法找到 PHP-FPM 服务,可能是由于安装包没有正确配置服务的原因。在这种情况下,你可以手动创建一个服务单元文件来启动 PHP-FPM。以下是一种方法:

  1. 创建 PHP-FPM 服务单元文件
    /etc/systemd/system/ 目录中创建一个新的服务单元文件,命名为 php-fpm.service。可以使用 sudo 权限执行以下命令来创建文件并编辑它:

    sudo nano /etc/systemd/system/php-fpm.service
    

    在文件中输入以下内容:

    [Unit]
    Description=The PHP FastCGI Process Manager
    After=network.target
    
    [Service]
    Type=simple
    ExecStart=/usr/sbin/php-fpm7.4 --nodaemonize --fpm-config /etc/php/7.4/fpm/php-fpm.conf
    ExecReload=/bin/kill -USR2 $MAINPID
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    

    注意:这个示例假设你安装的是 PHP 7.4 版本。如果你安装的是其他版本,例如 PHP 8.0,则需要相应地更改 php-fpm7.4/etc/php/7.4/fpm/php-fpm.conf 的路径。

  2. 保存并退出
    在 Nano 编辑器中,按下 Ctrl + O 保存文件,然后按下 Enter 确认保存。然后按下 Ctrl + X 退出编辑器。

  3. 重新加载 systemd 管理的服务
    执行以下命令以重新加载 systemd 管理的服务单元文件:

    sudo systemctl daemon-reload
    
  4. 启动 PHP-FPM 服务
    现在可以启动 PHP-FPM 服务了:

    sudo systemctl start php-fpm
    
  5. 检查服务状态
    检查 PHP-FPM 服务是否已成功启动:

    sudo systemctl status php-fpm
    

这样,你就手动创建了一个 PHP-FPM 服务单元文件,并启动了 PHP-FPM 服务。

如何查看php-fpm监听的端口号

要查看 PHP-FPM 监听的端口号,你需要查看 PHP-FPM 的配置文件。默认情况下,PHP-FPM 的配置文件通常位于 /etc/php/{PHP_VERSION}/fpm/pool.d/www.conf,其中 {PHP_VERSION} 是你安装的 PHP 的版本号。

你可以通过以下步骤来查看 PHP-FPM 监听的端口号:

  1. 打开终端。

  2. 使用文本编辑器(如 nano 或 vim)打开 PHP-FPM 的配置文件。例如:

    sudo nano /etc/php/7.4/fpm/pool.d/www.conf
    

    请确保将路径替换为你实际的 PHP 版本号。

  3. 在打开的配置文件中,查找 listen 指令。这是 PHP-FPM 监听的地址和端口。通常,它看起来像这样:

    listen = 127.0.0.1:9000
    

    这表示 PHP-FPM 在本地监听端口 9000。端口号可能会因为个人配置而有所不同。

  4. 记下 listen 指令中的端口号。这就是 PHP-FPM 监听的端口。

一旦你找到了 PHP-FPM 监听的端口号,你就可以使用该端口号配置 Web 服务器或其他服务来与 PHP-FPM 进行通信。