作業系統是官方的 Raspbian "wheezy" ( 2013/02/09 )。
- 安裝 nginx,php 和 mysql,期間要設定一組 mysql root 的密碼。
$sudo apt-get update $sudo apt-get install nginx php5-fpm php5-cli php5-curl php5-gd php5-mcrypt php5-cgi mysql-server
- 到目錄 /etc/nginx/sites-available 底下。
$cd /etc/nginx/sites-available/
- 於 sites-available 目錄底下,新增名稱 wordpress 的文件。
/etc/nginx/sites-available $ sudo nano wordpress
- 將以下代碼加到文件 wordpress 裡面,在 nano 編輯模式修改完後, ^O(覆寫檔案), ^X(離開編輯模式)。
# Upstream to abstract backend connection(s) for php upstream php { server unix:/var/run/php5-fpm.sock; } server { ## Your only path reference. root /srv/www/wordpress/public_html; listen 80; ## Your website name goes here. Change to domain.ltd in VPS server_name _; access_log /srv/www/wordpress/logs/access.log; error_log /srv/www/wordpress/logs/error.log; ## This should be in your http block and if it is, it's not needed here. index index.php; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location / { # This is cool because no php is touched for static content try_files $uri $uri/ /index.php; } location ~ \.php$ { #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini include fastcgi_params; fastcgi_intercept_errors on; fastcgi_pass php; } location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { expires max; log_not_found off; } }
- 移動文件 wordpress 到目錄 /sites-availabe/ 底下,並刪除 default 檔案。
$cd /etc/nginx/sites-enabled/ /etc/nginx/sites-enabled $sudo ln -s ../sites-avaiable/wordpress ../sites-enabled/wordpress /etc/nginx/sites-enabled $sudo rm default /etc/nginx/sites-enabled $sudo rm ../sites-enabled/default
- 開啟 /etc/php5/fpm/php.ini,設定 cgi.fix_pathinfo=0;
$sudo nano /etc/php5/fpm/php.ini
- 下載,解壓縮 wordpress 套件包。
$sudo mkdir -p /srv/www/wordpress/logs/ $sudo mkdir -p /srv/www/wordpress/public_html $cd /srv/www/wrodpress/public_html $sudo wget http://wordpress.org/latest.tar.gz $sudo tar xzvf latest.tar.gz $sudo mv wordpress/* .
- 啟動 nginx,在瀏覽器輸入 RPi 的 ip位址,順利的話,可以見到 welcome to nginx。
$sudo service nginx start
- 設定資料庫 mysql,紅色標示的地方,需要自行設定,詳細資訊可參考 WordPress installation instructions。
$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5340 to server version: 3.23.54 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> CREATE DATABASE wordpress; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON wordpress.* TO wordpress@localhost -> IDENTIFIED BY "password"; Query OK, 0 rows affected (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec) mysql> EXIT Bye
- 在目錄 /srv/www/wordpress/public_html 底下,由 sample 建立文件 wp-config.php。
/srv/www/wordpress/public_html $sudo cp wp-config-sample.php wp-config.php /srv/www/wordpress/public_html $sudo nano wp-config.php 修改資料庫 mysql 的設定值; define('DB_NAME', 'wordpress'); /** MySQL database username */ define('DB_USER', 'wordpress'); /** MySQL database password */ define('DB_PASSWORD', 'raspi');
- 重設路徑,重啟服務器。
$sudo chown www-data.www-data /srv/www/wordpress/public_html/ -R $sudo service nginx restart $sudo service php5-fpm restart
打開瀏覽器連結到 http://localhost/wp-admin/install.php (localhost 填入 RPi 的 ip 位址),順利的話,就可以看到 wordpress 後台的歡迎畫面。
最後想必應該是大家最有興趣的部份,就是 RPi 所架設的 wordpress 伺服器到底有多大能耐,這樣的作法是否可行。於是把 CPU 超頻到 1G 後,到 Load Impact 填入網址,開始對網頁進行
主要結果如下圖所示,在大概同時上線人數在 22~25 人的時候,平均等候時間是 8.5 秒,時間是長了一點,不過有一部分原因可以歸咎於我所測試的 wordpress 版型的 javascript,它約佔了一半的等候時間,所以 RPi 這樣的表現,筆者覺得已經很對得起它自己的身價。RPi 真的可以讓每個人輕鬆擁有自己的小流量部落格主機!
沒有留言:
張貼留言