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/