Cách thiết lập môi trường cục bộ để phát triển Laravel với PHP, Node. Js, MySQL và Redis. HackerBuổi trưa

Để làm theo, tôi khuyên bạn nên sử dụng máy tính Linux hoặc máy ảo với Ubuntu mới cài đặt (Virtualbox được đề xuất)

Lợi ích của việc sử dụng VM là nó cách ly môi trường làm việc của bạn với môi trường cá nhân của bạn và giúp bạn dễ dàng chụp nhanh và khôi phục lại trong trường hợp có sự cố xảy ra

Chúng tôi sẽ thiết lập một môi trường cục bộ khả thi tối thiểu để phát triển Laravel trong phần này của loạt bài của tôi


Trong hướng dẫn này, chúng tôi sẽ cài đặt 2 tệp nhị phân PHP khác nhau và chỉ cho bạn cách chuyển đổi giữa chúng. PHP8. 0 hoặc 8. 1 nên cài cả 2 là được

Sau đó, chúng ta sẽ cài đặt Node. js và tìm hiểu cách sử dụng trình quản lý phiên bản Node để chuyển đổi giữa các phiên bản

Sau đó, chúng tôi sẽ sử dụng Docker để khởi chạy hai dịch vụ hỗ trợ phổ biến cho các ứng dụng Laravel. cơ sở dữ liệu MySQL và cơ sở dữ liệu Redis

Cuối cùng, chúng ta sẽ thiết lập một bản sao mới của PhpStorm


Phiên bản PHP 8. cài đặt nhị phân 0 và 81

_10

Nút. jsCài đặt NVM và NPM

Trước tiên chúng ta phải cài đặt gói

Truy cập liên kết này để xem bản phát hành LTS gần đây nhất. nodejsorg/en/

________Đầu tiên

Trong phần sau, chúng tôi sẽ bắt đầu các dịch vụ phát triển được sử dụng thường xuyên như cơ sở dữ liệu MySQL và Redis và cài đặt tất cả các dịch vụ cần thiết, bao gồm cả Docker


docker

Chỉ cần tuân thủ các hướng dẫn được liệt kê bên dưới để chạy thành công vùng chứa hello-world

https. // tài liệu. người đóng tàu. com/động cơ/cài đặt/ubuntu/

https. // tài liệu. người đóng tàu. com/engine/install/linux-postinstall/

cơ sở dữ liệu MySQL

Chúng tôi sẽ bắt đầu một phiên bản docker cơ sở dữ liệu MySQL

Truy cập https. //hubĐể tìm hiểu thêm, hãy truy cập docker. com/_/mysql

#!/usr/bin/env bash

# first run
docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=secret \
-e MYSQL_DATABASE=laravel  -e MYSQL_USER=laravel -e MYSQL_PASSWORD=secret \
-v ~/mysql-data:/var/lib/mysql mysql:8

# stop service
docker stop mysql

# start service
docker start mysql

Việc cài đặt các công cụ MySQL để Laravel có thể sử dụng chúng cục bộ là cần thiết khi sử dụng đặc điểm _18 trong thử nghiệm và lệnh

#!/usr/bin/env bash

# first run
docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=secret \
-e MYSQL_DATABASE=laravel  -e MYSQL_USER=laravel -e MYSQL_PASSWORD=secret \
-v ~/mysql-data:/var/lib/mysql mysql:8

# stop service
docker stop mysql

# start service
docker start mysql
0

sudo apt install mysql-client-core-8.0

Cơ sở dữ liệu Redis

Truy cập https. //hubĐể biết thông tin về bộ chứa Redis, hãy truy cập docker. com/_/redis

#!/usr/bin/env bash

# first run redis with persistence
docker run -p 6379:6379 --name redis -d redis --save 60 1 --loglevel warning

# stop service
docker stop redis

# start service
docker start redis

Dưới đây là những lựa chọn hàng đầu của tôi để quản lý cơ sở dữ liệu trong Ubuntu, cả hai đều hỗ trợ đường hầm SSH cho các mạng sản xuất được bảo vệ bởi tường lửa

Bàn làm việc MySQL

Truy cập https. // devvisit mysql. com/downloads/workbench để tải phiên bản của bạn hoặc chỉ cần nhấp vào đây

_15
MySQL Workbench

Bàn làm việc MySQL

Trình quản lý máy tính để bàn Redis

Truy cập https. //resp/ để biết thêm thông tin

