osTicket是一个用PHP编写的开源工单和帮助台系统。它支持多种集成方式,包括电子邮件、电话和网页表单。您还可以设置自定义字段、过滤器、主题、任务以及自动回复器。
在本教程中,您将学习如何在Ubuntu 24.04服务器上安装osTicket开源工单系统。您将使用LAMP技术栈(Linux、Apache、MariaDB和PHP)来安装osTicket,并通过Certbot和Let's Encrypt为osTicket配置HTTPS安全连接。
前提条件
要完成本教程,请确保满足以下条件:
- 一台Ubuntu 24.04服务器
- 一个具有管理员权限的非root用户
- 一个已指向服务器IP地址的域名
安装依赖
osTicket是一个用PHP编写的开源工单系统。要在Ubuntu系统上安装osTicket,您必须安装LAMP技术栈(Linux、Apache、MariaDB和PHP)。目前需要PHP 8.2版本,因此需要通过第三方仓库进行安装。
首先,运行以下命令安装Ubuntu系统的基础软件包,并添加PHP的PPA仓库。在本教程中,您将使用PPA仓库提供的PHP 8.2版本来安装osTicket。
sudo apt install ca-certificates apt-transport-https software-properties-common lsb-release -y
sudo add-apt-repository ppa:ondrej/php -y

现在运行以下命令在Ubuntu系统上安装LAMP技术栈的依赖包。输入Y确认安装。
sudo apt install apache2 mariadb-server php8.2 libapache2-mod-php8.2 php8.2-mysql php8.2-cgi php8.2-fpm php8.2-cli php8.2-curl php8.2-gd php8.2-imap php8.2-mbstring php-pear php8.2-intl php8.2-apcu php8.2-common php8.2-bcmath php8.2-xml php8.2-zip

安装完成后,使用以下命令检查apache2服务状态。
sudo systemctl is-enabled apache2
sudo systemctl status apache2
您可以看到Apache Web服务器已启用并正在运行。

接下来,使用以下命令检查MariaDB服务器状态。您将看到MariaDB服务器也已在Ubuntu系统上运行并启用。
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

最后,运行以下命令检查PHP版本。您将看到PHP 8.2已通过PPA仓库安装在您的系统上。
sudo php -v
sudo php -m

配置PHP
在本节中,您将通过编辑默认的php.ini文件来配置PHP,并重启Apache Web服务器。
使用nano编辑器打开文件/etc/php/8.2/apache2/php.ini。
sudo nano /etc/php/8.2/apache2/php.ini
将默认配置修改为以下内容。确保根据需要调整date.timezone和memory_limit选项。
date.timezone = Europe/Berlin memory_limit = 512M
完成后,保存文件并退出编辑器。
最后,运行以下systemctl命令重启Apache Web服务器以应用新的PHP配置。
sudo systemctl restart apache2
配置MariaDB服务器
配置完PHP后,您需要保护MariaDB服务器安装并为osTicket创建新的数据库和用户。您将使用mariadb-secure-installation工具来保护MariaDB服务器,然后使用mariadb客户端。
执行以下mariadb-secure-installation命令来保护您的MariaDB服务器安装。
sudo mariadb-secure-installation
现在您将被询问以下配置项:
- 对于没有root密码的默认MariaDB服务器安装,在询问密码时按回车键。
- MariaDB root用户的本地身份验证默认是安全的,在询问是否将身份验证方法更改为unix_socket时输入n。
- 输入Y创建新的MariaDB root密码。然后输入MariaDB root用户的强密码并重复确认。
- 在询问是否禁用MariaDB root用户的远程身份验证时,输入Y同意。
- 默认的MariaDB服务器安装包含test数据库并允许匿名用户访问。两项设置都输入Y以删除默认的test数据库并移除匿名权限。
- 最后,输入Y确认重新加载表权限。
MariaDB服务器配置和保护完成后,您需要为osTicket安装创建一个新的数据库和用户。
使用以下mariadb客户端命令登录MariaDB服务器。在提示时输入您的MariaDB root密码。
sudo mariadb -u root -p
登录后,运行以下SQL语句创建新数据库和用户osticket,密码为osticketpassword。根据需要修改以下详细信息。
CREATE DATABASE osticket;
CREATE USER 'osticket'@'localhost' IDENTIFIED BY 'osticketpassword';
GRANT ALL PRIVILEGES ON osticket.* TO osticket@localhost IDENTIFIED BY "osticketpassword";
FLUSH PRIVILEGES;

