1. 購買Linode虛擬主機
1. 選擇每月5美元的方案即可,
2. 使用 ubuntu 16.04 LTS 鏡像
3. 每月 1TB 免費流量
4. 20GB 硬碟空間
5. 每月2美金,提供自動備份(每日和每周),手動備份(隨時可以)
2. 使用ssh帳號登入Linode主機
Linode主機預設帳號是root
密碼是創建虛擬主機時指定的
1. 從 Linode Dashboard 啟動虛擬機
2. ssh root@xxx.xxx.xxx.xxx # xxx.xxx.xxx.xxx 是您的虛擬機ip
3. 安裝vim
維護雲端機器,一定要學會如何使用vim,只要學會如何編輯,存檔就可以了
有時會因為ipv6的關係,造成apt-get卡住,所以前三條指令會暫時關閉ipv6
1. echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
2. echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6
3. echo 1 > /proc/sys/net/ipv6/conf/lo/disable_ipv6
4. apt-get update
5. apt-get upgrade
6. apt-get install vim
3. 創建新使用者
Linode預設是root登入,十分容易受到攻擊
所以我們必須創建一個新的使用者,並且取消root登入
如果不在意被攻擊,那步驟 3~5 可以無視
1. useradd example -m -s /bin/bash # 新增登入帳號,範例: example
2. passwd example # 設定登入密碼
3. 現在開始可以使用" ssh example@xxx.xxx.xxx.xxx "登入
4. 將使用者example加入sudolist
因為我們不使用root帳號登入,所以需要使用sudo來使用系統權限
1. chmod 755 /etc/sudoers
2. vim /etc/sudoers
3. 將" example ALL=(ALL:ALL) ALL " 加入最後一行
4. chmod 400 /etc/sudoers
5. 登出重新以example帳號登入
5. 取消root登入
1. sudo vim /etc/ssh/sshd_config
2. 找到這行 " PermitRootLogin yes "
3. 將它變更為 " PermitRootLogin no "
4. sudo service ssh reload
5. 從此後無法使用root登入
6. 安裝Mariadb
MySQL已被Oracle收購,即將由地球上消失,請無視它
MariaDB完全相容MySQL
1. sudo apt-get install mariadb-server
2. sudo mysql -uroot # 試登入, 鍵入" exit; " 即可離開
6. 更改Mariadb系統管理者密碼
下面密碼123456只是範例說明
1. sudo mysql -uroot #登入
2. use mysql;
3. update user set plugin='' where User='root';
4. update user set password=PASSWORD("123456") where User='root';
5. flush privileges;
6. exit;
7. sudo mysql -uroot -p123456 #試登入,確定上述步驟無誤
7. 為wordpress新增專屬資料庫
1. sudo mysql -uroot -p123456 # 登入
2. CREATE DATABASE wordpress; # 增加資料庫wordpress
3. CREATE USER wordpressuser@localhost IDENTIFIED BY '123456'; # 只允許本地登入,帳號wordpressuser
4. GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost; #賦予所有操作權限
5. FLUSH PRIVILEGES;
6. exit;
7. sudo mysql -uwordpressuser -p123456 #試登入,確定上述步驟無誤
8. 安裝nginx反向代理伺服器,及php套件
1. sudo apt-get install nginx
2. sudo apt-get install php-gd
3. sudo apt-get install php-ssh2
4. sudo apt-get install php-fpm
5. sudo apt-get install php-mysql
6. 此時您可以用PC的瀏覽器並鍵入 " http://xxx.xxx.xxx.xxx " 做測試,此時可以看見Welcome to nginx!
9. 下載wordpress套件
您可以去中文官網下載
以下為了一貫性使用命令列下載
1. wget https://tw.wordpress.org/latest-zh_TW.tar.gz # 下載
2. tar -zxv -f latest-zh_TW.tar.gz # 解壓縮,此時目錄下會有一個wordpress目錄
3. sudo chown -R www-data.www-data wordpress # 變更目錄所有權為 www-data.www-data
4. sudo chmod -R g+w wordpress # 所有www-data群組成員皆可存取此目錄
5. sudo usermod -g www-data example # 將使用者example加入此群組
6. 重新登入,取得新權限
10. 新增上傳資料夾
這個資料夾很重要,您上傳的檔案和下載的佈景主題未來都放這裡
1. mkdir wordpress/wp-content/uploads
2. sudo chown www-data.www-data wordpress/wp-content/uploads
11. 編輯wp-config.php
將資料庫連線帳號和密碼告知wordpress
將上傳檔案和佈景主題位置告知wordpress
1. cd wordpress ; cp wp-config-sample.php wp-config.php
2. vim wp-config.php
3. 找到這三行
define('DB_NAME', 'database_name_here');
define('DB_USER', 'username_here');
define('DB_PASSWORD', 'password_here');
4. 改成我們步驟7所建立的資料庫和帳密
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpressuser');
define('DB_PASSWORD', '123456');
5. 並將這兩行放到檔案末端
define('UPLOADS', 'wp-content/uploads');
define('FS_METHOD', 'direct');
12. php設定
編輯php.ini
範例為 /etc/php/7.0/fpm/php.ini格式為 /etc/php/版本號/fpm/php.ini
若版本變更,請碼農們隨機應變upload_max_filesize
增加上傳檔案大小,須配合代理伺服器nginx設定
cgi.fix_pathinfo
安全性設定,不可以執行cgi
此步驟可跳過日後再說
1. sudo vim /etc/php/7.0/fpm/php.ini
2. 找到這行 " upload_max_filesize = 2M "
3. 改成 " upload_max_filesize = 5M "
4. 找到這行 " ;cgi.fix_pathinfo=1 "
5. 改成 " cgi.fix_pathinfo=0 "
13. 設定nginx代理伺服器
更換php版本請注意這行” fastcgi_pass unix:/run/php/php7.0-fpm.sock; “
/run/php/php7.0-fpm.sock 會有所變動你可以使用下列命令來調查新的 unix socket name address
netstat -xl | grep php上傳檔案大小改這行” client_max_body_size 5M; “ 這裡是第一關, php.ini是第二關
1. sudo vim /etc/nginx/sites-available/default
2. 找到
server {
很多內容
}
3. 換成
server {
listen 80;
server_name _;
root /home/example/wordpress;
index index.php index.html index.htm;
client_body_in_file_only clean;
client_body_buffer_size 32K;
client_max_body_size 5M;
sendfile on;
send_timeout 300s;
location / {
# try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php?q=$uri&$args;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
14. 重啟服務
1. sudo service nginx restart
2. sudo systemctl restart php7.0-fpm
3. 使用瀏覽器鍵入 " http://xxx.xxx.xxx.xxx " 來做第一次設定
4. 後台網址為" http://xxx.xxx.xxx.xxx/admin " # 帳密是您做第一次設定時決定的
15. 當您申請domain name後
請記得到wordpress後台
設定 -> 一般
將WordPress 位址(URL)
網站位址(URL)
改成你的domain name