_16
Redis Desktop Manager

Trình quản lý máy tính để bàn Redis


PhpStorm

Bước cuối cùng là cài đặt phiên bản PhpStorm hoàn toàn mới

_17

hoặc


Danh sách các plugin PhpStorm rất được khuyên dùng để tăng Laravel và năng suất chung sẽ được đề cập trong chương sau

Để làm theo, tôi khuyên dùng máy Linux hoặc máy ảo đã cài đặt Ubuntu mới (khuyên dùng Virtualbox)

VM có lợi thế là môi trường làm việc của bạn được cách ly với môi trường cá nhân và có thể dễ dàng chụp nhanh và khôi phục trong trường hợp có bất kỳ sự cố nào

Trong phần này của loạt bài của tôi, chúng tôi sẽ cài đặt một môi trường cục bộ khả thi tối thiểu để phát triển Laravel


Ở đây chúng tôi cài đặt 2 phiên bản nhị phân PHP và chúng tôi sẽ tìm hiểu cách chuyển đổi giữa chúng. Hầu hết các dự án hiện đại sẽ là 8. 0 hoặc 8. 1 phiên bản PHP nên bạn có thể cài đặt cả hai phiên bản này

Tiếp theo, chúng ta sẽ cài đặt Node. js và cũng sẽ tìm hiểu cách chuyển đổi phiên bản bằng nvm (trình quản lý phiên bản nút)

Sau đó, chúng tôi sẽ khởi chạy các dịch vụ hỗ trợ phổ biến cho các ứng dụng Laravel — cơ sở dữ liệu MySQL và cơ sở dữ liệu Redis thông qua Docker

Cuối cùng, chúng tôi sẽ cài đặt phiên bản sạch của PhpStorm


PHP8. 0 và PHP8. 1 cài đặt nhị phân

#!/usr/bin/env bash

sudo apt update
sudo apt -y install curl

# Set up PHP 8.0
sudo apt update
sudo apt -y install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt -y install --no-install-recommends php8.0 composer php8.0-xml \
php8.0-intl php8.0-curl php8.0-zip php8.0-sqlite3 php8.0-mysql \
php8.0-xdebug php8.0-mbstring php8.0-redis

# Set up PHP 8.1
sudo apt update
sudo apt -y install --no-install-recommends php8.1 composer php8.1-xml \
php8.1-intl php8.1-curl php8.1-zip php8.1-sqlite3 php8.1-mysql \
php8.1-xdebug php8.1-mbstring php8.1-redis

# How to switch php versions
sudo update-alternatives --config php

# How to disable/enable xdebug
sudo phpdismod xdebug
sudo phpenmod xdebug

Nút. js. Cài đặt NVM và NPM

Đầu tiên, chúng ta cần cài đặt gói

Kiểm tra phiên bản LTS hiện tại tại đây https. //nodejs. tổ chức/vi/

#!/usr/bin/env bash

# Installing Node 16:
nvm i 16

node -v
# v16.15.0

npm -v
# 8.5.5

# Switching Node.js versions
nvm i 18
# or (if already installed)
nvm use 18

Trong phần tiếp theo, chúng tôi sẽ cài đặt tất cả các dịch vụ cần thiết bao gồm Docker và bắt đầu các dịch vụ phát triển thường được sử dụng như cơ sở dữ liệu MySQL và Redis


docker

Chỉ cần làm theo các hướng dẫn bên dưới cho đến khi bạn có thể chạy thành công bộ chứa hello-world

https. // tài liệu. người đóng tàu. com/động cơ/cài đặt/ubuntu/

https. // tài liệu. người đóng tàu. com/engine/install/linux-postinstall/

cơ sở dữ liệu MySQL

Chúng tôi sẽ khởi chạy một phiên bản docker của cơ sở dữ liệu MySQL

Truy cập https. // trung tâm. người đóng tàu. com/_/mysql để biết thêm thông tin

#!/usr/bin/env bash

# first run
docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=secret \
-e MYSQL_DATABASE=laravel  -e MYSQL_USER=laravel -e MYSQL_PASSWORD=secret \
-v ~/mysql-data:/var/lib/mysql mysql:8

# stop service
docker stop mysql

# start service
docker start mysql

Khi sử dụng đặc điểm

#!/usr/bin/env bash

# first run
docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=secret \
-e MYSQL_DATABASE=laravel  -e MYSQL_USER=laravel -e MYSQL_PASSWORD=secret \
-v ~/mysql-data:/var/lib/mysql mysql:8

