Dev environment trên server

What

Dev environment trên server là gì? Nghĩa là thay vì bạn dev và chạy website ở local thì bạn viết code ở local và chạy website trên server, có domain đàng hoàng và có thể cho người khác xem 1 cách dễ dàng.

Why

Tại sao chúng ta nên dựng dev environment trên server?

  • Trỏ domain vào server và config apache hoặc nginx –> dễ dàng cho người khác xem và test hệ thống mình đang làm.
  • Giảm tải cho dev device, đặc biệt là laptop.
  • Có thể code trên nhiều device 1 lúc. Code sẽ được upload tự động lên server.
  • Khi có sự cố cần cài đặt lại máy thì không ảnh hưởng đến các project đang chạy trên server. Chỉ cần pull code về và set up IDE là xong.

How

Làm cách nào để tạo dev environment trên server? Ở nội dung bài viết này mình chỉ nói về việc config PHPStorm và Visual Studio Code để tự động đẩy code mới nhất lên server mỗi khi chúng ta gõ lệnh và save lại. Còn việc cài đặt server, config apache… sẽ nằm ở nội dung bài khác.

PHPStorm

Configure deploy

Tools –> Deployment –> Configuration

Add ssh connection config, set root path

Mapping to the sub folder inside the root folder

Exclude folders/files that you don’t want to upload to server

Deploy options

Tools → Deployment → Options

Set to always and deselect the “skip external changes”

Keymap to open ssh terminal

Visual studio code

Install plugin: https://marketplace.visualstudio.com/items?itemName=Natizyskunk.sftp

Configuration

Sample configuration file:

{
    "name": "dell",
    "host": "ngoc.saiko-software.com",
    "protocol": "sftp",
    "port": 22,
    "username": "baongoc",
    "password": "xxxxxxxxxxx",
    "remotePath": "/home/baongoc/workspaces/blueship",
    "uploadOnSave": false,
    "useTempFile": false,
    "openSsh": false,
    "watcher": {
        "files": "**/*",
        "autoUpload": true,
        "autoDelete": true
    },
    "ignore": [
        ".vscode",
        ".git",
        ".DS_Store",
        "node_modules",
        "composer.lock",
        "package-lock.json"
    ]
}
Leave a Reply 0

Your email address will not be published. Required fields are marked *