舊版Wordpress與php安裝在新版Ubuntu 16.04版

升級到Ubuntu 16.04後,因為Ubuntu自帶php7.0,以及原來的source清單中無法再下載,在遷移舊版的wordpress到新系統後發現一直無法順利安裝。費了一番功夫google與錯誤嘗試才搞定,特此記錄正確過程:

首先看這篇了解安裝順序: How To Install WordPress with LEMP on Ubuntu 16.04

上面的內容沒有問題,不過問題出在舊版的php怎麼安裝。首先第一步先移除新版的php7以及相關套件:

1
sudo apt-get remove "php*"

然後使用以下指令看看是否有移除乾淨:

1
php -i

如果跳出找不到php表示已經移除成功。再來把舊的php的安裝清單PPA加入到管理套件中:

1
sudo add-apt-repository -y ppa:ondrej/php

不過這邊可能會跳出command not found的錯誤,解法是安裝另一個套件,然後再使用上述的指令:

1
sudo apt-get install software-properties-common

然後重新更新清單與安裝指定的php版本與套件,先確定能否安裝指定版本,這裡用的是php5.6

1
2
sudo apt-get update
sudo apt-get install php5.6

如果沒問題,用php -v檢查

1
2
php -v
php -i #或這個

接下來安裝套件,注意的是都要加入指定版本:

1
sudo apt-get install php5.6-fpm php5.6-mysql php5.6-curl php5.6-gd php5.6-mbstring php5.6-mcrypt php5.6-xml php5.6-xmlrpc

安裝成功後,確定php5.6-fpm有啟動:

1
2
3
sudo service php5.6-fpm status
# 或者手動啟動
sudo service php5.6-fpm start

找出php5.6-fpm socket的位置,可能在/var/run/php/php5.6-fpm.sock,如果存在,可以開始設定nginx。以下只顯示location區段:

1
2
3
4
5
6
7
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

最後reload nginx:

1
sudo service nginx reload

打完收工