1. 程式人生 > >阿里雲搭建小程式PHP環境

阿里雲搭建小程式PHP環境

最近想著阿里雲能不能搭建小程式官方的demo,之前用過基於騰迅雲的小程式解決方案,雖然很好,但誇何沒有在騰迅雲註冊備案過域名,而曾經在阿里雲上註冊備案過域名.

基本環境 CentOS  7.3 

(一)安裝 Nginx

yum -y install nginx

檢視是否安裝成功

nginx -v
如果安裝成功則顯示


(二)安裝 PHP

Wafer 的 Demo 需要 5.6 以上版本的 PHP,新增 remi 源.

wget 'https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi.repo' -O /etc/yum.repos.d/remi.repo

安裝

yum install
--enablerepo=remi --enablerepo=remi-php56 php php-mbstring php-mcrypt php-mysql php-curl php-fpm

檢視是否安裝成功

php -v

php版本要大於5.6


(三)配置 Nginx 和 HTTPS

申請一個 SSL 證書,可以到阿里雲申請免費的 SSL 證書,申請成功之後下載證書,並把壓縮包中 Nginx 目錄下的證書檔案上傳到伺服器的 /data/release/nginx 目錄,如果沒有這個目錄則新建:上傳完證書以後,配置 Nginx,進入伺服器的 /etc/nginx/conf.d 目錄,新建一個 weapp.conf
 檔案,內容為以下,注意(www.xx.com改為自己的域名,1_www.xx.com_budle.crt和2_www.xx.com.key分別改為自己的證書檔案)
# 重定向 http 到 https
www.xx.com
server { listen 80; server_name www.xx.com; rewrite ^(.*)$ https://$server_name$1 permanent;}server { listen 443; server_name www.xx.com; ssl on; ssl_certificate
/data/release/nginx/1_www.xx.com_bundle.crt; ssl_certificate_key /data/release/nginx/2_www.xx.com.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA; ssl_session_cache shared:SSL:50m; ssl_prefer_server_ciphers on; root /data/release/php-demo; location ~ \.php$ { root /data/release/php-demo; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location /weapp/ { root /data/release/php-demo; index index.html index.htm index.php; try_files $uri $uri/ /index.php; }}

執行nginx

nginx -t

(四)安裝mysql

安裝mysql5.7

1、配置YUM源

# 下載mysql源安裝包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm


# 安裝mysql源
yum localinstall mysql57-community-release-el7-8.noarch.rpm


檢查mysql源是否安裝成功
yum repolist enabled | grep "mysql.*-community.*"


2、安裝MySQL
yum install mysql-community-server


3、啟動MySQL服務
systemctl start mysqld


檢視MySQL的啟動狀態
shell> systemctl status mysqld


4、開機啟動
systemctl enable mysqld
systemctl daemon-reload

5、修改root本地登入密碼
mysql安裝完成之後,在/var/log/mysqld.log檔案中給root生成了一個預設密碼。通過下面的方式找到root預設密碼,然後登入mysql進行修改:
grep 'temporary password' /var/log/mysqld.log

登陸並修改預設密碼
mysql -u root -p

mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼!'; 
新建一個數據庫名為 cAuth,排序規則為 utf8mb4_unicode_ci,小程式後臺用到
mysql>CREATE DATABASE IF NOT EXISTS cAuth,排序規則為 DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci; 


(五)上傳 Demo 和啟動

到 wafer2-quickstart-php 倉庫下載最新的 Demo 程式碼,修改 server/config.php
<?php/**
 * Wafer php demo 配置檔案
 */

$config = [
    'rootPath' => '',

    // 微信小程式 AppID'appId' => '',

    // 微信小程式 AppSecret'appSecret' => '',

    // 使用騰訊雲代理登入  'useQcloudLogin' => false, //不使用騰迅雲代理登入


    /**
     * 這裡請填寫雲資料庫的
     */'mysql' => [
        'host' => 'localhost',
        'port' => 3306,
        'user' => 'root',
        'db'   => 'cAuth',
        'pass' => '資料庫密碼',
        'char' => 'utf8mb4'
    ],

    'cos' => [
        /**
         * 區域
         * 上海:cn-east
         * 廣州:cn-sorth
         * 北京:cn-north
         * 廣州二區:cn-south-2
         * 成都:cn-southwest
         * 新加坡:sg
         * @see https://cloud.tencent.com/document/product/436/6224
         */'region' => 'cn-sorth',
        // Bucket 名稱'fileBucket' => 'wafer',
        // 資料夾'uploadFolder' => ''
    ],

    // 微信登入態有效期'wxLoginExpires' => 7200,
    'wxMessageToken' => 'abcdefgh',

    // 其他配置'serverHost' => 'wx.wafersolution.com',
    'tunnelServerUrl' => 'http://tunnel.ws.qcloud.la',
    'tunnelSignatureKey' => '27fb7d1c161b7ca52d73cce0f1d833f9f5b5ec89',
      // 騰訊雲相關配置可以檢視雲 API 祕鑰控制檯:https://console.cloud.tencent.com/capi'qcloudAppId' => 1200000000,// 必須是數字'qcloudSecretId' => '你的騰訊雲 SecretId',
    'qcloudSecretKey' => '你的騰訊雲 SecretKey',
    'networkTimeout' => 30000
];

接著將 server 目錄下的所有檔案都上傳到 /data/release/weapp/php-demo 目錄下:

小程式端修改配置


這樣就可以了進行除錯了

登入和通道都沒問題了


如果有什麼問題及不懂的可以於關注公眾號回覆999加我微信