### Shopify app開發服務器說明
開發shopify app 我們需要有一個可以對外訪問的服務器,當然,你也可以使用花生殼等軟件做內網穿透。要求只有一個,你寫的接口可以被shopify的服務器訪問到。
<br>
**提示:**
如果大家沒有線上服務器,想要本地開發,參考章節:"內網穿透-ngrok" ,講解如何結合ngrok與phpstudy本地開發shopify應用。
<br>
### 創建thinkphp項目
在服務器的web根目錄下創建一個shopify的目錄 spf:
```asp
/var/www/html/spf
```
#### 初始化thinkphp項目
**1.選擇ThinkPHP版本**
查看php版本:
```asp
[root@153 /var/www/html/spf]# php -v
PHP 7.2.0 (cli) (built: Aug 5 2020 03:06:36) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies
```
訪問php官網:[thinkphp.cn](http://thinkphp.cn)
THINKPHP最新版本6.0提示要求php版本最低為7.2.5

看來我們的服務器環境不符合ThinkPHP6版本的要求。
我們再來看一下ThinkPHP5.1對于php版本的要求:

為了方便開發,我們這里就不再去折騰服務器的php環境,就選擇安裝ThinkPHP5.1版本。
**2.安裝ThinkPHP**
根據手冊的安裝提示,我們執行composer命令安裝:
```asp
composer create-project topthink/think=5.1.* myapp
```
項目創建完后,查看項目目錄:
```asp
[root@153 /var/www/html/spf/myapp]# ls -l
合計 96
-rw-r--r-- 1 root root 36799 1月 11 11:58 2021 CHANGELOG.md
-rw-r--r-- 1 root root 1822 1月 11 11:58 2021 LICENSE.txt
-rw-r--r-- 1 root root 6772 1月 11 11:58 2021 README.md
drwxr-xr-x 3 root root 4096 1月 11 11:58 2021 application
-rw-r--r-- 1 root root 1070 1月 11 11:58 2021 build.php
-rw-r--r-- 1 root root 660 1月 11 11:58 2021 composer.json
-rw-r--r-- 1 root root 3870 6月 4 01:43 2023 composer.lock
drwxr-xr-x 2 root root 4096 1月 11 11:58 2021 config
drwxr-xr-x 2 root root 4096 1月 11 11:58 2021 extend
drwxr-xr-x 3 root root 4096 1月 11 11:58 2021 public
drwxr-xr-x 2 root root 4096 1月 11 11:58 2021 route
drwxr-xr-x 2 root root 4096 1月 11 11:58 2021 runtime
-rw-r--r-- 1 root root 823 1月 11 11:58 2021 think
drwxr-xr-x 5 root root 4096 6月 4 01:43 2023 thinkphp
drwxr-xr-x 4 root root 4096 6月 4 01:43 2023 vendor
```
安裝成功.
訪問我們安裝的thinkphp項目:[http://ip](http://ip):port/spf/myapp/public/

### Windows編輯服務器文件
vscode安裝SFTP插件:

打開vscode的命令控制臺,輸入 sftp:

配置服務器連接信息:
```asp
{
"name": "shopify",
"host": "153.126.161.135",
"protocol": "sftp",
"port": 22,
"username": "root",
"password":"98fX32x34eI+1",
"remotePath": "/var/www/html/spf/myapp",
"uploadOnSave": true
}
```
右鍵項目目錄,Download.

等待代碼下載好之后,我們就能在Windows電腦上看到所有服務器的文件:

### 測試
我們編輯一下默認的首頁控制器的index方法:
application\\index\\controller\\Index.php
```asp
<?php
namespace app\index\controller;
class Index
{
public function index()
{
return 'hello shopify';
}
public function hello($name = 'ThinkPHP5')
{
return 'hello,' . $name;
}
}
```
訪問url測試:

這樣我們就可能通過使用FTP的方式,在Windows環境下,編輯Linux服務器的文件了。
> 注意:
> 前面配置SFTP插件的這一項:"uploadOnSave": true,表示每次編輯完文件保存后,將自動上傳到服務器,不用手動上傳。
### 小結:
本小節我們安裝了ThinkPHP框架,并配置好了vscode如何去編輯服務器文件。這樣我們在開發shopify的前期準備功能就基本完成,后面我們將會基于這個項目去實現與shopify的接口進行通信、交互等。
在開發shopify應用時,并不要求服務端一定是這個架構,你可以選擇任何一門后端開發語言,只要可以提供web可訪問的能力即可。
我們這里方便大家學習,選擇最易上手的ThinkPHP做為后端框架,本質上我們要學習的并非PHP框架怎么用,而是學習怎么與shopify開發進行數據交互。
- Shopify系統簡介
- Shopify帳號注冊與開店
- app與主題開發介紹
- app開發介紹
- 商店初始化與設置
- 服務器項目初始化
- 創建app及設置
- OAuth授權介紹
- App實現OAuth功能(上)
- App實現OAuth功能(下)
- Shopify API介紹
- 應用訪問范圍scopes詳解
- Access Token保存(上)
- Access Token保存(下)
- App授權流程完善
- App開發思路
- App計費模式介紹
- app實戰-首頁排版
- app實戰-展示商品列表(一)
- app實戰-展示商品列表(二)
- app實戰-修改商品
- Shopify中的API總結
- 內網穿透-ngrok
- app實戰-付費功能
- Webhooks介紹
- app實戰-Webhook實現app卸載(一)
- app實戰-Webhook實現app卸載(二)
- app發布流程
- 項目完整代碼
- 結語:Shopify App開發賺錢攻略