使用PHP源码构建在线聊天网站

环境准备

  1. 服务器及宝塔面板安装
    • 确保你的服务器已安装宝塔面板,并且面板中已配置好所需运行环境(例如:PHP 7.2、MySQL、Nginx/Apache)。
    • 在【软件商店】中确认 PHP 版本为 7.2。
  2. 域名解析
    • 确保你已经购买并解析好域名,域名解析指向当前服务器的公网 IP。

创建网站

  1. 登录宝塔面板
    • 使用管理员账号登录宝塔面板。
  2. 添加站点
    • 点击左侧【网站】模块,然后点击右上角的【添加站点】按钮。
    • 在弹出的对话框中填写:
      • 域名:例如 example.com
      • 网站目录:如默认生成的 /www/wwwroot/example.com(也可以自定义)
      • PHP版本:选择 PHP 7.2
      • 数据库:这时候先不要创建MySQL数据库
      • 其它:默认不动
    • 点击【提交】,站点即创建成功。

免费申请并启用 SSL 证书

  1. 进入 SSL 设置
    • 在【网站】模块中,点击你所创建站点,进入站点详情页,然后切换到【SSL】选项卡。
  2. 申请 Let’s Encrypt 证书
    • 选择“Let’s Encrypt 免费证书”,填写对应的域名和有效邮箱地址。
    • 勾选【自动续签】(建议开启)。
    • 点击【申请证书】,宝塔会自动进行域名验证(请确保 80 和 443 端口已开放)。
  3. 启用 HTTPS
    • 证书申请成功后,点击【启用 SSL】。
    • 如有需要,可以在【网站】模块中开启【强制 HTTPS】,确保所有访问均采用安全连接。

上传并调整源码

  1. 上传源码
    • 在宝塔面板的【文件】管理器中,进入你新建站点的根目录(例如:/www/wwwroot/example.com)。
    • 点击【上传】按钮,将你准备好的在线聊天系统源码上传到该目录(是一个压缩包)。
  2. 解压源码
    • 上传后,在文件管理器中选中压缩包,点击【解压】。等待解压完成。
  3. 调整目录结构
    • 解压后,你可能会看到一个名为 chat 的文件夹,该文件夹中存放了所有网站程序文件。
    • 进入 chat 文件夹,将里面的所有文件剪切(或移动)到上级根目录(即 /www/wwwroot/example.com)。
    • 移动完成后,删除空的 chat 文件夹,确保根目录下仅有实际运行需要的文件。

创建数据库及设置权限

  1. 创建数据库
    • 在宝塔面板左侧点击【数据库】。
    • 点击右上角的【添加数据库】按钮。
    • 在弹出的窗口中填写:
      • 数据库名称:固定为 chat-room
      • 用户名:固定为 chat-room
      • 密码:自定义一个密码(请妥善保存)
    • 点击【提交】,完成数据库的创建。
  2. 设置数据库权限(通过 phpMyAdmin)
    • 在宝塔面板上方找到“phpMyAdmin”入口,点击进入。
    • 点击上方的【账户】选项,找到与 chat-room 数据库相关的账户记录。

      注意:通常会显示两条记录,一个针对本地(127.0.0.1),一个针对localhost。
    • 分别对这两个账户进行如下操作:
      • 点击对应账户旁的【修改权限】按钮。
      • 在权限设置页面中,找到【全局权限】区域,勾选【全选】的复选框。
      • 滚动至页面底部,点击【执行】按钮保存修改。
    • 重复以上步骤,将两个账户(127.0.0.1 和 localhost)都修改为最高权限。

运行安装向导

  1. 访问安装页面
  2. 按向导进行安装
    • 在安装界面中,根据提示依次填写数据库连接信息:
      • 数据库主机:默认为 localhost
      • 数据库名称:默认chat_room。(注意注意)
      • 数据库用户名:填写 chat-room
      • 数据库密码:填写你自定义的密码。
    • 管理员信息部分
    • 在同一安装界面下方,你还需要设置管理员的基本信息,包括管理员名称、账户昵称和密码。
    • 填写完成后,安装程序将创建后台管理员账户。
    • 按照向导完成后续步骤,系统会自动创建所需数据表。
  3. 安全提示
    • 安装完成后,请务必删除或重命名 install.php 文件,防止被恶意利用。
    • 安装完成后,后台登录地址为你的域名后加上 /admin(例如:http://example.com/admin)。