ต่อจากคราวที่แล้วนะครับ ใครที่อยู่ดีๆ เปิดมาเจอตอนที่ 2 ให้กลับไปอ่านตอนที่ 1 ก่อน
เปิดไฟล์ /usr/local/etc/nginx/nginx.conf เพื่อเอา commentออก ตรงในส่วนของการเรียกใช้งาน php
เพิ่ม index.php เข้าไป
location / {
root /usr/local/www/nginx;
index index.html index.php index.htm;
}
เอา comment ออก เพื่อให้เรียกใช้งาน php ผ่าน fcgi
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME โฟลเดอร์ที่เก็บไฟล์$fastcgi_script_name;
include fastcgi_params;
}
เซฟไฟล์ให้เรียบร้อย จากนั้น ไปสร้างไฟล์ทดสอบการทำงานของ php ที่ /usr/local/www/nginx/ สร้างไฟล์ index.php ควรจะได้ผลลัพธ์ของ phpinfo.
phpinfo();
?>
ปล.
ถ้า ขึ้น error No input file specified. -> ให้ย้อนกลับไปดูว่า โฟลเดอร์ที่เก็บไฟล์ อ่ะ ตรงกับที่ ใส่ไปใน nginx.conf หรือเปล่า ?
เอ้าไปๆ มา ตอนนี้ก็เป็นเพียง การ config nginx ให้ใช้งาน php ได้เท่านั้น ยังไม่เกี่ยวกะ Rails เลย เอาเป็นว่าที่เหลือเอาไว้ตอนหน้าแล้วกัน
---ยังไม่จบ มีต่อ ตอนที่ 3---
เล่าเรื่องการทำเว็บไซต์ด้วย Ruby on Rails จ้า พร้อมวิธีการปรับแต่ง Server จำพวก FreeBSD, debian จากประสบการณ์ในการทำงาน Admin
แสดงบทความที่มีป้ายกำกับ setup แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ setup แสดงบทความทั้งหมด
วันเสาร์ที่ 27 พฤศจิกายน พ.ศ. 2553
วันศุกร์ที่ 26 พฤศจิกายน พ.ศ. 2553
Rails + Nginx Setup ตอนที่ 1
โจทย์
1. อยากจะได้เครื่อง ที่ deplyment สำหรับ Ruby on Rails
2. ไม่เอา Apache เป็น เว็บเซิฟเวอร์
3. ถ้าจะให้ดี ต้องเพื่อใช้งาน php ด้วย
# cd /usr/ports/lang/ruby18
# make install clean
# cd /usr/ports/www/nginx
# make install clean
(ตอนเลือก คอนฟิกให้เลือก http_uploadprogress, passenger ด้วย)
# cd /usr/ports/databases/
# cd mysql51-server/
# make WITH_CHARSET=tis620 WITH_XCHARSET=all WITH_COLLATION=tis620_thai_ci WITH_OPENSSL=yes install clean
# gem install rails -v=2.3.5
# gem install mysql
# gem install mini_magick
# gem install mongrel_cluster
อันนี้เป็นส่วน option เพิ่มเติม , ลงphp, และการทำให้ nginx เรียกใช้งาน php ได้
# cd /usr/ports/lang/php5
# make install clean
# cd /usr/ports/lang/php5-extensions
# make install clean
ติดตั้ง spawn-fcgi (สมัยก่อน spawn-fcgi จะไม่แยกออกมาเป็น ports เฉพาะ จะอยู่รวมกับ lighttpd ก็ให้ติด lighttpd ก่อนแล้วค่อย copy เอาเฉพาะ spawn-fcgi แต่ถ้าอัพเดต ports เป็นล่าสุด มันจะแยก ports เรียบร้อยแล้ว)
# cd /usr/ports/www/spawn-fcgi/
# make install clean
- เปิดการใช้งาน spawn-fcgi และ รัน service ทุกครั้งที่ reboot
แก้ไขไฟล์ rc.conf และ เพิ่มคำสั่งนี้เข้าไป
spawn_fcgi_enable="YES"
ลอง Restart ดู จากนั้น ทดสอบ จะได้ ผลลัพธ์ประมาณนี้
# sockstat -4 | less
www php-cgi 687 0 tcp4 127.0.0.1:9000 *:*
www php-cgi 686 0 tcp4 127.0.0.1:9000 *:*
www php-cgi 685 0 tcp4 127.0.0.1:9000 *:*
www php-cgi 684 0 tcp4 127.0.0.1:9000 *:*
www php-cgi 683 0 tcp4 127.0.0.1:9000 *:*
www php-cgi 682 0 tcp4 127.0.0.1:9000 *:*
กลับมาเข้าสู้การทำงานหลัก
- เปิดการใช้งาน nginx และ รัน service ทุกครั้งที่ reboot
แก้ไขไฟล์ rc.conf และ เพิ่มคำสั่งนี้เข้าไป
nginx_enable="YES"
---ที่เหลือ อ่านต่อตอนหน้า---
1. อยากจะได้เครื่อง ที่ deplyment สำหรับ Ruby on Rails
2. ไม่เอา Apache เป็น เว็บเซิฟเวอร์
3. ถ้าจะให้ดี ต้องเพื่อใช้งาน php ด้วย
# cd /usr/ports/lang/ruby18
# make install clean
# cd /usr/ports/www/nginx
# make install clean
(ตอนเลือก คอนฟิกให้เลือก http_uploadprogress, passenger ด้วย)
# cd /usr/ports/databases/
# cd mysql51-server/
# make WITH_CHARSET=tis620 WITH_XCHARSET=all WITH_COLLATION=tis620_thai_ci WITH_OPENSSL=yes install clean
# gem install rails -v=2.3.5
# gem install mysql
# gem install mini_magick
# gem install mongrel_cluster
อันนี้เป็นส่วน option เพิ่มเติม , ลงphp, และการทำให้ nginx เรียกใช้งาน php ได้
# cd /usr/ports/lang/php5
# make install clean
# cd /usr/ports/lang/php5-extensions
# make install clean
ติดตั้ง spawn-fcgi (สมัยก่อน spawn-fcgi จะไม่แยกออกมาเป็น ports เฉพาะ จะอยู่รวมกับ lighttpd ก็ให้ติด lighttpd ก่อนแล้วค่อย copy เอาเฉพาะ spawn-fcgi แต่ถ้าอัพเดต ports เป็นล่าสุด มันจะแยก ports เรียบร้อยแล้ว)
# cd /usr/ports/www/spawn-fcgi/
# make install clean
- เปิดการใช้งาน spawn-fcgi และ รัน service ทุกครั้งที่ reboot
แก้ไขไฟล์ rc.conf และ เพิ่มคำสั่งนี้เข้าไป
spawn_fcgi_enable="YES"
ลอง Restart ดู จากนั้น ทดสอบ จะได้ ผลลัพธ์ประมาณนี้
# sockstat -4 | less
www php-cgi 687 0 tcp4 127.0.0.1:9000 *:*
www php-cgi 686 0 tcp4 127.0.0.1:9000 *:*
www php-cgi 685 0 tcp4 127.0.0.1:9000 *:*
www php-cgi 684 0 tcp4 127.0.0.1:9000 *:*
www php-cgi 683 0 tcp4 127.0.0.1:9000 *:*
www php-cgi 682 0 tcp4 127.0.0.1:9000 *:*
กลับมาเข้าสู้การทำงานหลัก
- เปิดการใช้งาน nginx และ รัน service ทุกครั้งที่ reboot
แก้ไขไฟล์ rc.conf และ เพิ่มคำสั่งนี้เข้าไป
nginx_enable="YES"
---ที่เหลือ อ่านต่อตอนหน้า---
สมัครสมาชิก:
บทความ (Atom)