運維開發

在 CentOS 7 上裸機安裝 Cachet

June 24, 2020
運維開發

在 CentOS 7 上裸機安裝 Cachet # 準備環境,如果是 CentOS 7 的話就乖乖用 remi 的 PHP 7.2 的庫就好了: yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y 然後開始安裝官網上提到的和沒提到的各種依賴: yum install php-fpm php-mysqlnd php-json php-gd php-zip php-cli php-sqlite3 php-curl php-xml php-redis php-mbstring php-acpu -y CentOS 7 上的 PHP 默認是 Apache 用戶,需要設置一下,然後 PHP 默認監聽的 `127.0.0.1:9000`,所以爲了省事 Nginx 可以這麼寫: location / { add\_header Strict-Transport-Security max-age=15768000; try\_files $uri /index.php$is\_args$args; } location ~ \\.php$ { include fastcgi\_params; fastcgi\_pass 127.0.0.1:9000; fastcgi\_param SCRIPT\_FILENAME $document\_root$fastcgi\_script\_name; fastcgi\_index index. ...

在 Docker 中部署 Jira 和 Confluence 並連接到 Amazon RDS

May 27, 2020
Docker, Jira, RDS, 運維開發

在 Docker 中部署 Jira 和 Confluence 並連接到 Amazon RDS # 採用 Docker 部署 Jira,使用 Nginx 作爲反響代理,數據庫使用 Amazon RDS(MySQL 5.7) Jira Application # 創建個目錄,內部放置一個 docker-compose.yml 文件,內容如下: version: '3.3' services: jira-software: image: atlassian/jira-software volumes: - ./jira\_data:/var/atlassian/application-data/jira - ./jira\_lib/mysql-connector-java-5.1.49-bin.jar:/opt/atlassian/jira/lib/mysql-connector-java-5.1.49-bin.jar - ./jira\_lib/mysql-connector-java-5.1.49.jar:/opt/atlassian/jira/lib/mysql-connector-java-5.1.49.jar - ./jira\_lib/server.xml:/opt/atlassian/jira/conf/server.xml:ro # 這裏一定要只讀掛載,不然 Jira 重啓後會用默認值去覆蓋,然後用反向代理的時候會出現問題 ports: - '8080:8080' 在同目錄中創建 jira_lib 目錄,內部放上 mysql-connector-java-5.1.49-bin.jar , mysql-connector-java-5.1.49.jar 和 server.xml,其中前兩者可以在 https://lb.knat.network/mysql-connector-java-5.1.49.zip 下得到,後者內容如下(只修改了 Connector 部分,着重關注一下這個,如果懷疑版本不對的話,建議手動進入 Docker 容器內把 /opt/atlassian/jira/conf/server.xml 文件複製出來進行修改): <?xml version="1.0" encoding="utf-8"?> <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org. ...

AWS S3 給 Public 下載權限

April 17, 2020
運維開發

AWS S3 給 Public 下載權限 # { "Version": "2012-10-17", "Statement": \[ { "Effect": "Allow", "Principal": "\*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<S3\_BUCKET\_NAME>/\*" } \] }

在 Scaleway Object Storage 上備份數據

March 10, 2019
Scaleway, 運維開發

在 Scaleway Object Storage 上備份數據 # 爲了面對手滑、手抖以及各類手部或腦部問題,我們需要對數據進行備份,這裏可以考慮使用 Scaleway 的 Object Storage 進行備份,選擇 Scaleway (而不是 Amazon S3 或者 Google Cloud Storage)的原因是因爲 Scaleway 是目前看到過的一個比較廉價的解決方案,目前的價格是 5 EUR/mo 可以獲得 500G 的存儲空間和 500G 的對外流量。 什麼是對象存儲(Object Storage) # Object storage, also known as object-based storage, is a strategy that manages and manipulates data storage as distinct units, called objects. These objects are kept in a single storehouse and are not ingrained in files inside other folders. ...

Docker Compose 小記

March 9, 2019
Docker, 運維開發

Docker Compose 小記 # 第一次接觸 Docker 就是從寫 docker-compose開始的,因爲嫌每次開啓動手動 docker run xxx 太麻煩,所以就希望有一個一次 Write Once ,Crash Everywhere 的方法可以實現,所幸看到了 Compose ,就一直這麼用着了。 對於相關的程序的話,由於有了太多的手動維護服務器(然後各種刪庫跑路)的經驗,我對於一個正在運行的的 Web App 而言,希望的部署方式有如下: 直接部署在服務器上(類似部署 Wordpress 時手動安裝 Wordpress, PHP-FPM, MySQL 和 nginx),這樣的後果就是維護(尤其是遷移)起來非常費力,安裝起來非常費力,似乎唯一的好處(可能也是錯覺)就是在程序爆炸的時候似乎可以對於程序有一些更加多一點的控制。 Docker 部署,然後暴露一個端口,前端由 nginx 來做反向代理,這樣的好處就是 Write Once,docker-compose up -d&& Crash Everywhere,對於遷移起來也非常方便,直接整個文件夾壓縮後 rsync 出去就好了。 出於上面的第二個需求,我寫的 Compose 文件中所有的持久化內容(數據庫,文件)都是放在同一個文件夾中的,以本博客正在使用的 Docker 的 docker-compose.yml爲例: version: '3.1' services: wordpress: image: wordpress restart: always volumes: - ./wordpress:/var/www/html ports: - 2400:80 environment: WORDPRESS\_DB\_HOST: db WORDPRESS\_DB\_USER: exampleuser WORDPRESS\_DB\_PASSWORD: examplepass WORDPRESS\_DB\_NAME: exampledb db: image: mysql:5. ...