PNLCS'i çalıştırın
PNLCS bir Laravel uygulamasıdır. PHP 8.4, MySQL ya da MariaDB ve bir web sunucusu bulunan her yerde çalışır. Önce etrafa göz atmak isterseniz canlı demo gerçek bir kurulumdur.
docker pull panelica/pnlcs-runtime
Üç kurulum yolu
| Yol | En uygun olduğu durum | Süre | Rehber |
|---|---|---|---|
| Docker | PNLCS'i denemek ya da tek bir container olarak çalıştırmak | Yaklaşık 5 dakika | Komutlar |
| Kendi sunucunuz | Docker'sız bir VPS ya da dedicated sunucu: Ubuntu, Debian, AlmaLinux veya Rocky Linux | Yaklaşık 30 dakika | Komutlar |
| Bir hosting paneli içinde | Zaten Panelica, cPanel ya da benzeri çalıştıran bir sunucu | Yaklaşık 20 dakika | Rehber |
Docker ile hızlı başlangıç
Resmî imaj PHP-FPM 8.4, nginx, Node.js 20 ve supervisor içerir; ilk açılışta en güncel kodu indirir.
- Container'ları başlatınÖnce
changemedeğerlerini kendi şifrelerinizle değiştirin. - 3 ila 5 dakika bekleyinİlk açılışta bağımlılıklar kurulur ve frontend derlenir.
- /install adresini açınSihirbaz gereksinimleri kontrol eder, yönetici hesabınızı oluşturur ve ardından kendini kilitler.
$ docker network create pnlcs-net $ docker run -d --name pnlcs-db --network pnlcs-net \ -e MYSQL_ROOT_PASSWORD=changeme \ -e MYSQL_DATABASE=pnlcs -e MYSQL_USER=pnlcs \ -e MYSQL_PASSWORD=changeme \ mariadb:11 $ docker run -d --name pnlcs --network pnlcs-net \ -p 8090:80 \ -e DB_HOST=pnlcs-db -e DB_DATABASE=pnlcs \ -e DB_USERNAME=pnlcs -e DB_PASSWORD=changeme \ -e APP_URL=http://localhost:8090 \ panelica/pnlcs-runtime:1.4
Docker olmadan kendi sunucunuza kurulum
PNLCS, PHP-FPM 8.4, MySQL ya da MariaDB ve Nginx üzerinde normal bir Laravel uygulaması olarak çalışır. Aşağıdaki komutlar Ubuntu 24.04, Debian 13 ve AlmaLinux 9 içindir; Rocky Linux 9'da AlmaLinux komutları kullanılır. Komutlardaki example.com adresini kendi adresinizle değiştirin.
-
Sunucuyu hazırlayın
Eklentileriyle birlikte PHP 8.4, bir veritabanı, Nginx, arayüzü derlemek için Node.js 20 ve Composer. Bunlar zaten kuruluysa bu adımı atlayın.
Ubuntu 24.04 PHP 8.3 ile gelir, bu yüzden PHP 8.4 ondrej PPA'sından kurulur. Debian 13 PHP 8.4'ü kendi depolarında sunar, MySQL yerine MariaDB ile gelir ve
php8.4-imappaketi yoktur. AlmaLinux ve Rocky'de PHP 8.4 Remi deposundan gelir.Terminal$ sudo apt update $ sudo apt install -y software-properties-common git unzip curl cron $ sudo add-apt-repository -y ppa:ondrej/php $ sudo apt update $ sudo apt install -y php8.4-fpm php8.4-cli php8.4-mysql php8.4-mbstring \ php8.4-xml php8.4-curl php8.4-zip php8.4-gd php8.4-bcmath php8.4-intl php8.4-imap $ sudo apt install -y mysql-server nginx $ curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - $ sudo apt install -y nodejs $ curl -sS https://getcomposer.org/installer | php $ sudo mv composer.phar /usr/local/bin/composer
Terminal$ sudo apt update $ sudo apt install -y git unzip curl cron $ sudo apt install -y php8.4-fpm php8.4-cli php8.4-mysql php8.4-mbstring \ php8.4-xml php8.4-curl php8.4-zip php8.4-gd php8.4-bcmath php8.4-intl $ sudo apt install -y mariadb-server nginx $ curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - $ sudo apt install -y nodejs $ curl -sS https://getcomposer.org/installer | php $ sudo mv composer.phar /usr/local/bin/composer
Terminal$ sudo dnf install -y epel-release https://rpms.remirepo.net/enterprise/remi-release-9.rpm $ sudo dnf module reset php -y $ sudo dnf module enable php:remi-8.4 -y $ sudo dnf install -y php php-fpm php-mysqlnd php-mbstring php-xml php-gd \ php-bcmath php-intl php-imap php-pecl-zip \ mysql-server nginx git unzip cronie policycoreutils-python-utils $ curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash - $ sudo dnf install -y nodejs $ curl -sS https://getcomposer.org/installer | php $ sudo mv composer.phar /usr/local/bin/composer $ sudo systemctl enable --now php-fpm mysqld nginx
-
Uygulamayı kurun
PNLCS dizini web sunucusu kullanıcısına aittir ve her
composer,artisanvenpmkomutu bu kullanıcıyla çalıştırılır.pnyardımcısı bunu sizin yerinize yapar. Dizin root kullanıcısına aitse kurulum sihirbazı ve sonraki güncellemeler başarısız olur.Tek bir veritabanı şifresi seçin ve bunu hem
CREATE USERkomutunda hem de.envsatırında kullanın.pnyardımcısı yalnızca geçerli kabuk oturumu boyunca tanımlı kalır; yeniden giriş yaptıktan sonra onu tekrar tanımlayın.Şu komutu çalıştırmayın:
db:seed. Kurulum sihirbazı veritabanına başlangıç verilerini yükler ve seçtiğiniz yöneticiyi oluşturur.Terminal$ sudo git clone https://github.com/Panelica/pnlcs.git /var/www/pnlcs $ sudo chown -R www-data:www-data /var/www/pnlcs $ cd /var/www/pnlcs $ pn() { sudo -u www-data HOME=/tmp/pnlcs-home COMPOSER_HOME=/tmp/pnlcs-home/composer "$@"; } $ pn composer install --no-dev --optimize-autoloader --no-interaction $ sudo mysql -e "CREATE DATABASE pnlcs CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'pnlcs'@'localhost' IDENTIFIED BY 'choose-a-strong-password'; GRANT ALL PRIVILEGES ON pnlcs.* TO 'pnlcs'@'localhost'; FLUSH PRIVILEGES;" $ pn cp .env.example .env $ pn sed -i 's|^APP_URL=.*|APP_URL=http://example.com|; s|^DB_PASSWORD=.*|DB_PASSWORD=choose-a-strong-password|' .env $ sudo chmod 640 .env $ pn php artisan key:generate $ pn php artisan migrate --force $ pn npm ci $ pn npm run build $ pn php artisan storage:link $ pn php artisan optimize
Terminal$ sudo git clone https://github.com/Panelica/pnlcs.git /var/www/pnlcs $ sudo chown -R apache:apache /var/www/pnlcs $ cd /var/www/pnlcs $ pn() { sudo -u apache HOME=/tmp/pnlcs-home COMPOSER_HOME=/tmp/pnlcs-home/composer "$@"; } $ pn /usr/local/bin/composer install --no-dev --optimize-autoloader --no-interaction $ sudo mysql -e "CREATE DATABASE pnlcs CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'pnlcs'@'localhost' IDENTIFIED BY 'choose-a-strong-password'; GRANT ALL PRIVILEGES ON pnlcs.* TO 'pnlcs'@'localhost'; FLUSH PRIVILEGES;" $ pn cp .env.example .env $ pn sed -i 's|^APP_URL=.*|APP_URL=http://example.com|; s|^DB_PASSWORD=.*|DB_PASSWORD=choose-a-strong-password|' .env $ sudo chmod 640 .env $ pn php artisan key:generate $ pn php artisan migrate --force $ pn npm ci $ pn npm run build $ pn php artisan storage:link $ pn php artisan optimize $ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/pnlcs/storage(/.*)?" $ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/pnlcs/bootstrap/cache(/.*)?" $ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/pnlcs/\.env" $ sudo restorecon -R /var/www/pnlcs $ sudo setsebool -P httpd_can_network_connect_db 1 $ sudo setsebool -P httpd_can_network_connect 1
-
Nginx'i public/ dizinine yönlendirin
Belge kök dizini
public/dizinidir, asla proje kök dizini değildir, çünkü proje kök dizininde şu dosya bulunur:.env. Varsayılan siteyi kaldırın; aksi halde sunucunun adresi Nginx karşılama sayfasını göstermeye devam eder.Apache ve Caddy de aynı kurallarla çalışır: belge kök dizini
public/, PHP için PHP-FPM 8.4 ve dosya olmayan her istek şuraya yönlendirilir:index.php.Terminal$ sudo tee /etc/nginx/sites-available/pnlcs > /dev/null <<'EOF' server { listen 80; server_name example.com; root /var/www/pnlcs/public; index index.php; charset utf-8; client_max_body_size 64M; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/run/php/php8.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.(?!well-known).* { deny all; } } EOF $ sudo ln -s /etc/nginx/sites-available/pnlcs /etc/nginx/sites-enabled/ $ sudo rm -f /etc/nginx/sites-enabled/default $ sudo nginx -t && sudo systemctl reload nginx
Terminal$ sudo tee /etc/nginx/conf.d/pnlcs.conf > /dev/null <<'EOF' server { listen 80; server_name example.com; root /var/www/pnlcs/public; index index.php; charset utf-8; client_max_body_size 64M; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.(?!well-known).* { deny all; } } EOF $ sudo nginx -t && sudo systemctl reload nginx
-
Tarayıcıda tamamlayın, ardından zamanlamayı ve güvenliği ayarlayın
Tarayıcıda şu adresi açın:
http://example.com/install. Sihirbaz gereksinimleri kontrol eder, yöneticinizi oluşturur ve ardından kendini kapatır.Web sunucusu kullanıcısı için tek bir cron satırı faturaları, hatırlatmaları, askıya almaları, SSL kontrollerini ve yedeklemeleri yürütür. Kuyruğa alınan işler için ayrı bir worker gerekmez; aynı cron satırı onları da işler.
Terminal$ cd /var/www/pnlcs $ WEB_USER=www-data # AlmaLinux, Rocky: apache $ (sudo crontab -u $WEB_USER -l 2>/dev/null; echo '* * * * * cd /var/www/pnlcs && php artisan schedule:run >> /dev/null 2>&1') | sudo crontab -u $WEB_USER - $ sudo apt install -y certbot python3-certbot-nginx # Ubuntu, Debian $ sudo certbot --nginx -d example.com $ pn sed -i 's|^APP_URL=http://|APP_URL=https://|' .env $ pn php artisan optimize
Gereksinimler
Küçük bir kurulum, veritabanı aynı makinedeyken 2 GB bellekle rahatça çalışır.
| PHP | 8.4 ya da daha yeni |
|---|---|
| Veritabanı | MySQL 8.0 ya da MariaDB 10.6+ |
| Web sunucusu | PHP-FPM ile Nginx ya da Apache |
| Node.js | 18+ (20 LTS önerilir), yalnızca frontend'i derlemek için |
| Composer | 2.x |
| Bellek | Küçük bir kurulum için 1 GB yeterli; 2 GB rahat |
| Disk | Uygulama için yaklaşık 130 MB; veriler büyüdükçe en az 2 GB boş alan bırakın |
Kurulumdan sonra
- Kurulum kontrol listesiFirma bilgileri, e-posta, bir ödeme altyapısı, bir sunucu ve ilk ürününüz.
- İlk satışınızBoş bir katalogdan, ödemesi alınmış ve kurulumu yapılmış bir siparişe.
- Güvenlik kontrol listesiHTTPS, debug kapalı, personel için iki adımlı doğrulama, sunucu dışında tutulan yedekler.
- GüncellemeVeri kaybetmeden en son sürüme geçin.
- YedeklerUygulama anahtarı dahil nelerin yedekleneceği.
- SSSSık sorulan sorular.