202 lines
4.5 KiB
Markdown
202 lines
4.5 KiB
Markdown
# UNIT3D Update
|
||
|
||
_Whether you're upgrading from UNIT3D v8.3.3 to v9.0.1 or updating your PHP environment from 8.3 to 8.4, this tutorial offers a detailed guide to the entire process._
|
||
|
||
> [!IMPORTANT]
|
||
> backup.
|
||
|
||
## 1. Create a Backup
|
||
|
||
UNIT3D provides built-in backup tools through PHP Artisan.
|
||
|
||
## 2. Table of Contents
|
||
|
||
- [Prerequisites](#3-prerequisites)
|
||
- [Update Procedures](#4-update-procedures)
|
||
- [4.1 Enter Maintenance Mode & Prepare Meilisearch](#41-enter-maintenance-mode--prepare-meilisearch)
|
||
- [4.2 Update PHP to 8.4](#42-update-php-to-84)
|
||
- [4.3 Update UNIT3D](#43-update-unit3d)
|
||
- [4.4 Database Migration Fix](#44-database-migration-fix)
|
||
- [Post-Update Procedures](#5-post-update-procedures)
|
||
- [Troubleshooting](#6-troubleshooting)
|
||
|
||
---
|
||
|
||
## 3. Prerequisites
|
||
|
||
- Complete backup in `~/tempBackup`
|
||
- Sudo privileges
|
||
- Current versions:
|
||
- UNIT3D: **v8.3.3**
|
||
- PHP: **8.3**
|
||
- Required tools:
|
||
```text
|
||
curl, apt, nginx, mysql/mariadb, nano/micro
|
||
```
|
||
|
||
---
|
||
|
||
## 4. Update Procedures
|
||
|
||
### 4.1 Enter Maintenance Mode & Prepare Meilisearch
|
||
|
||
```bash
|
||
cd /var/www/html
|
||
php artisan down
|
||
```
|
||
|
||
**Meilisearch Update:**
|
||
```bash
|
||
sudo apt update
|
||
sudo apt upgrade
|
||
sudo systemctl stop meilisearch
|
||
sudo curl -L https://install.meilisearch.com | sudo sh
|
||
sudo mv ./meilisearch /usr/local/bin/
|
||
sudo chmod +x /usr/local/bin/meilisearch
|
||
sudo rm -rf /var/lib/meilisearch/data
|
||
```
|
||
Proceed with the following command:
|
||
|
||
> **Note:**
|
||
> This step had to be repeated.
|
||
|
||
```bash
|
||
sudo chmod +x /usr/local/bin/meilisearch
|
||
sudo systemctl start meilisearch
|
||
```
|
||
|
||
### 4.2 Update PHP to 8.4
|
||
|
||
Add PHP Repository & Update Package Lists:
|
||
|
||
```bash
|
||
sudo add-apt-repository ppa:ondrej/php
|
||
sudo apt update
|
||
```
|
||
|
||
Backup Current PHP Packages & Install PHP 8.4:
|
||
|
||
```bash
|
||
sudo dpkg -l | grep php | tee ~/tempBackup/packages.txt
|
||
sudo apt install php8.4-common php8.4-cli php8.4-fpm php8.4-{redis,bcmath,curl,dev,gd,igbinary,intl,mbstring,mysql,opcache,readline,xml,zip}
|
||
```
|
||
|
||
**NGINX Configuration Update:**
|
||
1. Edit Nginx configuration file::
|
||
|
||
```bash
|
||
sudo nano /etc/nginx/sites-available/default
|
||
```
|
||
|
||
2. Update the `fastcgi_pass` directive to use the PHP 8.4 socket
|
||
|
||
> **Note:**
|
||
> Locate the line
|
||
> ```nginx
|
||
> fastcgi_pass unix:/var/run/php/***.sock;
|
||
> ```
|
||
> and replace `***` with your site’s identifier.
|
||
|
||
For example, to point to the PHP 8.4 FPM socket:
|
||
|
||
```nginx
|
||
fastcgi_pass unix:/var/run/php/php8.4-fpm.sock;
|
||
```
|
||
Save and exit the editor.
|
||
|
||
3. Test the Nginx configuration:
|
||
```bash
|
||
sudo nginx -t
|
||
```
|
||
|
||
4. Restart Nginx and PHP-FPM, and Remove PHP 8.3:
|
||
|
||
```bash
|
||
sudo nginx -t
|
||
sudo systemctl restart nginx
|
||
sudo systemctl restart php8.4-fpm
|
||
sudo systemctl stop php8.3-fpm
|
||
sudo apt purge '^php8.3.*'
|
||
php -v
|
||
```
|
||
|
||
### 4.3 Update UNIT3D
|
||
|
||
```bash
|
||
cd /var/www/html
|
||
php artisan git:update
|
||
```
|
||
|
||
### 4.4 Database Migration Fix
|
||
|
||
During the update, you might encounter an error related to the tickets table
|
||
|
||
**Resolve NULL values in tickets table:**
|
||
|
||
1. Log in to MySQL:
|
||
|
||
```bash
|
||
mysql -u your_username -p
|
||
```
|
||
|
||
When prompted, enter your MySQL password. Once logged in, select the appropriate database by running:
|
||
|
||
```bash
|
||
USE your_database_name;
|
||
```
|
||
|
||
1. Fix the Null Values:
|
||
|
||
Run the following SQL command to update any null entries in the `staff_read` column to 0:
|
||
|
||
```sql
|
||
UPDATE tickets SET staff_read = 0 WHERE staff_read IS NULL;
|
||
```
|
||
|
||
9. Exit MySQL:
|
||
|
||
```sql
|
||
exit;
|
||
```
|
||
|
||
2. Complete migrations:
|
||
```bash
|
||
php artisan migrate
|
||
```
|
||
|
||
---
|
||
|
||
## 5. Final Reset & Cleanup
|
||
|
||
**After updating and migrating, run the following commands to clear caches, reinstall dependencies, rebuild assets, and restart services:**
|
||
|
||
```bash
|
||
sudo -u www-data composer install --prefer-dist --no-dev -o && \
|
||
sudo php artisan cache:clear && \
|
||
sudo php artisan queue:clear && \
|
||
sudo php artisan auto:email-blacklist-update && \
|
||
sudo php artisan auto:cache_random_media && \
|
||
sudo php artisan set:all_cache && \
|
||
bun install && \
|
||
bun run build && \
|
||
sudo php artisan migrate && \
|
||
sudo systemctl restart php8.4-fpm && \
|
||
sudo php artisan queue:restart && \
|
||
sudo supervisorctl reread && \
|
||
sudo supervisorctl update && \
|
||
sudo supervisorctl reload && \
|
||
sudo php artisan scout:sync-index-settings && \
|
||
sudo php artisan auto:sync_torrents_to_meilisearch --wipe && \
|
||
sudo php artisan auto:sync_people_to_meilisearch
|
||
```
|
||
|
||
**Finally, finish the update and bring your site back online:**
|
||
```bash
|
||
sudo php artisan scout:sync-index-settings && \
|
||
sudo php artisan auto:sync_torrents_to_meilisearch --wipe && \
|
||
sudo php artisan auto:sync_people_to_meilisearch && \
|
||
sudo php artisan set:all_cache && \
|
||
sudo systemctl restart php8.4-fpm && \
|
||
sudo php artisan queue:restart && \
|
||
sudo php artisan up
|
||
``` |