osTicketosTicket是一个广泛使用。它将通过电子邮件,电话和基于Web的表单创建的查询无缝集成到一个简单易用的多用户Web界面中。本教程详细的简介了如何在 CentOS 7 上安装 osTicket 并使用免费的 Let’s Encrypt TLS 证书设置 HTTPS的过程。
Vultr官网
[qgg_yellow]点击直达Vultr官方网站[/qgg_yellow]
vultr最新优惠码
vultr长期针对新用户有促销活动,目前新用户注册最高送103美刀,如果你是新用户可以考虑通过下面链接注册,最高可以获得103美刀的免费使用额度。目前vultr已经支持支付宝充值购买,但是如果要参与下面活动,必须使用PayPal、信用卡完成首次充值才有额度赠送哦。
- 赠送100美刀:点击直达(必须通过此地址注册才有送,用户必须活跃30天以上,并且使用至少25美刀)
- 赠送50美刀:点击直达(必须通过此地址注册才有送,用户必须活跃30天以上,并且使用至少25美刀)
- 赠送10美刀:点击直达(必须通过此地址注册才有送,必须活跃30天以上,并且使用至少10美刀)
- 完成推特任务送3美刀教程:Vultr完成三项Twitter任务即可免费获得3美刀使用额度(可以叠加上面活动,每个账号可以参与一次,赠送金额使用期限应该是1年 以上。)
先决条件
- 一台CentOS的7主机,禁用SELinux。
- 按照 Vultr 的最佳指南创建 sudo 用户并更新 CentOS 主机。
本教程假设您拥有一个域名,例如example.com,并且您已将其指向主机 IP 地址。如果没有,请将example.com替换为主机 IP 地址。
确保将代码示例中的example.com替换为您的域名或 IP 地址。
1. 安装 PHP 7.4
CentOS 7 在其官方存储库中提供了 PHP 5.4 版,但 osTicket 不支持该版本。osTicket 推荐的 PHP 版本是 7.4。您可以从 Remi 的 RPM 存储库安装 7.4 版,这是一个长期且受社区信任的 CentOS 存储库。
以非root sudo 用户通过SSH 登录主机,然后安装Remi 的RPM 仓库配置包。
$ sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
安装yum-utils包以配置存储库。
$ sudo yum -y install yum-utils
启用 Remi 的 RPM 存储库。
$ sudo yum-config-manager --disable 'remi-php*' $ sudo yum-config-manager --enable remi-php74
安装 PHP-FPM 和其他必要的 PHP 扩展。
$ sudo yum install -y php-cli php-fpm php-gd php-gettext php-imap php-intl php-json php-mbstring php-xml php-apcu php-mysqli php-opcache
启用 PHP-FPM 服务,以便 PHP-FPM 在启动时运行。
$ sudo systemctl enable php-fpm.service
列出您的 CentOS 系统支持的所有时区。使用UP/DOWN键在列表中移动,然后按Q退出。
$ timedatectl list-timezones
从列表中选择合适的时区,例如America/New_York。然后使用该时区更新您的 CentOS 系统。
$ sudo timedatectl set-timezone America/New_York
打开主要的 PHP 配置文件。
$ sudo nano /etc/php.ini
找到该行;date.timezone =并将其替换为date.timezone = America/New_York。然后保存配置文件并退出。
为了增强主机的安全性,请osticket为 osTicket创建一个名为PHP-FPM 进程的用户/组的专用用户。该用户还拥有 osTicket 源代码文件。
$ sudo adduser osticket
每次要添加、删除或更新源代码文件时,都需要切换到该用户。
从默认配置文件创建 PHP-FPM 配置文件。
$ sudo cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/osticket.conf
重命名默认文件以禁用它并将其保留为备份。
$ sudo yum -y install yum-utils0
打开/etc/php-fpm.d/osticket.conf文件。
$ sudo yum -y install yum-utils1
在配置文件中,任何以 开头的行;都是注释。
确保listen = 127.0.0.1:9000设置不是以开头的,;因为 PHP-FPM 进程127.0.0.1使用9000端口侦听地址。
搜索以下设置,然后:
- 将[www]替换为[osticket]
- 将user = apache替换为user = osticket
- 用group = osticket替换group = apache
- 将/var/log/php-fpm/www-error.log替换为/var/log/fpm-php/osticket/error.log
- 将/var/lib/php/session替换为/var/lib/php/session.osticket
保存配置文件并退出。
为避免弄乱默认文件夹,请创建一个名为/var/log/php-fpm/www-error.log存储日志消息的单独文件夹和一个名为/var/lib/php/session.osticket存储会话数据的文件夹。
$ sudo yum -y install yum-utils2
更新两个文件夹的所有权和权限,以便只有 osTicket 的 PHP-FPM 进程可以写入它们。
$ sudo yum -y install yum-utils3
检查新配置。
$ sudo yum -y install yum-utils4
启动 PHP-FPM 服务。
$ sudo yum -y install yum-utils5
2. 安装 MariaDB 5.5
尽管 CentOS 7 的存储库中不包含 MySQL,但它包含 MariaDB 5.5,这是 MySQL 5.5 的直接替代品。由于 osTicket 支持 MySQL 5.5,因此您可以为 osTicket 安装 MariaDB 5.5。
$ sudo yum -y install yum-utils6
启用 MariaDB 服务,以便 MariaDB 在启动时运行。
$ sudo yum -y install yum-utils7
启动 MariaDB 服务。
$ sudo yum -y install yum-utils8
运行mysql_secure_installation脚本以提高安全性并为 MariaDBroot用户设置密码。
$ sudo yum -y install yum-utils9
对于Enter current password for root (enter for none):问题,只需按,ENTER因为您尚未为root用户设置密码。
对于Set root password? [Y/n]问题,按Y和ENTER设置root密码。
出现提示时输入两次强密码。您可以使用KeePassXC等免费密码管理器或Random Password Generator等在线工具来生成强密码。
对于任何剩余问题,请按Y和ENTER以接受推荐的选项。
完成后,以root用户身份连接到 MariaDB 命令行。
$ sudo yum-config-manager --disable 'remi-php*' $ sudo yum-config-manager --enable remi-php74 0
为 osTicket创建一个名为osticket的 MariaDB 数据库。
$ sudo yum-config-manager --disable 'remi-php*' $ sudo yum-config-manager --enable remi-php74 1
为 osTicket创建一个名为osticket的 MariaDB 用户。更换密码使用强密码。
$ sudo yum-config-manager --disable 'remi-php*' $ sudo yum-config-manager --enable remi-php74 2
退出 MariaDB 命令行。
$ sudo yum-config-manager --disable 'remi-php*' $ sudo yum-config-manager --enable remi-php74 3
3.安装osTicket
下载源代码
创建一个文件夹来存储 osTicket 源代码。
$ sudo yum-config-manager --disable 'remi-php*' $ sudo yum-config-manager --enable remi-php74 4
设置osticket为源代码文件夹的所有者。
$ sudo yum-config-manager --disable 'remi-php*' $ sudo yum-config-manager --enable remi-php74 5
安装 git 包,因为您将使用它来下载 osTicket 源代码。
$ sudo yum-config-manager --disable 'remi-php*' $ sudo yum-config-manager --enable remi-php74 6
切换到osticket用户下载并配置osTicket。
$ sudo yum-config-manager --disable 'remi-php*' $ sudo yum-config-manager --enable remi-php74 7
下载最新的 osTicket。
$ sudo yum-config-manager --disable 'remi-php*' $ sudo yum-config-manager --enable remi-php74 8
将代码部署到/var/www/osticket您在上面创建的文件夹中。
$ sudo yum-config-manager --disable 'remi-php*' $ sudo yum-config-manager --enable remi-php74 9
从示例文件创建配置文件。
$ sudo yum install -y php-cli php-fpm php-gd php-gettext php-imap php-intl php-json php-mbstring php-xml php-apcu php-mysqli php-opcache 0
切换回 sudo 用户以继续设置。
$ sudo yum install -y php-cli php-fpm php-gd php-gettext php-imap php-intl php-json php-mbstring php-xml php-apcu php-mysqli php-opcache 1
4. 安装 Nginx
使用以下命令安装 Nginx。
$ sudo yum install -y php-cli php-fpm php-gd php-gettext php-imap php-intl php-json php-mbstring php-xml php-apcu php-mysqli php-opcache 2
启用 Nginx 服务,以便 Nginx 在启动时运行。
$ sudo yum install -y php-cli php-fpm php-gd php-gettext php-imap php-intl php-json php-mbstring php-xml php-apcu php-mysqli php-opcache 3
为 osTicket 创建一个新的配置文件。
$ sudo yum install -y php-cli php-fpm php-gd php-gettext php-imap php-intl php-json php-mbstring php-xml php-apcu php-mysqli php-opcache 4
粘贴以下内容:
$ sudo yum install -y php-cli php-fpm php-gd php-gettext php-imap php-intl php-json php-mbstring php-xml php-apcu php-mysqli php-opcache 5
保存配置文件并退出。然后检查新配置。
$ sudo yum install -y php-cli php-fpm php-gd php-gettext php-imap php-intl php-json php-mbstring php-xml php-apcu php-mysqli php-opcache 6
启动 Nginx 服务。
$ sudo yum install -y php-cli php-fpm php-gd php-gettext php-imap php-intl php-json php-mbstring php-xml php-apcu php-mysqli php-opcache 7
更新防火墙以允许传入的 HTTP 请求。
$ sudo yum install -y php-cli php-fpm php-gd php-gettext php-imap php-intl php-json php-mbstring php-xml php-apcu php-mysqli php-opcache 8
重新加载当前的防火墙会话。
$ sudo yum install -y php-cli php-fpm php-gd php-gettext php-imap php-intl php-json php-mbstring php-xml php-apcu php-mysqli php-opcache 9
5.(可选)配置HTTPS
如果您拥有有效的域名,则可以免费为您的 osTicket 设置 HTTPS。使用 Certbot 程序,您可以从证书颁发机构 Let’s Encrypt 获得免费的 TLS 证书。
使用 Snap 安装 Certbot
Snap Store 是一个拥有数百万用户的 Linux 应用程序商店。它可以轻松获取具有自动证书续订等功能的最新版本的 Certbot。提供使用 Snap Store 所需的一切的包是snapd。
安装 snapd 包。
$ sudo systemctl enable php-fpm.service 0
启用 snapd 服务。
$ sudo systemctl enable php-fpm.service 1
启用经典快照支持。
$ sudo systemctl enable php-fpm.service 2
获取最新版本的 snapd 核心。
$ sudo systemctl enable php-fpm.service 3
如果出现以下错误,请不要担心。
$ sudo systemctl enable php-fpm.service 4
安装 snapd 后,可能需要一些时间来初始化其环境。请稍等片刻,然后重试上述命令。
安装 Certbot。
$ sudo systemctl enable php-fpm.service 5
使certbot命令全局可用。
$ sudo systemctl enable php-fpm.service 6
获取 Let’s Encrypt 证书
重命名 HTTP 配置文件,使其成为 HTTPS 配置文件的模板。
$ sudo systemctl enable php-fpm.service 7
创建一个新的配置文件来处理 HTTP 请求。
$ sudo yum install -y php-cli php-fpm php-gd php-gettext php-imap php-intl php-json php-mbstring php-xml php-apcu php-mysqli php-opcache 4
粘贴以下内容:
$ sudo systemctl enable php-fpm.service 9
此配置使 Nginx 将所有 HTTP 请求(来自 Let’s Encrypt 的请求除外)重定向到相应的 HTTPS 请求。
保存配置文件并退出。然后检查Nginx配置。
$ sudo yum install -y php-cli php-fpm php-gd php-gettext php-imap php-intl php-json php-mbstring php-xml php-apcu php-mysqli php-opcache 6
应用新配置。
$ timedatectl list-timezones 1
现在您可以运行以下命令来获取 Let’s Encrypt 证书。
$ timedatectl list-timezones 2
您可能需要回答有关与电子前沿基金会共享电子邮件的问题。
完成后,certbot告诉您证书文件和密钥文件的路径:
$ timedatectl list-timezones 3
位于同一文件夹中的另一个关键文件也是下一步所需的chain.pem.
使用 Nginx 安装证书
为 DHE 密码生成带有 DH 参数的文件。
$ timedatectl list-timezones 4
2048是 DH 参数的推荐大小。此过程可能需要一段时间,请耐心等待。
从上面的模板文件创建 HTTPS 配置文件。
$ timedatectl list-timezones 5
打开 HTTPS 配置文件。
$ timedatectl list-timezones 6
找到以下几行:
$ timedatectl list-timezones 7
将它们替换为:
$ timedatectl list-timezones 8
保存配置文件并退出。然后检查Nginx配置。
$ sudo yum install -y php-cli php-fpm php-gd php-gettext php-imap php-intl php-json php-mbstring php-xml php-apcu php-mysqli php-opcache 6
应用新配置。
$ timedatectl list-timezones 1
更新防火墙以允许传入的 HTTPS 请求。
$ sudo timedatectl set-timezone America/New_York 1
重新加载当前的防火墙会话。
$ sudo yum install -y php-cli php-fpm php-gd php-gettext php-imap php-intl php-json php-mbstring php-xml php-apcu php-mysqli php-opcache 9
自动续订
Let’s Encrypt 证书的有效期为 90 天,因此您必须至少每三个月更新一次 TLS 证书。Certbot 安装自动创建了一个 systemd 计时器单元来自动执行此任务。运行以下命令以验证计时器是否处于活动状态。
$ sudo timedatectl set-timezone America/New_York 3
更新证书后,Certbot 不会自动重新加载 Nginx,因此 Nginx 仍然使用旧证书。您必须在/etc/letsencrypt/renewal-hooks/deploy文件夹内编写一个脚本来重新加载 Nginx。
打开你的文本编辑器。
$ sudo timedatectl set-timezone America/New_York 4
粘贴以下内容:
$ sudo timedatectl set-timezone America/New_York 5
保存并退出。然后使脚本可执行。
$ sudo timedatectl set-timezone America/New_York 6
通过试运行测试更新过程。
$ sudo timedatectl set-timezone America/New_York 7
6. 完成 osTicket 设置
重新启动主机以确保它在之后仍然有效。
$ sudo timedatectl set-timezone America/New_York 8
等待系统启动,然后在浏览器中打开http://example.com链接。该osTicket安装程序出现,您将看到您的主机的配置满足所有的最低要求。
单击继续按钮移至osTicket 基本安装。
用您的信息填写表格以更新系统设置并创建管理员用户。
对于Database Settings,在MySQL Database和MySQL Username字段中输入osticket,然后在MySQL Password字段中输入您在步骤 2 中创建的osticket用户的密码。
单击立即安装按钮以安装 osTicket。完成后,它会将您重定向到祝贺屏幕。
删除安装文件夹返回到您的 SSH 会话进行清理。
$ sudo timedatectl set-timezone America/New_York 9
设置root为 osTicket 配置文件的所有者以防止 PHP-FPM 更改它。
$ sudo nano /etc/php.ini 0
您的 osTicket 网站现已准备就绪。您应该打开Staff Control Panel页面 https://example.com/scp/,以继续安装后设置。有关完整和最新的说明,请阅读osTicket 文档的安装后设置指南。
推荐站内搜索:php空间推荐、com域名注册、云服务器vps、虚拟主机测评、php虚拟空间、国内免备案空间、空间免费、网站备案信息查询云服务器租用、便宜域名、