# stop service
docker stop mysql

# start service
docker start mysql
1 trong thử nghiệm và lệnh
#!/usr/bin/env bash

# first run
docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=secret \
-e MYSQL_DATABASE=laravel  -e MYSQL_USER=laravel -e MYSQL_PASSWORD=secret \
-v ~/mysql-data:/var/lib/mysql mysql:8

# stop service
docker stop mysql

# start service
docker start mysql
0, bạn sẽ cần cài đặt các công cụ MySQL để Laravel có thể chạy chúng cục bộ

sudo apt install mysql-client-core-8.0

Cơ sở dữ liệu Redis

Truy cập https. // trung tâm. người đóng tàu. com/_/redis để biết thông tin về bộ chứa Redis

#!/usr/bin/env bash

# first run redis with persistence
docker run -p 6379:6379 --name redis -d redis --save 60 1 --loglevel warning

# stop service
docker stop redis

# start service
docker start redis

Dưới đây là các ứng dụng được đề xuất của tôi để quản lý DB trong Ubuntu. Cả hai công cụ đều có đường hầm SSH cho các mạng Sản xuất phía sau tường lửa

Bàn làm việc MySQL

Truy cập https. // nhà phát triển. mysql. com/downloads/workbench/ để tải xuống phiên bản của bạn hoặc chụp nhanh

________số 8

MySQL Workbench

Bàn làm việc MySQL

Trình quản lý máy tính để bàn Redis

Truy cập https. // đáp lại. ứng dụng/ để biết thêm thông tin

sudo snap install redis-desktop-manager

Redis Desktop Manager

Trình quản lý máy tính để bàn Redis


PhpStorm

Cuối cùng, chúng tôi kết thúc bằng cách cài đặt một bản sao mới của PhpStorm

sudo apt install mysql-client-core-8.0
0

hoặc


Trong chương tiếp theo, chúng ta sẽ xem xét danh sách các plugin được đề xuất cho PhpStorm để tăng năng suất tổng thể và Laravel của bạn

Làm việc với hệ sinh thái Laravel thật tuyệt. Nhưng trước khi bắt đầu xây dựng một ứng dụng bằng Laravel, luôn có một thiết lập phức tạp cho cỗ máy phát triển của bạn cần được thực hiện trước

Vì vậy, trong bài đăng này, tôi đang viết hướng dẫn từng bước để thiết lập máy phát triển của bạn, thứ sẽ khiến một ngày của bạn trở nên tuyệt vời. Trong hướng dẫn này, tôi đang sử dụng Ubuntu làm hệ điều hành của mình. Tôi đang sử dụng phiên bản nhẹ của Ubuntu có tên là Linux mint

Đọc thêm về cách cài đặt Linux Mint tại Cách cài đặt Linux Mint

Bây giờ hãy bắt đầu thiết lập của chúng tôi. Nó bao gồm các bước sau

Cài đặt Zsh

Vỏ Z (zsh) là vỏ Unix. Zsh có thể được coi là một trình bao Bourne mở rộng với một số lượng lớn các cải tiến, bao gồm một số tính năng của bash, ksh và tcsh

Đọc thêm về ZSH tại Giới thiệu về Z Shell

Mở một cửa sổ đầu cuối, Sao chép và dán phần sau vào thiết bị đầu cuối

sudo apt install mysql-client-core-8.0
1

Bây giờ hãy thiết lập Oh My Zsh

Oh My Zsh là một khuôn khổ thú vị, mã nguồn mở, hướng đến cộng đồng để quản lý cấu hình Zsh của bạn. Nó đi kèm với hàng ngàn chức năng hữu ích, trình trợ giúp, plugin, chủ đề và một số thứ khiến bạn phải hét lên

Cài đặt

sudo apt install mysql-client-core-8.0
23 bằng cách nhập

sudo apt install mysql-client-core-8.0
3

Sau khi cài đặt hoàn tất, bạn cần đặt zsh làm trình bao mặc định

Thực hiện theo hướng dẫn này để cài đặt plugin và chủ đề cho Zsh

Cài đặt php, phụ thuộc php, trình soạn thảo

Bây giờ, chúng ta cần cài đặt PHP để làm việc với Laravel framework. Chúng tôi sẽ sử dụng PHP

