Explore complete technical guides covering installation, system requirements, performance benchmarks, customization methods, and troubleshooting.
Category: PHP Scripts | Tech Stack: PHP CodeIgniter, MySQL, Bootstrap 4, jQuery, REST API
Target: cPanel & VPS (2026)
| Requirement | Minimum | Recommended |
|---|---|---|
| OS | Any Linux distro (CentOS 7+, Ubuntu 18.04+) | Ubuntu 22.04 LTS or AlmaLinux 9 |
| Web Server | Apache 2.4 or Nginx 1.18 | Apache 2.4.57 (with mod_rewrite) or Nginx 1.22 |
| PHP | 7.4 | 8.2 (with ext-mbstring, ext-xml, ext-gd, ext-curl, ext-pdo_mysql) |
| MySQL / MariaDB | 5.7 / 10.2 | MySQL 8.0 or MariaDB 10.5 |
| Memory | 512 MB | 2 GB+ |
| Disk Space | 500 MB | 5 GB+ (for logs & backups) |
| SSL | Optional | Mandatory (Let’s Encrypt) |
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
# CentOS/AlmaLinux
sudo dnf update -y# Ubuntu/Debian
sudo apt install -y apache2 php php-cli php-mbstring php-xml php-gd php-curl php-pdo php-mysql nginx mysql-server unzip git
# CentOS/AlmaLinux
sudo dnf install -y httpd php php-cli php-mbstring php-xml php-gd php-curl php-pdo php-mysqlnd nginx mariadb-server unzip gitsudo systemctl disable --now apache2 or httpd) and enable Nginx (sudo systemctl enable --now nginx).sudo mysql_secure_installationFollow the prompts to set a strong root password and remove anonymous users.
Perfex requires a dedicated database with a user that has ALL privileges.
-- Log in as root
mysql -u root -p
-- Create database
CREATE DATABASE perfex_crm CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- Create user (replace 'strong_password')
CREATE USER 'perfex_user'@'localhost' IDENTIFIED BY 'strong_password';
-- Grant privileges
GRANT ALL PRIVILEGES ON perfex_crm.* TO 'perfex_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;perfex_crm) in your robots.txt comment block to avoid accidental crawling of internal tables (# Database: perfex_crm).You can purchase the verified clean untouched source code for a flat $5.00 via 217G. The download link will be delivered instantly after payment.
# Example: using wget with the direct link you receive
wget https://217g.com/downloads/perfex_crm_latest.zip -O perfex.zip# For cPanel, the default public_html path is /home/username/public_html
sudo unzip perfex.zip -d /home/username/public_html/perfex
# Set proper ownership (replace 'username' with your cPanel user)
sudo chown -R username:username /home/username/public_html/perfexcd /home/username/public_html/perfex
# Directories that need write access
find . -type d -exec chmod 775 {} \;
# Files
find . -type f -exec chmod 664 {} \;
# Critical writable folders (uploads, cache, logs)
chmod -R 775 application/cache/
chmod -R 775 assets/uploads/
chmod -R 775 system/logs/777 as it creates security holes and can trigger Google’s “Unsafe” warnings.Create a virtual host file:
<VirtualHost *:80>
ServerName crm.example.com
DocumentRoot /home/username/public_html/perfex
<Directory /home/username/public_html/perfex>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/perfex_error.log
CustomLog ${APACHE_LOG_DIR}/perfex_access.log combined
</VirtualHost>Enable the site and rewrite module:
sudo a2enmod rewrite
sudo a2ensite perfex.conf
sudo systemctl reload apache2Create /etc/nginx/conf.d/perfex.conf:
server {
listen 80;
server_name crm.example.com;
root /home/username/public_html/perfex;
index index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires 30d;
access_log off;
}
error_log /var/log/nginx/perfex_error.log;
access_log /var/log/nginx/perfex_access.log;
}Test and reload:
sudo nginx -t && sudo systemctl reload nginxsudo apt install certbot python3-certbot-nginx # Ubuntu
# or
sudo dnf install certbot python3-certbot-nginx # AlmaLinux
sudo certbot --nginx -d crm.example.comhttps://crm.example.com.localhost, name=perfex_crm, user=perfex_user, password=strong_password.application/config/database.php. After successful installation, delete the install folder (rm -rf /home/username/public_html/perfex/install) to prevent unauthorized re‑installs.| Symptom | Likely Cause | Fix | |
|---|---|---|---|
| 404 Not Found on any route | .htaccess not read (Apache) or missing try_files (Nginx) | Ensure AllowOverride All (Apache) or correct try_files directive (Nginx). | |
| Database connection error | Wrong credentials or missing pdo_mysql extension | Verify application/config/database.php values and run `php -m \ | grep pdo_mysql`. |
| White screen / PHP Fatal error | Insufficient PHP memory limit | Increase memory_limit in php.ini to at least 256M. | |
| File upload fails | Permissions on assets/uploads/ too restrictive | chmod -R 775 assets/uploads/ and confirm ownership. | |
| Cron jobs not executing | Missing cron entry or wrong path | Add * * * * * /usr/bin/php /home/username/public_html/perfex/index.php cron to crontab. | |
| SSL “mixed content” warnings | Hard‑coded http:// URLs in custom modules | Search/replace http:// with https:// in database or use the built‑in URL helper. |
gzip on; for Nginx) to improve page‑load speed—a ranking factor for Core Web Vitals.opcache (sudo apt install php-opcache) and add to php.ini: opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000 crontab -e
# Add the line below (runs every 5 minutes)
*/5 * * * * /usr/bin/php /home/username/public_html/perfex/index.php cron > /dev/null 2>&1mysqldump and rsync for nightly snapshots: # Database backup
mysqldump -u perfex_user -p perfex_crm > /backup/perfex_$(date +%F).sql
# File backup
rsync -a --delete /home/username/public_html/perfex/ /backup/perfex_files/ listen 443 ssl http2; add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header Referrer-Policy "no-referrer-when-downgrade"; User-agent: *
Disallow: /assets/uploads/
Disallow: /system/sitemap.xml and submit it via Google Search Console.<head> of the main layout (application/views/layouts/header.php).A: Yes, as long as the host provides PHP 7.4+ with the required extensions, MySQL, and allows you to set directory permissions to 775. For better performance and control, a VPS or dedicated server is recommended.
A:
application folder.application/config/database.php and any custom modules.php index.php migrations run).A: A 502 usually means PHP‑FPM is not reachable. Verify that php8.2-fpm is running (systemctl status php8.2-fpm) and that the socket path in the Nginx config matches (fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;). Restart both services if needed.
Order now for only $5.00 flat. Receive the complete untouched ZIP archive and database SQL within minutes.