X
Change of support channel during COVID-19

Laravel เป็น PHP Framework ที่เป็นที่นิยมค่อนข้างมากในปัจจุบันนี้ ด้วยคุณสมบัติต่างๆที่ช่วยในการพัฒนาเว็บไซต์ มีการเชื่อมต่อฐานข้อมูลที่ง่าย และมีความปลอดภัยสูง

เตรียมพร้อมก่อนการติดตั้ง

ทำการติดตั้งแพคเกจที่ Laravel ต้องการใช้งาน โดยสามารถตรวจสอบเวอร์ชั่นใหม่ได้บนหน้าเว็บไซต์ของ Laravel Installation

  • PHP >= 7.1.3
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Mbstring PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension
  • Ctype PHP Extension
  • JSON PHP Extension

เวอร์ชั่นของ PHP ที่มาพร้อมกับการกําหนดค่าใน CentOS 7 จะติดตั้ง PHP เวอร์ชั่น 5.4 ซึ่งจะไม่รองรับการใช้งานตามความต้องการที่ระบุไว้ในข้างต้น โดยสามารถตรวจสอบได้โดยการรัน

# yum info php.x86_64

ติดตั้ง PHP 7.1 และ Nginx

เนื่องจากเราต้องการใช้งาน PHP 7.1 โดยให้เพิ่มการเข้าถึงทั้ง EPEL และ Webtatic โดยใช้คำสั่งต่อไปนี้

# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

เมื่อรันคำสั่งเหล่านี้เสร็จสมบูรณ์แล้ว ทำการตรวจสอบเวอร์ชั่นของ PHP ที่จะติดตั้ง

# yum check-update
# yum search php71

ผลการแสดงค่าเวอร์ชั่นของ PHP

mod_php71w.x86_64 : PHP module for the Apache HTTP Server
php71w-bcmath.x86_64 : A module for PHP applications for using the bcmath library

เราจะใช้ Nginx เป็นเว็บเซิร์ฟเวอร์ และใช้ FPM เพื่อจัดการการประมวลผล PHP ในบทความนี้ เนื่องจากมี Webtatic กำหนดค่าไว้เรียบร้อยแล้ว เราสามารถติดตั้งคอมโพเนนต์ที่จำเป็นสำหรับ Laravel โดยใช้คำสั่ง

# yum install nginx1w php71w-fpm php71w-pdo php71w-mbstring php71w-xml
 php71w-common php71w-cli

กำหนดค่า Nginx และ PHP-FPM

เพื่อให้ Nginx สามารถใช้งานได้ จะต้องทำการเปิดพอร์ต 80 ผ่าน firewall ให้เรียบร้อยเสียก่อน

# firewall-cmd --add-port=80/tcp 
# firewall-cmd --permanent --add-port=80/tcp

เริ่มใช้งาน Nginx ด้วยคำสั่ง

# systemctl start nginx
# systemctl enable nginx

หลังการติดตั้งเรียบร้อย สามารถเรียกใช้งาน IP server จะแสดงหน้า Nginx ขึ้นมาดังรูป

เริ่มใช้งาน PHP-FPM ด้วยคำสั่ง

# systemctl start php-fpm
# systemctl enable php-fpm

ค่าเริ่มต้นที่จะทำการเชื่อมต่อบนพอร์ต localhost 9000 เราสามารถทำตามตัวอย่าง Nginx PHP FastCGI เพื่อให้ Nginx สามารถส่งผ่านหน้า PHP ไปยัง PHP-FPM เราจะวางเนื้อหาของคำสั่งตำแหน่งที่แสดงในหน้านั้นลงในไฟล์ /etc/nginx/nginx.conf ที่ด้านล่างของบล็อกเซิร์ฟเวอร์ ซึ่งเริ่มต้นบรรทัดที่49 โดยจะใช้คำสั่ง vi ในการแก้ไขข้อมูล โดยให้ uncomment บรรทัดต่อไปนี้

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

จากนั้นทำการรีสตาร์ท Nginx และ PHP-FPM อีกครั้ง

# systemctl restart nginx
# systemctl restart php-fpm

ติดตั้ง Composer และ Laravel

เมื่อดำเนินการเตรียมค่าตามด้านข้างต้นเรียบร้อยแล้ว เราพร้อมที่จะติดตั้ง composer และ Laravel กันแล้ว โดยเรียกใช้คำสั่งเหล่านี้จากภายในไดเรกทอรี /home ด้วยคอมมาน (cd ~) เพื่อดาวน์โหลดสคริปต์โดยอัตโนมัติมาใช้ในการติดตั้ง composer

# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

ตรวจสอบข้อมูลว่าติดตั้งเรียบร้อยหรือไม่

#  php -r "if (hash_file('SHA384', 'composer-setup.php') === 
'544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd58
6475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } 
else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Installer verified => หากแสดงข้อความดังนี้ แสดงว่าติดตั้งเรียบร้อย
# php composer-setup.php

ทำการลบ ไฟล์ composer-setup.php ด้วยคำสั่ง

# rm composer-setup.php

จากนั้นให้กดยืนยันการลบดังนี้

rm: remove regular file ‘composer-setup.php’? y

ในขณะนี้จะสามารถเรียกใช้งานได้เรียบร้อย

ให้ไปที่ไดเรกทอรี่ html/

# cd /usr/share/nginx/html

ติดตั้ง Laravel Framework ลงในไดเรกทอรี่ testapp

# composer create-project laravel/laravel testapp

หลังจากดำเนินการเสร็จสิ้น เราจำเป็นต้องแก้ไขไฟล์ Nginx ของเราและทดสอบ

# vi /etc/nginx/nginx.conf 
ให้เพิ่มจาก root /usr/share/nginx/html; เป็น root /usr/share/nginx/html/ testapp/public;

จากนั้นให้ทำการรีสตาร์ Nginx

# systemctl restart nginx

แก้ไขสิทธิ์ความเป็นเจ้าของ

การดำเนินการนี้จะเป็นการเปลี่ยน Owner ไดเรกทอรี่เหล่านี้ไปยัง apache ซึ่งเป็นผู้ใช้ที่ PHP-FPM กำลังทำงานอยู่ตามค่าเริ่มต้น

# chown -R apache:root /usr/share/nginx/html/testapp/storage/*
# chown -R apache:root /usr/share/nginx/html/testapp/bootstrap/cache
# restorecon -Rv '/usr/share/nginx/html/testapp'

เป็นอันว่าเสร็จสิ้นขั้นตอนการติดตั้ง Laravel PHP Framework เรียบร้อยแล้วให้ทำการรีเฟรชหน้าเว็บไซต์อีกครั้ง

ข้อมูลเพิ่มเติม
Laravel : https://laravel.com/