sudo apt install mysql-client-core-8.0
24 để nó không phá vỡ các gói bên ngoài mà chúng tôi sử dụng với Laravel (vì hầu hết các gói bên ngoài chưa được cập nhật lên PHP-7. 4 trong khi viết bài này và Laravel 7 mới nhất. x yêu cầu PHP >= 7. 2. 5)

Bạn có thể đọc thêm về PHP 7. 4 ở đây

Cài đặt php bằng cách gõ

sudo apt install mysql-client-core-8.0
2

Nếu bạn gặp lỗi khi cài đặt PHP như

sudo apt install mysql-client-core-8.0
6

sau đó đảm bảo thêm kho lưu trữ

sudo apt install mysql-client-core-8.0
25 bằng cách

sudo apt install mysql-client-core-8.0
8

Bây giờ, hãy kiểm tra phiên bản PHP

sudo apt install mysql-client-core-8.0
9

cái nào sẽ cho đầu ra,

#!/usr/bin/env bash

# first run redis with persistence
docker run -p 6379:6379 --name redis -d redis --save 60 1 --loglevel warning

# stop service
docker stop redis

# start service
docker start redis
0

Cài đặt các phụ thuộc bên ngoài PHP, được yêu cầu bởi Laravel framework

Laravel đề cập rằng các phần mở rộng BCMath, Ctype, Fileinfo, JSON, Mbstring, OpenSSL, PDO, Tokenizer và XML là bắt buộc. Hầu hết các tiện ích mở rộng được cài đặt và bật theo mặc định

#!/usr/bin/env bash

# first run redis with persistence
docker run -p 6379:6379 --name redis -d redis --save 60 1 --loglevel warning

# stop service
docker stop redis

# start service
docker start redis
1

Chúng tôi sẽ sử dụng gói SQLite để kiểm tra đơn vị PHP của chúng tôi

Cài đặt nhà soạn nhạc

Trình quản lý phụ thuộc cho PHP

Bạn có thể tìm hiểu thêm về nhà soạn nhạc tại đây

#!/usr/bin/env bash

# first run redis with persistence
docker run -p 6379:6379 --name redis -d redis --save 60 1 --loglevel warning

# stop service
docker stop redis

# start service
docker start redis
2

Để kiểm tra xem trình soạn nhạc đã được cài đặt chính xác hay chưa, vui lòng nhập

#!/usr/bin/env bash

# first run redis with persistence
docker run -p 6379:6379 --name redis -d redis --save 60 1 --loglevel warning

# stop service
docker stop redis

# start service
docker start redis
3

dẫn đến

sudo apt install mysql-client-core-8.0
30

Bây giờ, hãy thêm các công cụ toàn cầu của nhà soạn nhạc vào PATH của bạn

  • mở tệp
    sudo apt install mysql-client-core-8.0
    
    26

sudo apt install mysql-client-core-8.0
31

  • thêm những dòng này vào cuối tệp
    sudo apt install mysql-client-core-8.0
    
    26 của bạn

sudo apt install mysql-client-core-8.0
32

  • Bây giờ hãy đọc và thực thi tệp bằng cách

sudo apt install mysql-client-core-8.0
33

cài đặt người phục vụ

Valet là một môi trường phát triển Laravel dành cho những người theo chủ nghĩa tối giản trên Mac. Không có tệp Vagrant, không có/etc/hosts. Bạn thậm chí có thể chia sẻ công khai các trang web của mình bằng cách sử dụng các đường hầm cục bộ. Vâng, chúng tôi cũng thích nó

Vì, chúng tôi đang sử dụng

sudo apt install mysql-client-core-8.0
28 làm hệ điều hành của mình, để làm cho valet hoạt động với hệ thống, chúng tôi sẽ sử dụng một gói có tên là
sudo apt install mysql-client-core-8.0
29

Valet Linux là môi trường phát triển Laravel dành cho những người theo chủ nghĩa tối giản Linux. Không có tệp Vagrant, không có/etc/hosts. Bạn thậm chí có thể chia sẻ công khai các trang web của mình bằng cách sử dụng các đường hầm cục bộ. Vâng, chúng tôi cũng thích nó

Trước khi cài đặt, bạn nên xem lại các yêu cầu cụ thể của hệ thống và đảm bảo rằng không có chương trình nào khác như Apache hoặc Nginx đang ràng buộc với cổng 80 của máy cục bộ của bạn

Thêm phụ thuộc bên ngoài valet

sudo apt install mysql-client-core-8.0
34

