برنامه نویسی

راهنمای خود برای استقرار برنامه های Laravel و React در VPS

این مستنداتی از مراحلی است که من در استقرار برنامه Laravel و React خود به VPS برداشتم.

اگر در حال خواندن هستید ، من مطمئن هستم که صرف نظر از پشته برنامه ، مفید خواهد بود.

1. تنظیم اولیه VPS

قبل از استقرار برنامه های خود ، باید محیط سرور خود را آماده کنید.

سیستم خود را به روز کنید

sudo apt update && sudo apt upgrade -y
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

وابستگی های اساسی را نصب کنید

sudo apt install apache2 unzip curl git -y
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

2. استقرار پس زمینه لاراول

ONDREJ/PHP PPA را به عنوان مخزن نرم افزاری اضافه کنید.

sudo add-apt-repository ppa:ondrej/php # Press enter when prompted.
sudo apt update
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

PHP را نصب کنید و پسوند مورد نیاز

sudo apt install php php-cli php-mbstring php-xml php-bcmath php-tokenizer php-curl php-zip php-mysql -y
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

آهنگساز را نصب کنید

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

پایگاه داده MySQL را تنظیم کنید

sudo apt install mysql-server -y
sudo mysql_secure_installation
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

یک پایگاه داده و کاربر برای برنامه Laravel خود ایجاد کنید:

sudo mysql -u root -p
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

در سریع MySQL:

CREATE DATABASE laravel_db;
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

برنامه Laravel خود را مستقر کنید

cd /var/www
git clone https://github.com/your-username/your-laravel-project.git laravel
cd laravel
composer install
cp .env.example .env
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

پرونده .env را با اعتبار پایگاه داده خود ویرایش کنید:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=your_strong_password
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

کلید برنامه را تولید کنید و مهاجرت را اجرا کنید:

php artisan key:generate
php artisan migrate --seed
php artisan config:cache
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

آپاچی را برای لاراول پیکربندی کنید

یک فایل پیکربندی جدید Apache ایجاد کنید:

sudo nano /etc/apache2/sites-available/laravel.conf
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

پیکربندی زیر را اضافه کنید:

<VirtualHost *:80>
    ServerAdmin webmaster@yourdomain.com
    DocumentRoot /var/www/laravel/public
    ServerName api.yourdomain.com

    <Directory /var/www/laravel/public>
        AllowOverride All
        Require all granted
    Directory>

    ErrorLog ${APACHE_LOG_DIR}/laravel_error.log
    CustomLog ${APACHE_LOG_DIR}/laravel_access.log combined
VirtualHost>
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

سایت و ماژول های مورد نیاز را فعال کنید:

sudo a2ensite laravel.conf
sudo a2enmod rewrite
sudo systemctl restart apache2
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مجوزهای مناسب پرونده را تنظیم کنید

sudo chown -R www-data:www-data /var/www/laravel
sudo chmod -R 775 /var/www/laravel/storage /var/www/laravel/bootstrap/cache
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

3. استقرار جبهه واکنش

مرحله 1: برنامه React خود را بسازید

در دستگاه توسعه محلی شما:

npm run build
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مرحله 2: ساخت را به VPS خود منتقل کنید

با استفاده از SCP:

scp -r build/ username@your-vps-ip:/var/www/react
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

از طرف دیگر ، شما می توانید مخزن خود را کلون کرده و مستقیماً روی سرور بسازید (من سابق را توصیه می کنم به خصوص اگر با یک خط لوله CICD مستقر شوید):

cd /var/www
git clone https://github.com/your-username/your-react-project.git react
cd react
npm install
npm run build
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مرحله 3: برای React Apache را پیکربندی کنید

یک پیکربندی جدید Apache ایجاد کنید:

sudo nano /etc/apache2/sites-available/react.conf
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

موارد زیر را اضافه کنید:

<VirtualHost *:80>
    ServerAdmin webmaster@yourdomain.com
    DocumentRoot /var/www/react/build
    ServerName yourdomain.com

    <Directory /var/www/react/build>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted

        # This configuration ensures that React Router works correctly
        RewriteEngine on
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^ index.html [L]
    Directory>

    ErrorLog ${APACHE_LOG_DIR}/react_error.log
    CustomLog ${APACHE_LOG_DIR}/react_access.log combined