现在运行以下查询以确保用户osticket可以访问数据库osticket。
SHOW GRANTS FOR osticket@localhost;
在以下输出中,您可以看到osticket数据库可以通过osticket用户访问。
最后,输入quit退出MariaDB服务器。

下载osTicket
现在您已经配置了PHP和MariaDB服务器,接下来将下载osTicket源代码并设置安装目录。
进入/var/www/目录,使用以下wget命令下载osTicket源代码。
cd /var/www
wget https://github.com/osTicket/osTicket/releases/download/v1.18.1/osTicket-v1.18.1.zip
下载完成后,运行以下unzip命令将osTicket源代码解压到osTicket目录。osTicket安装目录将位于/var/www/osTicket/。
unzip osTicket-v1.18.1.zip -d osTicket
现在运行以下命令将/var/www/osTicket目录的所有权更改为用户www-data,并将默认权限设置为0755。
sudo chown -R www-data:www-data /var/www/osTicket
sudo chmod 755 /var/www/osTicket
最后,运行以下命令将osTicket配置文件复制到/var/www/osTicket/upload/include/ost-config.php。
mv /var/www/osTicket/upload/include/ost-sampleconfig.php /var/www/osTicket/upload/include/ost-config.php
配置Apache虚拟主机
在本节中,您将为osTicket创建一个新的Apache虚拟主机文件。请确保您的域名已指向服务器IP地址。
使用nano编辑器创建新的Apache虚拟主机文件/etc/apache2/sites-available/osticket.conf。
sudo nano /etc/apache2/sites-available/osticket.conf
插入以下配置,确保将ServerName选项修改为您的域名。
<VirtualHost *:80>
ServerName ticket.howtoforge.local
ServerAdmin admin@localhost
DocumentRoot /var/www/osTicket/upload
<Directory /var/www/osTicket/upload>
Require all granted
Options FollowSymlinks
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/osticket.error.log
CustomLog ${APACHE_LOG_DIR}/osticket.access.log combined
</VirtualHost>
完成后,保存文件并退出编辑器。
现在运行以下命令激活osticket.conf文件并验证您的Apache语法。如果Apache语法正确,您将看到输出"Syntax is OK"。
sudo a2ensite osticket.conf
sudo apachectl configtest

最后,运行以下systemctl命令重启Apache Web服务器以应用您的更改。
sudo systemctl restart apache2
使用HTTPS保护osTicket
在本节中,您将使用HTTPS保护osTicket安装。为此,您需要安装并使用Certbot从Let's Encrypt生成SSL/TLS证书。
使用以下apt命令安装certbot和python3-certbot-apache插件。
sudo apt install certbot python3-certbot-apache -y
安装完成后,运行以下certbot命令生成SSL/TLS证书并使用HTTPS保护osTicket。确保将电子邮件地址和域名修改为您的信息。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email admin@example.com -d ticket.example.com
完成后,您的SSL/TLS证书将保存在/etc/letsencrypt/live/domain.com目录中,您的osTicket安装将通过HTTPS得到保护。
安装osTicket
打开您的Web浏览器并访问您的域名,例如https://ticket.example.com。如果一切正常,您将看到osTicket安装向导。
确保osTicket的所有依赖项都已安装,然后点击Continue。

修改基本系统设置(如您的域名),然后输入osTicket的新管理员用户信息,并输入您之前创建的数据库详细信息。

如果安装完成,您将看到以下页面:

接下来,回到您的服务器终端,运行以下命令从osTicket安装目录中删除setup目录。
sudo rm -rf /var/www/osTicket/upload/setup
现在如果您访问osTicket主页,您将看到如下默认页面:

使用您的管理员用户名和密码登录osTicket。

如果您输入了正确的管理员凭据,您将看到以下osTicket管理控制面板。

总结
恭喜!您已经完成了在Ubuntu 24.04服务器上安装osTicket的全部步骤。osTicket已通过LAMP技术栈(Linux、Apache、MariaDB和PHP)成功运行,并且您已通过Certbot和Let's Encrypt为osTicket配置了HTTPS安全连接。