AApanel Installation Guide π β
Important
AApanel uses a different file-ownership model compared to cPanel or CloudPanel.io. This sometimes causes file permission errors after uploading or extracting the script.
This is not a script issue β it's AApanel's default behavior. Following this guide will fix it permanently.
This guide ensures a clean and smooth installation on AApanel.
Why AApanel Needs Special Attention β
AApanel often extracts or uploads files under the root user, while PHP-FPM runs under www or www-data. This user mismatch causes common errors like:
- β
Permission denied - β
Storage not writable - β
Unable to create symlink - β
Logs not being generated - β
Queue failing
Step 1: Create the Website in AApanel β
- Open AApanel β Website β Add Site
- Set your domain name (e.g.,
yourdomain.com) - Choose the following settings:
- PHP version: 8.1+ (recommended: 8.2 or 8.3)
- Database: MySQL
- Create FTP: Optional
- Click Submit to create the site
After creation, note your installation path:
/www/wwwroot/YOURDOMAINStep 2: Upload the Script β
You can upload the WhatsMarkSaaS script in two ways:
Option A: Using File Manager β
- Open AApanel β Files
- Navigate to
/www/wwwroot/YOURDOMAIN - Upload the
.zipfile - Right-click and select Extract
Option B: Using SSH β
cd /www/wwwroot/YOURDOMAIN
unzip whatsmarksaas.zipTIP
Make sure to extract/upload files inside the domain directory, not in a subdirectory.
Step 3: Fix File Ownership β οΈ (Most Important Step) β
AApanel often extracts files under the root user, but PHP-FPM runs under www or www-data. This mismatch causes all permission errors.
For CentOS / AApanel Default (user: www) β
chown -R www:www /www/wwwroot/YOURDOMAINFor Ubuntu/Debian (user: www-data) β
chown -R www-data:www-data /www/wwwroot/YOURDOMAINImportant
Replace YOURDOMAIN with your actual domain path (e.g., demo.example.com)
Step 4: Set Proper Folder Permissions β
Laravel needs write access to specific directories:
/storage/bootstrap/cache/public/uploads(if using file uploads)
Run the following commands:
chmod -R 775 /www/wwwroot/YOURDOMAIN/storage
chmod -R 775 /www/wwwroot/YOURDOMAIN/bootstrap/cacheIf your script handles file uploads:
chmod -R 775 /www/wwwroot/YOURDOMAIN/public/uploadsSet Permissions via AApanel GUI (Alternative Method) β
You can also set permissions through AApanel's File Manager:
- Navigate to your domain folder
- Right-click on
storageorbootstrap/cachefolders - Select Permission and set to
775

Step 5: Configure PHP Settings β
- Open AApanel β App Store β PHP Settings β Select your PHP version
- Click Install Extensions and enable the following:
Required Extensions:
- β
fileinfo - β
pdo_mysql - β
openssl - β
mbstring - β
zip - β
curl - β
exif - β
bcmath - β
sockets
Recommended Extensions:
- πΉ
opcache(for better performance) - πΉ
redis(for caching and queues)
Go to Disabled Functions tab
Remove these functions if listed (Laravel needs them):
proc_openputenvpcntl_*(all pcntl functions)
Click Save and restart PHP-FPM
Step 6: Set Correct Document Root β
Ensure your website points to the public directory:
/www/wwwroot/YOURDOMAIN/publicHow to Set Document Root: β
- AApanel β Website β Select your site
- Click Site Directory
- Set Running Directory to
/public - Click Save
Step 7: Using Web Installer β
If your script includes a web-based installer, visit:
https://yourdomain.com/installFollow the on-screen prompts to complete the installation.
Step 8: Setup Cron Jobs β
WhatsMarkSaaS requires cron jobs for scheduled tasks.
Add Cron Job in AApanel: β
- AApanel β Cron
- Click Add Cron
- Configure as follows:
Type: Shell Script
Name: WhatsMarkSaaS Scheduler
Execution Cycle: Every minute (*/1 * * * *)
Script Content:
cd /www/wwwroot/YOURDOMAIN && php artisan schedule:run >> /dev/null 2>&1- Click Save
Setup Laravel Horizon (if using queues) β
Refer to the Supervisor Setup Guide for detailed configuration.
Step 9: Restart PHP & Nginx β
Always restart services after installation:
- AApanel β App Store β Installed
- Click Restart next to:
- PHP (your version)
- Nginx or Apache
Alternatively, use SSH:
# Restart PHP-FPM
systemctl restart php-fpm-82 # Replace 82 with your PHP version
# Restart Nginx
systemctl restart nginx
# Or Apache
systemctl restart httpdπ§© Final Notes β
- β
AApanel is powerful but requires manual permission correction because its extraction system sets ownership to
root. - β Once ownership & permissions are fixed using the steps above, WhatsMarkSaaS runs smoothly.
- β
Always use the
wwwuser (orwww-dataon Ubuntu) when running Artisan commands. - β
Regularly check logs at
storage/logs/laravel.logfor any issues.
Additional Resources β
Need Help?
If you still face issues after following this guide, please:
- Check the FAQ section
- Review
storage/logs/laravel.logfor error details - Contact our support team