VirtualHost>
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

سایت را فعال کنید:

sudo a2ensite react.conf
sudo systemctl restart apache2
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

4. برنامه های خود را با SSL ایمن کنید

برای برنامه های تولید ، SSL ضروری است. بیایید رمزگذاری گواهینامه های SSL رایگان را فراهم کنیم:

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d yourdomain.com -d api.yourdomain.com
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

برای تکمیل تنظیمات SSL ، درخواست ها را دنبال کنید.

5. مدیریت فرآیند را برای لاراول تنظیم کنید

سرپرست را برای کارگران صف پیکربندی کنید

sudo apt install supervisor -y
sudo nano /etc/supervisor/conf.d/laravel-worker.conf
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

پیکربندی زیر را اضافه کنید:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/laravel/artisan queue:work --tries=3 --sleep=3
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/log/laravel-worker.log
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

پیکربندی را فعال کنید:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:*
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

برنامه ریزی Laravel را تنظیم کنید

crontab -e
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این خط را اضافه کنید:

* * * * * cd /var/www/laravel && php artisan schedule:run >> /dev/null 2>&1
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

6. پیکربندی پیشرفته

تنظیم یک متعادل کننده بار (اختیاری)

برای کاربردهای ترافیک بالا ، تنظیم NGINX را به عنوان یک متعادل کننده بار در مقابل آپاچی در نظر بگیرید:

sudo apt install nginx -y
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

یک فایل پیکربندی ایجاد کنید:

sudo nano /etc/nginx/sites-available/loadbalancer
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

اضافه کردن:

upstream backend {
    server 127.0.0.1:8080;
    # Add more servers if you have multiple instances
}

server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

پیکربندی redis برای ذخیره سازی (اختیاری)

sudo apt install redis-server -y
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

پرونده Laravel .env خود را به روز کنید:

CACHE_DRIVER=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

7. نگهداری و به روزرسانی ها

خودکار کردن به روزرسانی های لاراول

یک اسکریپت ساده ایجاد کنید:

sudo nano /usr/local/bin/update-laravel
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

اضافه کردن:

#!/bin/bash
cd /var/www/laravel
git pull
composer install --no-dev
php artisan migrate --force
php artisan config:cache
php artisan route:cache
php artisan view:cache
sudo chown -R www-data:www-data /var/www/laravel
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

آن را اجرا کنید:

sudo chmod +x /usr/local/bin/update-laravel
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

نظارت بر برنامه شما

نصب ابزارهای مانیتورینگ:

sudo apt install htop net-tools -y
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

8. عیب یابی

مسائل مشترک لاراول

  1. 500 خطای سرور داخلی

    • سیاهههای مربوط به لاراول را بررسی کنید: tail -f /var/www/laravel/storage/logs/laravel.log
    • سیاهههای مربوط به آپاچی را بررسی کنید: tail -f /var/log/apache2/laravel_error.log
  2. مسائل مجوز

    • اجرا: sudo chown -R www-data:www-data /var/www/laravel

موضوعات واکنش مشترک

  1. صفحه سفید / بارگیری نیست

    • برای خطاها کنسول مرورگر را بررسی کنید
    • پرونده .htaccess را در ساخت دایرکتوری تأیید کنید
  2. مسائل مربوط به اتصال API

    • اطمینان حاصل کنید که پرونده .env در React دارای URL صحیح API است

پایان

اکنون با موفقیت هر دو لارول را با موفقیت مستقر کرده اید و در یک VPS مجزا نیز واکنش نشان داده اید.

به یاد داشته باشید که به طور مرتب از پرونده های پایگاه داده و برنامه های کاربردی خود نسخه پشتیبان تهیه کنید ، سرور خود را با تکه های امنیتی به روز کنید و عملکرد برنامه خود را با رشد پایه کاربر نظارت کنید.

تاکنون ما استقرار را به صورت دستی انجام داده ایم ، اما شما حتماً باید تنظیم خط لوله CICD را برای استقرار آسان و خودکار در نظر بگیرید. اقدامات GitHub توصیه خوبی است.

برنامه نویسی مبارک!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا