Some notes when I deploy my project to Google Cloud
Một vài note khi deploy ứng dụng trên Compute Engine
1. Cloud SQL
- Phần này giúp tạo database MySQL kể các ứng dụng kết nối đến.
Một điểm chú ý là Cloud SQL mặc định sẽ không kết nối với gì. Nếu bạn muốn kết nối vào Cloud SQL, bạn cần thêm địa chỉ IP của bạn vào Cloud SQL
- Open the navigation menu. Under Storage, click SQL
Click the name of the SQL instance that you want to connect
Click the Connections tab
Click Add network
Enter the static IP address of your VM instance
Click Done and Save
Your SQL instance will now accept connections from your VM instance.
Với máy cá nhân, bạn có thể xem địa chỉ IP của mình tại: http://ipv4.whatismyv6.com/
Kết nối cái này để kết nối với các tools quản lý MySQL như Workbench
- Kết nối được với VM (xem docs trên trang chủ luôn vì nó khá ez)
2. Chú ý Firewall trên VM instance
Mặc định nó chỉ mở tcp cồng 80, nếu bạn muốn deploy cổng khác: 81 chẳng hạn, thì cần edit rule này
Để chỉnh sửa firewall, phần navigation menu, chọn VPC network => Firewall rules
3. Lỗi 500 khi deploy
Lỗi này xuất hiện do 2 nguyên nhân:
- Bạn chưa cấp quyền đủ cho thư mục
- Phiên bản PHP đang chưa đúng (phiên bản PHP trong Apache2 nhé chứ không phải là CLI)
4. Cloud Storage
Một lưu ý là mặc định, các file đang có phạm vi truy cập là “Not public”
- Public - object can be accessed or edited by all users on the public internet.
- Not public - object can be accessed only by approved users.
- Per object - access to a folder’s contents is set at the object level. Folder may contain publicly accessible objects
Để nó có phạm vi public có thể truy cập ở mọi nơi, chúng ta cần điều chỉnh phạm vi truy cập của file
https://laravel.com/docs/6.x/filesystem#file-visibility1
2
3
4
5
6
7
8
9public function storeAvatar($file)
{
$avtPath = $file->store('avatars');
# Ref: https://laravel.com/docs/6.x/filesystem#file-visibility
Storage::setVisibility($avtPath, 'public');
return substr($avtPath, 8);
}
5. Connect Cloud MySQL với Workbench
Về cơ bản, nó sẽ như sau:
- Bạn thực hiện Note 1, cung cấp quyền kết nối từ địa chỉ IP của bạn đến Cloud MySQL
- Khi thực hiện xong bước 1, chỉ cần config như các DB khác bình thường thôi
Some notes when I deploy my project to Google Cloud
http://yoursite.com/2020/02/06/Some-notes-when-I-deploy-my-project-to-Google-Cloud/