主题
环境要求
兰空图床是使用 PHP 语言,并使用 Laravel 开发框架开发的一款 Web 应用程序。 使用兰空图床,需要有一个 Web 服务器。常见的 Web 服务器例如:LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache),它们分别都集成了 Web 应用程序必要的组件。
注意
兰空图床不支持虚拟主机搭建,您必须拥有 Web 服务器的最高控制权,而虚拟主机没有这样的条件。
PHP 要求
您应该确保您的 Web 服务器具有以下最低 PHP 版本和扩展:
- PHP 版本 >= 8.2
- Ctype PHP 扩展
- cURL PHP 扩展
- DOM PHP 扩展
- Fileinfo PHP 扩展
- Filter PHP 扩展
- Hash PHP 扩展
- Mbstring PHP 扩展
- OpenSSL PHP 扩展
- PCRE PHP 扩展
- PDO PHP 扩展
- Session PHP 扩展
- Tokenizer PHP 扩展
- XML PHP 扩展
- Imagick PHP 拓展
- Pcntl PHP 拓展
- Zip PHP 拓展
注意
如果你使用了云服务集成面板,控制面板厂商为了极致的安全追求,会将 PHP 的部分函数禁用,这些被禁用的函数中就包含一些程序运行时必要的函数,这时候您需要找到 PHP 的配置文件,搜索 disable_functions
配置项,将那些函数从这个配置项中移除。
提示
通常情况下,这些拓展大部分都是已经安装并启用了的,程序安装时会检测必要的拓展是否安装,未通过检测则无法进行安装。
数据库
- MariaDB 10.3+
- MySQL 5.7+
- PostgreSQL 10.0+(PHP 需要安装 pgsql 拓展)
- SQLite 3.35.0+
- SQL Server 2017+(PHP 需要安装 sqlsrv 和 pdo_sqlsrv 拓展,以及它们可能需要的任何依赖项,例如 Microsoft SQL ODBC 驱动程序)
服务器配置
Nginx
我们推荐您使用 Nginx + Sqlite3 作为组合来搭建兰空图床,以实现最小化安装。当然,数据库您也可以选择市场主流的 Mysql,但最低版本要求必须为 5.7+。
Supervisor
兰空图床使用消息队列来异步运行程序中的耗时任务,而启动消息队列服务,需要使用 PHP 的 CLI 模式,即通过命令终端执行:php artisan queue:work
使其正常运作。
在生产环境中,您需要一种方法来保持您的 queue:work
进程运行。queue:work
进程可能会因各种原因停止运行,例如超过工作者超时或执行 queue:restart
命令。
因此,您需要配置一个进程监视器,可以检测您的 queue:work
进程何时退出并自动重启它们。此外,进程监视器可以让您指定希望同时运行多少个 queue:work
进程。
Supervisor 是 Linux 环境中常用的进程监视器,我们将在以下文档中讨论如何配置它,或者你也可以选择其他任务你熟悉的进程管理软件。在正式安装之前,我们建议你先浏览一遍该示例文档。
Supervisor 安装以及配置教程(示例)
安装 Supervisor
Supervisor 是 Linux 操作系统的进程监视器,如果 queue:work
进程失败,它将自动重启它们。要在 Ubuntu 上安装 Supervisor,您可以使用以下命令:
shell
sudo apt-get install supervisor
配置 Supervisor
Supervisor 配置文件通常存储在 /etc/supervisor/conf.d
目录中。在此目录中,您可以创建任意数量的配置文件,指示 supervisor 如何监视您的进程。例如,让我们创建一个 lsky-pro-worker.conf
文件,用来启动和监视 queue:work
进程:
ini
[program:lsky-pro-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /www/wwwroot/app.com/artisan queue:work
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www
numprocs=1
redirect_stderr=true
stdout_logfile=/www/wwwroot/app.com/storage/logs/worker.log
stopwaitsecs=3600
在此示例中,numprocs
指令将指示 Supervisor 运行一个 queue:work
进程,并监视所有进程,如果它们失败,则自动重启它们。您应更改配置中的 command
指令,以反映您所需的队列连接和工作者选项。
启动 Supervisor
创建配置文件后,您可以使用以下命令更新 Supervisor 配置并启动进程:
shell
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start "lsky-pro-worker:*"
有关 Supervisor 的更多信息,请查阅 Supervisor 文档。
ImageMagick
ImageMagick 是一款免费的开源软件套件,用于编辑和处理数字图像。它可用于创建、编辑、合成或转换位图图像,并支持多种文件格式,包括 JPEG、PNG、GIF、TIFF 和 PDF。
兰空图床依赖 php imagick 拓展,调用操作系统的 ImageMagick 软件实现图片编辑能力。
注意,php imagick 拓展和 ImageMagick 软件是两个东西,这两个都是必须要安装的。
ImageMagick 是一个独立的软件工具,用于在命令行操作图像(如转换格式、调整大小、添加效果等),而 php imagick 拓展是 PHP 的一个扩展库,它提供了 ImageMagick 的 PHP 接口,用于在 PHP 程序中调用 ImageMagick 的功能。
ImageMagick 安装教程(示例)
检查系统是否安装 imageMagick
shell
dpkg -l | grep imagemagick
shell
rpm -qa | grep ImageMagick
如果没有任何输出则表示没有安装。
安装
shell
sudo apt install imagemagick
shell
sudo yum install ImageMagick
有关 imageMagick 的更多信息,请查阅 imageMagick 文档。
IMPORTANT
综上所述,搭建兰空图片的必要条件为:
- 使用 Nginx 或 Apache 作为 Web 服务器
- PHP 的版本和拓展必须达到要求
- 数据库版本必须达到要求
- 服务器需要安装 ImageMagick 和进程管理软件