概述

本文部署的是PHP开源项目——like_girl,利用Nginx+PHP+MySQL搭建属于自己的Couple station。

要在Nginx中加载动态页面,通常可以使用FastCGI、PHP-FPM或Lua等方式。

FastCGI

  • 协议:FastCGI是一种协议,用于将请求从Web服务器(如Nginx)传递到应用程序服务器。它是CGI(Common Gateway Interface)的改进版本,旨在提高性能。
  • 通用性:FastCGI可以用于多种编程语言和应用程序,不仅限于PHP。

PHP-FPM

  • 实现:PHP-FPM(PHP FastCGI Process Manager)是PHP的一种实现方式,专门用于处理PHP脚本。它是PHP的FastCGI进程管理器。
  • 优化:PHP-FPM提供了许多高级功能,如进程管理、动态进程生成、日志记录等,专门优化了PHP的性能和稳定性。

联系

  • 使用关系:PHP-FPM是通过FastCGI协议与Web服务器(如Nginx)进行通信的。因此,PHP-FPM可以看作是FastCGI协议在PHP中的具体实现。
  • 配置方式:在Nginx中配置PHP-FPM时,实际上是通过FastCGI协议将请求转发给PHP-FPM处理。

环境

笔者用的debian12.6、php8.2、mysql8.0/8.2,读者不用太担心环境影响,如果项目某些功能使用异常优先考虑php扩展缺失问题,也可以查看nginx错误日志。

安装PHP及扩展

1
apt install  php php-fpm php-mysql php-curl php-mbstring

可以利用dpkg -l | grep ‘php*’查看安装情况

安装MySQL

debian12.6没有mysql8.0的安装包,可以在mysql官网APT包直接下载,

1
2
3
dpkg -i mysql-apt-config_0.8.32-1_all.deb
apt update
apt install mysql

然后将项目内的数据库文件(.sql后缀)导入进去即可。

1
2
3
4
5
6
mysql -u root -p
create database couple;
use couple;
set names utf8;
source /var/www/html/couple/couple.sql
exit

更改项目配置文件

1
vim  /var/www/html/couple/admin/Config_DB.php
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php 
header("Content-Type:text/html; charset=utf8");
//localhost 为数据库地址 一般用默认的即可 或(127.0.0.1)
$db_address = "127.0.0.1";
//数据库用户名
$db_username = "root";
//数据库密码
$db_password = "这里填数据库密码";
//数据库表名 (默认与数据库用户名相同)
$db_name = "couple";
//敏感信息修改安全码 建议设置复杂一些
$Like_Code = "任意填";
?>
1
更改ip.txt文件权限:chmod +x ip.txt

安装Nginx

1
2
3
apt install nginx
编辑nginx配置文件
vim /etc/nginx/conf.d/nginx.conf

(示例)配置文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server {
listen 8080;
server_name 127.0.0.1;

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

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

location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
}

利用nginx -t 检查语句是否错误

1
systemctl start nginx       # 启动nginx

搭建成功后,访问http://ip:8080(前端页面),http://ip:8080/admin(后台管理)