Cài đặt Valet qua nhà soạn nhạc

sudo apt install mysql-client-core-8.0
35

Chạy lệnh cài đặt valet

sudo apt install mysql-client-core-8.0
36

Sau khi Valet được cài đặt, bạn đã sẵn sàng bắt đầu phục vụ các trang web

sudo apt install mysql-client-core-8.0
37

Lệnh

sudo apt install mysql-client-core-8.0
60 sẽ đăng ký thư mục làm việc hiện tại của bạn (~/Sites) dưới dạng đường dẫn mà Valet sẽ tìm kiếm các trang web

Cài đặt Trình cài đặt Laravel

sudo apt install mysql-client-core-8.0
38

Tạo một trang web Laravel mới trong thư mục

sudo apt install mysql-client-core-8.0
61

sudo apt install mysql-client-core-8.0
39

Mở

sudo apt install mysql-client-core-8.0
62 trong trình duyệt của bạn. Bạn sẽ thấy trang chào mừng mặc định của Laravel

Tiếp theo, chúng ta cần cài đặt

sudo apt install mysql-client-core-8.0
63 làm hệ thống quản lý cơ sở dữ liệu của mình

Cài đặt Mysql

sudo apt install mysql-client-core-8.0
20

định cấu hình người dùng MySQL

sudo apt install mysql-client-core-8.0
64 để làm việc với

  • mở lời nhắc MySQL từ thiết bị đầu cuối của bạn

sudo apt install mysql-client-core-8.0
21

  • sửa đổi người dùng
    sudo apt install mysql-client-core-8.0
    
    64 với tất cả các đặc quyền

sudo apt install mysql-client-core-8.0
22

lệnh trên sẽ tạo một người dùng

sudo apt install mysql-client-core-8.0
64 không cần mật khẩu

Vì chúng tôi đang ở chế độ phát triển cục bộ, cố gắng bỏ qua trường mật khẩu. Trong máy chủ sản xuất, luôn tạo một người dùng khác với các đặc quyền bắt buộc và mật khẩu mạnh

Bạn có thể đọc thêm về cách thiết lập MySQL trong ubuntu tại đây

Sử dụng các công cụ quản lý cơ sở dữ liệu
có rất nhiều công cụ tuyệt vời có sẵn để quản lý cơ sở dữ liệu. Tôi đang liệt kê những cái mà cá nhân tôi thích nhất

  • SequelPro chỉ khả dụng cho Mac
  • BảngPlus
  • bàn làm việc
  • PhpMyAdmin

Cài đặt vue-cli

Trước khi chúng tôi bắt đầu cài đặt vue-cli, nó yêu cầu

sudo apt install mysql-client-core-8.0
67 và
sudo apt install mysql-client-core-8.0
68 làm phụ thuộc của nó. Làm theo hướng dẫn này để cài đặt nodejs và npm trong hệ thống của bạn

Vue-cli cung cấp một hệ thống đầy đủ cho Vue nhanh chóng. phát triển js. Làm theo hướng dẫn này để cài đặt vue-cli vào hệ thống của bạn

Nodejs có cần thiết cho Laravel không?

Laravel không yêu cầu bạn sử dụng một khung hoặc thư viện JavaScript cụ thể để xây dựng ứng dụng của mình . Trên thực tế, bạn hoàn toàn không phải sử dụng JavaScript. Tuy nhiên, Laravel có bao gồm một số giàn giáo cơ bản để giúp bạn bắt đầu viết JavaScript hiện đại dễ dàng hơn bằng thư viện Vue.

Laravel hay node JS cái nào tốt hơn?

Nếu bạn cần một hệ thống toàn diện để xử lý một trang web lớn dựa trên CMS, hãy sử dụng Laravel . Nếu bạn cần một kiến ​​trúc dựa trên dịch vụ nhỏ gọn, hãy đến với Node JS. Nền tảng Laravel chứa Eloquent ORM, yêu cầu triển khai cơ bản PHP Active Record.

Có thể sử dụng PHP với nút js không?

Bạn có thể chạy nút và PHP trên cùng một máy chủ và thậm chí trên cùng một cổng . Điều quan trọng là sử dụng một máy chủ như nginx ở phía trước để nghe trên cổng 80, thiết lập PHP trong Nginx như bình thường (sử dụng php-fpm) và thiết lập phiên bản Node của bạn để nghe cục bộ trên một số cổng cao như 8081.