在VPS上安裝ubuntun14.04,建立WordPress
記錄在VPS上從部署Ubuntun,安裝LAMP後架WordPress的步驟,並補充說明進階議題,如安全性、舊站搬家等內容。
Step 1 在VPS部署一台新機器
- 選擇規格
- Deploy Ubuntu 14.04
Step 2 Ubuntu基本設定
- 以SSH root@IP位置 登入
-
ssh root@xx.xx.xx.xx
- 若無法登入時,在客戶端輸入如下指令:
ssh-keygen -R 伺服器端的IP或網址
-
- 更新套件
-
apt-get update && apt-get upgrade
-
- 更新Host Name
- hostname 輸入自己想要的名字
-
echo "hostname" > /etc/hostname hostname -F /etc/hostname
- 確認資料夾中是否有/etc/default/dhcpcd這個檔案(新裝好的基本上都是沒有)
-
ls /etc/default
- 修改 /etc/hosts檔案
- 開啟nano 編輯器,新增下列內容
- hostname.example.com可省略
-
nano /etc/hosts
-
127.0.0.1 localhost.localdomain localhost 12.34.56.78 hostname.example.com hostname
- 更新Time Zone
- 更新時區後,用date檢查
-
dpkg-reconfigure tzdata
-
date
Step 3 Ubuntu安全性設定
- 要經常更新,但是否要自動化取決於自己。
- Debian and Ubuntu use unattended upgrades.
- 新增使用者
- root的權限太大,應該要另外新增一個使用者,再搭配sudo指定操作會比較安全。
- 新增使用者/輸入密碼,加入使用者sudo權限,登出root,重新以user身份登入
adduser example_user
adduser example_user sudo
exit
ssh example_user@IP位置
- 產生金鑰 (本步驟跳過)
- 在本機 (MAC)
-
ssh-keygen -b 4096
- 用預設的名稱就好,稱入密碼短語(passpharse)
- 在VPS
-
sudo mkdir -p ~/.ssh && sudo chmod -R 700 ~/.ssh
- Fail2Ban
-
sudo apt-get install fail2ban
- 加入其他設定,可參考:Using Fail2ban to Secure Your Server
-
nano /etc/fail2ban/jail.local
-
- 防火牆設置-1 (5或6擇一)
- 列出規則
- 修改 File: /tmp/v4
- 貼上內容
sudo iptables -L
nano/tmp/v4
*filter # Allow all loopback (lo0) traffic and reject traffic # to localhost that does not originate from lo0. -A INPUT -i lo -j ACCEPT -A INPUT ! -i lo -s 127.0.0.0/8 -j REJECT # Allow ping. -A INPUT -p icmp -m state --state NEW --icmp-type 8 -j ACCEPT # Allow SSH connections. -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT # Allow HTTP and HTTPS connections from anywhere # (the normal ports for web servers). -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT -A INPUT -P tcp --dport 8080 -m state --state NEW -j ACCEPT # Allow inbound traffic from established connections. # This includes ICMP error returns. -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Log what was incoming but denied (optional but useful). -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables_INPUT_denied: " --log-level 7 # Reject all other inbound. -A INPUT -j REJECT # Log any traffic which was sent to you # for forwarding (optional but useful). -A FORWARD -m limit --limit 5/min -j LOG --log-prefix "iptables_FORWARD_denied: " --log-level 7 # Reject all traffic forwarding. -A FORWARD -j REJECT COMMIT
- 防火牆設置-2 (5或6擇一)
-
sudo ufw enable sudo ufw allow ssh sudo ufw allow http/tcp sudo ufw allow https/tcp ufw allow from 12.34.0.0/16
- 可參考:Ubuntu – ufw (Uncomplicated Firewall) 防火牆
-
Step 4 安裝LAMP
- 參考資料:
- 安裝Apache2
-
sudo apt-get install apache2
- Y
-
Enabling site 000-default.
-
- 安裝PHP
-
sudo apt-get install php5 php5-mysql
- Y
- 安裝成功後,在瀏覽器輸入IP,可以看到這個畫面 “it works!”
-
- 安裝MySQL
-
sudo apt-get install mysql-server
- Y
- 輸入MySQL root密碼,畫面如下:
-
- 安裝phpmyadmin
-
sudo apt-get install phpmyadmin
- Y
- 選擇Apache2,(記得按空白鍵選擇,出現星號才有選成,按Enter繼續下一步)
- 選擇Yes
- 輸入MySQL密碼(前一步時自己輸入的密碼)
- 設定MySQL連接phpMyAdmin的密碼,我設定跟前一步同樣的密碼
- 確定安裝成功後,可以看到下列畫面,在瀏覽器輸入http://IP/phpmyadmin
- ubuntu13.10 server 版本phpmyadmin出現缺少 mcrypt 外掛。請檢查 PHP 設定。如何解決?
-
apt-get install php5-mcrypt
-
sudo php5enmod mcrypt
-
sudo service apache2 restart
-
- rewrite apache2.conf
-
cd etc cd apache2 sudo nano apache2.conf
- 修改權限
-
<Directory />
AllowOverride All
</Directory>
-
<Directory /var/www/>
AllowOverride All
</Directory>
-
- Reload Apache2
-
sudo service apache2 reload
-
sudo a2enmod rewrite
-
sudo service apache2 restart
- OK
-
- 更名 /var/www/html
-
sudo mv html old
-
Step 5 下載WordPress
- 下載Wordpress安裝包
- 到WordPress 台灣正體中文網站,複製下載 .tar.gz — 7.2 MB的連結。
- 下載安裝檔
-
sudo wget https://tw.wordpress.org/wordpress-4.4-zh_TW.tar.gz
- 解壓縮
-
sudo tar xvf wordpress-4.4-zh_TW.tar.gz
- 將解壓縮後的資料夾從wordpress更名為html
-
sudo mv wordpress html
- 成功可看到這個畫面,在瀏覽器輸入http://IP
-
- 更改權限
-
sudo chown www-data:www-data /var/www/html/ -R
-
sudo chmod 775 -R /var/www/
-
sudo usermod -a -G www-data erica
-
id erica
-
groups
-
Step 6 設定資料庫
- 登入phpMyAdmin
- 使用者 -> 新增使用者
- 勾選 「建立與使用者同名的資料庫並授予所有權限」
- 設定基本資料與帳密
- 登入後台,完成!
- 記得刪掉readme.txt / license.html檔
- 更新權限
- 才能上傳媒體庫與更新外掛,參考:無法建立目錄: wp-content/uploads/ 伺服器是否允許寫入上層目錄
sudo chmod 777 -R /var/www/html/wp-content
-
sudo chmod 777 -R /var/www/html/wp-includes
sudo chmod 777 -R /var/www/html/wp-admin/includes
- 777是很危險的設定,之後要改回來。官方建議資料夾755,檔案644
- 才能上傳媒體庫與更新外掛,參考:無法建立目錄: wp-content/uploads/ 伺服器是否允許寫入上層目錄
Step 7 設定DNS
- 將想要使用的網域,把DNS指向IP即可
進階議題:
調教網站效能:
WordPress安全性:
以下步驟,用於舊網站搬家使用:
- 登入FTP
- Filezilla選sFTP
- 用之前新增的帳密登入
- 下載舊站資料庫
- 安裝外掛WordPress Database Backup
- 下載資料庫到本機
- 新增資料庫,匯入舊站資料庫
- 修改wp-config.php檔(從FTP下載/上傳)
- 修改資料庫跟使用者名稱
- 如果成功,新網站會從新的Wordpress變成一遍白
- (如果網址有改變)修改資料庫中wp_options的url欄位
- 下載舊網站的WP資料夾,並將內容上傳至新網站的FTP中(wp-config.php除外)
- 上傳zip檔再解壓縮會比較快
-
sudo apt-get install unzip
-
sudo unzip g.zip
- 更新DNS
- 改變資料夾權限(參考上面步驟)
補充說明:
如果有需要VPS主機商,我目前使用的是Vultr.com,優惠碼請參考:Vultr.com – promo code 優惠碼
你好啊, 我黎到呢步就不行進一步了
[sudo nano apache2.conf]
我將內容修改以下的
AllowOverride All
AllowOverride All
Reload Apache2
sudo service apache2 reload
然後SAVE後想reload apache2就出現了
AH00534: apache2: Configuration error: No MPM loaded.
* Restarting web server apache2 [fail]
是我改apache2.conf的內容不對嗎?
謝謝