2019年8月12日 星期一

第一次送印前的那些事

一般印刷
1. 出血和安全線要確認好
2. 顏色應使用印刷色彩格式 CMYK
2. 完成之後記得移除安全線
3. 文字全部要轉成外框 (create outline)
4. 根據印刷廠的要求轉成對應的檔案格式
5. 完成!

書籍相本
a. 要注意有些廠會規定一本固定 32 或 64 頁,第一和最後一頁為單頁,如果未達規定頁數要補白色頁填滿
b. 根據封面的材質出血、書背和安全線會有些不同,要注意

2018年10月12日 星期五

架設 laravel 環境遇到的坑

container php-fpm

  • 打包 composer 和設定 laravel 的開發環境
    (不打包的話在操作 PHP 的時候會遇到 could not find driver 錯誤)
    1.  找個地方建個空資料夾
    2.  建立 Dockerfile
    3.  打包(附範例):
        FROM php:7.2.9-fpm
        RUN docker-php-ext-install -j$(nproc) pdo_mysql
        RUN docker-php-ext-install -j$(nproc) mbstring
        RUN docker-php-ext-install -j$(nproc) tokenizer
        RUN curl -sS https://getcomposer.org/installer | php
        RUN mv composer.phar /usr/local/bin/composer
  • 操作 php artisan db 相關的操作時遇到 Access denied for user 錯誤:
    這個問題的原因來自於你沒有讓你 mysql 的 user 開啟遠端連線的權限
    1.  GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'IP' IDENTIFIED BY 'PASSWORD';
    p.s 1.  USERNAME 是允許登入該資料表的使用者帳號
         2.  IP 是允許連線的 IP 位址, 如果用'%', 會讓所有外來 IP 皆可連線
         3.  PASSWORD 是使用者密碼
  • 操作 composer instsall 時遇到 unable to locate package unzip 錯誤:
    1.  sudo apt-get update
    2.  apt-get upgrade
    3.  sudo apt-get install unzip.
  • 錯誤 Syntax error or access violation: 1071 Specified key was too long; maxkey length is 767 bytes")
    從 5.4 開始 laravel 就把資料庫的預設字符集更改成 utf8mb4,除非你使用 MySQL v5.7.7 或更高的版本才不會出現此錯誤。
    1. 找到 App\Providers\AppServiceProvider 文件
    2. 在函式 boot 裡面加入 Schema::defaultStringLength(191);
  • 架設 API Authentication (Passport) 的時候遇到 Unauthenticated 錯誤:
    (假設你按照 laravel 官方的教學走,然後遇到這個錯誤,這是因為你沒有看完整篇文章,不過煮煮也懂,誰有那個美國時間慢慢讀,而且其實這部份的說明藏的很下面,就是故意要騙你看完整篇的意思... ...)
    1. 打開 App\Http\Kernel.php
    2. 在 $middlewareGroups 裡面加入 \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class

2018年9月11日 星期二

[測試] 在 Synology Nas 上用 docker 架設 Nginx


秉持著 one process per container 的原則讓我們先來備料...

首先我們需要:

然後就可以開始架設...
蛤?
你喜歡用 cmd 裝逼?
什麼?
你忘了要去哪學?
沒關係沒關係,
煮煮把他留在這裡 [docker]
忘記指令的同學可以先去複習一下,
接下來讓我們開始動手做吧!
(cgi 的操作可以參考 cmd)


    1. 首先先把 mysql 架起來
sudo docker run 
  --restart=always 
  -d --name mysql-server 
  -p 3306:3306 -e MYSQL_ROOT_PASSWORD=[這裡輸入你登入這台 server 用的密碼]
  -e MYSQL_DATABASE=[這裡輸入你要建立的資料庫名稱]
  -e MYSQL_USER=[這裡輸入你要建立的資料庫使用者帳號]
  -e MYSQL_PASSWORD=[這裡輸入資料庫使用者的密碼]
mysql/mysql-server:8.0.4

   2. 接著架設 php
sudo docker run
  --restart=always
  -d --name php7-2-9
  -p [隨便選個你喜歡且不是保留用的 port]:9000
  --link mysql-server
  -e DB_HOST=mysql-server
  -v [project 的存放位置]:[要映射到 container 的位置]
  -w [project 的存放位置]
php:7.2.9-fpm

    3. 然後架設 nginx
sudo docker run
  --restart=always
  -d --name nginx1-9-9
  -p 80:80
  --link php7-2-9
  -v [project 的存放位置]:[要映射到 container 的位置]
  -v [你寫好的 default.conf 的存放位置]:/etc/nginx/conf.d/default.conf
nginx:1.9.9

    p.s 懶得找的話可以參考煮煮的 default.conf
server {
    listen 80 default_server;
    server_name localhost;
    root [映射到 container 的位置];
    index index.php index.html index.htm;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    error_page 404 /index.php;
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php7-2-9:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param DB_HOST mysql-server;
    }
    location ~ /\.ht {
        deny all;
    }
}

備註:

  • --name 的部分有改動的話其他地方別忘了改
  • 圖形介面比較好用,初學的話當然是建議你直接用介面操作,然後再比對指令
  • 如果你的操作過程有問題,可以善用 curl localhost:80 來檢查會比較快

沒問題的話應該會像我這樣...



然後可以來試吃啦!
隨便放個 phpinfo 來看看~
是不是很神奇啊~~~






2017年8月31日 星期四

[CSS] 解決文字編輯器下的 table 在 RWD 的問題

解決文字編輯器下的 table 在 RWD 的問題


解法1 - 把他變成小視窗

[ table前的框(通常我都用div) ] {
    display: block;
    overflow-x: auto;
}

這樣他就會在適當的時候變成左右滑動,
也不用擔心變形的問題了

[CSS] 文字超出時變成 "..."

文字超出變成 "..."

div {
    overflow : hidden;
    text-overflow : ellipsis;
    white-space : nowrap;
}

因為是仰賴寬度,
所以請別忘的設定外圍寬度,
不然可是會失敗的!

[Laravel][5.4.33] 如何查詢當前框架運行的版本號

如何查詢當前框架運行的版本號?



方法A:

1.  到 "/你的lavarel project/vendor/laravel/framework/src/Illuminate/Foundation" 資料夾內

2.  打開 Application.php 文件

3.  找到 "const VERSION ... ..." 這行,右邊的字串就是當前框架運行的版本號


方法B:

1.  到 "/你的lavarel project" 資料夾前

2.  打開檔案 artisan

3.  找到 "Laravel Framework" 這行,右邊的字就是當前框架運行的版本號


方法C:

1.  利用終端機(console)到 "/你的lavarel project" 資料夾內

2.  輸入指令 "php artisan -V"

3.  "Laravel Framework" 這行右邊的文字就是你當前框架運行的版本號



這樣你還找不到我就真的沒辦法了... ...


2017年3月31日 星期五

[jQuery]常見jQuery的三種不同架構


常見jQuery的三種不同架構 $(function(), (function($), $.fn.myFunctionName

第一種
$(function(){
// Document is ready
});
其作用和 $(document).ready()一樣 ,用意在DOM載入後執行ready()方法。

第二種
(function($) {
// Here "$" is a jQuery reference
})(jQuery)
基本上是()(para)匿名方法(anonymous function),傳承jQuery的函式庫,jQuery plugins都是用這樣的架構。

第三種
$.fn.myFunctionName = function(){
// script codes
}