好食國際移機

測試站:  10.0.0.235
ssh huckly@10.0.0.235
//倒出資料庫
mysqldump -u root -p yummy-life > /mnt/sqlbak/yummy.sql
cd ~/www/app

//確認版本
git pull

//將一些Cache 資料清掉
php artisan cache:clear
php artisan view:clear
php artisan config:clear

//壓縮程式
zip -r yummy-life.zip  yummy-life/*

將yummy-life.zip和yummy.sql 傳到正式站

修改/etc/nginx/sites-available/yummy-life.com

到 /etc/nginx/sites-enabled
sudo ln -s /etc/nginx/sites-available/yummy-life.com

//重啟Nginx
sudo nginx -s reload

修改 .env
APP_URL= www.yummy-life.com
DB_HOST = localhost
DB_DATABASE=yummy-life
DB-USERNAME=..
DB-PASSWDORD=..
Mail設定

完成!

Flamingo給非admin的角色時,設定menu無法顯示的問題

問題:我們用Menu Editor Pro來給使用者權限,在給使用者作者權限並開放 Flamingo權限時,Flamingo的選單無法出現。

用’ wordpress flamingo role ‘作為關鍵字查詢Google ,找到兩則關鍵的訊息:

1.Topic: flamingo for editor role « WordPress.org Forums

2.flamingo access for role author – User Role Editor

我們循線知道問題是出在Flamingo在‘map_meta_cap’上,只允許’edit_users’這個權限的人看到,並且記錄在 flamingo/includes/capabilities.php裡。
解題思路是複寫這個規則,於是參考這篇裡的Code,修改如下:

<?php
add_filter( 'map_meta_cap', 'flamingo_map_meta_cap', 10, 4 );
function flamingo_map_meta_cap( $caps, $cap, $user_id, $args ) {
$meta_caps = array(
'flamingo_edit_contacts' => 'edit_users',
'flamingo_edit_contact' => 'edit_users',
'flamingo_delete_contact' => 'edit_users',
'flamingo_edit_inbound_messages' => 'edit_users',
'flamingo_delete_inbound_message' => 'edit_users',
'flamingo_delete_inbound_messages' => 'edit_users',
'flamingo_spam_inbound_message' => 'edit_users',
'flamingo_unspam_inbound_message' => 'edit_users',
'flamingo_edit_outbound_messages' => 'edit_users',
'flamingo_edit_outbound_message' => 'edit_users',
'flamingo_delete_outbound_message' => 'edit_users' );
$meta_caps = apply_filters( 'flamingo_map_meta_cap', $meta_caps );
$caps = array_diff( $caps, array_keys( $meta_caps ) );
if ( isset( $meta_caps[$cap] ) )
$caps[] = $meta_caps[$cap];
return $caps;
}
remove_filter( 'map_meta_cap', 'flamingo_map_meta_cap' );
add_filter( 'map_meta_cap', 'mycustom_flamingo_map_meta_cap', 9, 4 );
function mycustom_flamingo_map_meta_cap( $caps, $cap, $user_id, $args ) {
$meta_caps = array(
'flamingo_edit_contacts' => 'edit_posts',
'flamingo_edit_contact' => 'edit_posts',
'flamingo_delete_contact' => 'edit_posts',
'flamingo_edit_inbound_messages' => 'publish_posts',
'flamingo_delete_inbound_message' => 'publish_posts',
'flamingo_delete_inbound_messages' => 'publish_posts',
'flamingo_spam_inbound_message' => 'publish_posts',
'flamingo_unspam_inbound_message' => 'publish_posts' );

$caps = array_diff( $caps, array_keys( $meta_caps ) );

if ( isset( $meta_caps[$cap] ) )
$caps[] = $meta_caps[$cap];

return $caps;
}

?>

另外打開外掛編輯器

修改 flamingo/includes/capabilities.php

改完存檔,測試ok!

如何新增一個WP的開發環境

前言:爾康簽到一個客戶後,從開發環境建置、設計師設計、到內檢、第一次客戶端交付,約是 10個工作天。建置WP的開發環境大概是2~4小時。

1.為專案命名:通常是爾康訂的專案名稱。例如:xxx 官網改版案。爾康會先報價,客戶接受後,轉正式訂單。

2.登入AWS的Server:一台AWS的Server預掛 5~10個客戶網站,先想好要掛在哪一台Server。

3.把預先下載下來,並已解壓縮的WP資料夾,Copy一份到專案名稱的資料夾。

4.建立專案名稱的資料庫。

5.設定Nginx的設定。(網站對應到哪個專案資料夾),重啟Nginx。

6.在瀏覽器輸入客戶網站名稱,會進入第一次WP的設定畫面。輸入資料庫名稱(專案名稱)、MySQL帳號:root、密碼:,初始化網站。

7.安裝Betheme套件,安裝後輸入註冊序號。安裝Betheme相關套件。

8.安裝admin-menu-editor-pro套件,輸入安裝序號。

9.寄件伺服器相關設定

10.專案交付前用admin-menu-editor設定給客戶端的Menu。

ps . 網路事業部公用-ray政政-wordpress plugin中有 Betheme及 admin-menu-editor-pro的安裝套件。

Duplicate 套件在正式環境出錯

Duplicate 在正式環境中,出現 504 -Gateway Time-out 。查/var/log/nginx/error.log 。發現upstream timed out (110: Connection timed out) while reading response header from upstream。

解決方式:修改/etc/nginx/sites-avalible/kenbo.com

location ~ \.php$ {
            fastcgi_read_timeout 300;
            ............
    }

之後sudo service nginx restart。
重新執行Duplicate後測試ok。

BeTheme 裡的系統設定

修改php.ini    /etc/php/7.1/fpm/php.ini
memory_limit = 768M  //Maximum amount of memory a script may consume (128MB)
max_execution_time = 300  //Maximum execution time of each script, in seconds
max_input_vars = 5000  //ow many GET/POST/COOKIE input variables may be accepted
upload_max_filesize = 100M //Maximum allowed size for uploaded files.

修改後: sudo service php7.1-fpm restart  (重啟php服務)

聯絡我們表單的寄件問題

聯絡我們表單要可以寄信出去,有兩個地方要設
1. 這個網站的寄件伺服器
2.聯絡表單本身的設定

寄件伺服器

目前是由外掛 WP Mail SMTP負責網站郵件寄送。設定的地方在Settings-WP Mail SMTP


有兩個考量:是用公司的Mail Server還是 Google的,考慮到安全性的問題,最後選擇使用Gmail的方案。

參考這個網站。我用公司的gmail: it@megaology.com帳號,註冊了google gmail的API。google開發者網址點此。專案名稱WP Gmail SMTP . gmail的密碼可問MIS (Peter)。

聯絡表單設定

參考梅問題 。及鵠學院的說明。