下文:
- 係Ubuntu 18.04 上 安裝 NextCloud With LEMP Stack!(上)——安裝LEMP Stack
前言
點解會有呢個教學呢……梗係我又要裝過NextCloud啦。而秉承It works!
政策嘅我,無事無幹梗係唔會無啦啦就裝過啦,話說,小妹接到個咁嘅email:
我接受唔到啊.jpg
本身對conoha嘅垃圾網絡同莫名其妙嘅潛規則感到唔多滿意,早已有出走嘅念頭。所以收到時候瞬間已經決更換VPS。(幸好Blog晨早搬咗做Hexo,不幸中嘅大幸)。
VPS
首先當然要有個VPS先啦。做咗一輪嘅search,發覺linode評價唔差,而且價錢實惠穩定,重要係咩啊?唔會有無限bandwidth啊!打開 Linode VPS 嘅網站,註冊。btw,而家輸入 promo code atp2018
仲有20蚊credit。
註冊好之後,新建新嘅VPS,之後選擇Ubuntu 18.04 init,完成之後可以經ssh登入啦。
準備
之後可以經ssh登入VPS:ssh root@<your vps ip>
首先更新packages確保係最新嘅:
apt update && apt upgrade
安裝 nginx
之後安裝nginx:apt install nginx
enable nginx嘅 service:systemctl enable nginx
啓動nginx嘅service:systemctl start nginx
查看nginx service 嘅狀態:systemctl status nginx
output sample:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-05-17 02:20:05 UTC; 2min 56s ago
Docs: man:nginx(8)
Main PID: 19851 (nginx)
Tasks: 2 (limit: 2059)
CGroup: /system.slice/nginx.service
├─19851 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─19853 nginx: worker process
檢查nginx嘅版本:nginx -v
output sample:nginx version: nginx/1.14.0 (Ubuntu)
之後係browser 鍵入你嘅ip應該可以見到welcome page:
之後記得給予 nginx user對web server root嘅擁有權:sudo chown www-data:www-data /var/www/html -R
安裝 MariaDB
之後安裝MariaDB:apt install mariadb-server mariadb-client
查看 maridaDB嘅service嘅狀態:systemctl status mariadb
output sample:
● mariadb.service - MariaDB database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-05-17 02:39:57 UTC; 49s ago
Main PID: 21595 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 27 (limit: 2059)
CGroup: /system.slice/mariadb.service
└─21595 /usr/sbin/mysqld
如果沒有開啓嘅話記得開啓:systemctl start mariadb
仲有enable埋:systemctl enable mariadb
之後執行installation script:mysql_secure_installation
基本上除咗Y/n就係enter,跟住指示做就得。
之後可以試下登入mariaDB:mariadb -u root
離開:exit;
檢查mariaDB嘅版本:mariadb --version
outut sample:mariadb Ver 15.1 Distrib 10.1.29-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
記得開啓php7.7-fpm:systemctl start php7.2-fpm
開埋:systemctl enable php7.2-fpm
檢查狀態:systemctl status php7.2-fpm
output sample:
● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor prese
Active: active (running) since Thu 2018-05-17 03:04:46 UTC; 2min 43s ago
Docs: man:php-fpm7.2(8)
Main PID: 31922 (php-fpm7.2)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/se
Tasks: 3 (limit: 2059)
CGroup: /system.slice/php7.2-fpm.service
├─31922 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
├─31939 php-fpm: pool www
└─31940 php-fpm: pool www
創建 nginx block
事實上,除咗就咁成個 path當web server外,nginx當然亦可以建立類似virtual host咁,按訪問嘅port/domain唔同射去唔同嘅path嚟處理個request,而nginx會讀取 /etc/nginx/conf.d/
下嘅所有config file。所以可以一個file for一個application都無問題。
首先移除原有嘅設定文件:rm /etc/nginx/sites-enabled/default
新建設定文件:nano /etc/nginx/conf.d/default.conf
填入,記得修改servername:
```server {
listen 80;
listen [::]:80;
server_name ; #改成你嘅dmain name
root /var/www/html/;
index index.php index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ /index.php;
}
location ~ .php$ {
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include snippets/fastcgi-php.conf;
}
location ~ /.ht {
deny all;
}
}
儲存,離開。
測試設定冇問題:
`nginx -t`
output sample:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
```
重開nginx:systemctl reload nginx
之後測試PHP,創建測試文件:nano /var/www/html/info.php
填入:<?php phpinfo(); ?>
儲存離開,並訪問該文件:<your domain / ip>/info.php
冇問題之後記得順手移除就ok啦:rm /var/www/html/info.php
完。