ค้นหาเว็บไซต์

การติดตั้ง LAMP (Linux, Apache, MySQL, PHP และ PhpMyAdmin) ใน Gentoo Linux


ประสิทธิภาพสูงสุดที่ได้จากการรวบรวมซอฟต์แวร์จากแหล่งที่มาด้วย Gentoo จะมีผลกระทบน้อยที่สุด หากเราใช้เป็นข้อมูลอ้างอิงในการประมวลผลพลังงานของฮาร์ดแวร์ในปัจจุบัน ถ้าอย่างนั้นจุดประสงค์ของการใช้ Gentoo เป็นแพลตฟอร์มเว็บเซิร์ฟเวอร์ที่คุณอาจถามคืออะไร? คุณลักษณะที่สำคัญที่สุดที่ Gentoo มีคือความยืดหยุ่นสูงสุดที่ Portage สามารถส่งมอบในงานเฉพาะและการควบคุมเต็มรูปแบบที่ผู้ใช้ขั้นสุดท้ายสามารถทำได้ทั่วทั้งระบบ เนื่องจาก Gentoo ได้รับการคอมไพล์และ สร้างจากแหล่งที่มาและไม่ใช้ไบนารีที่บรรจุไว้ล่วงหน้าเหมือนกับการแจกแจง Linux ส่วนใหญ่

คู่มือนี้ให้ขั้นตอนการติดตั้งทีละขั้นตอนสำหรับสแต็ก LAMP ที่มีชื่อเสียง (Linux, Apache, MySQL และ PHP/PhpMyAdmin) โดยใช้สภาพแวดล้อมการติดตั้ง Gentoo ขั้นต่ำ

ความต้องการ

  1. สภาพแวดล้อม Gentoo Linux ขั้นต่ำที่ติดตั้งในบทช่วยสอนนี้ (ติดตั้ง Gentoo Linux)

ขั้นตอนที่ 1: กำหนดค่าที่อยู่ IP แบบคงที่

1. ก่อนที่เราจะดำเนินการติดตั้ง LAMP สแตก ระบบจะต้องได้รับการกำหนดค่าด้วยที่อยู่ IP แบบคงที่ ซึ่งเป็น "ต้อง" ในกรณีของเซิร์ฟเวอร์ แต่ก่อนที่เราจะเริ่มกำหนดการตั้งค่าคงที่ของเครือข่าย ให้ใช้คำสั่ง ifconfig เพื่อแสดงชื่อการ์ดอินเทอร์เฟซเครือข่าย

ifconfig -a

ดังที่คุณเห็นว่าชื่อของ NIC อาจแตกต่างจากชื่อทั่วไปอื่นๆ ที่ใช้ใน Linux เช่น ethX, ensXX หรืออื่นๆ ดังนั้นโปรดจดชื่อนี้ไว้เพื่อใช้ในการตั้งค่าเพิ่มเติม

2. หากก่อนหน้านี้คุณใช้เซิร์ฟเวอร์ DHCP สำหรับเครือข่ายของคุณ ตรวจสอบให้แน่ใจว่าคุณได้รื้อและปิดการใช้งาน ไคลเอ็นต์ DHCP บนระบบของคุณโดยใช้คำสั่งต่อไปนี้ (แทนที่ IP และอุปกรณ์ด้วยการตั้งค่าของคุณ)

rc-update del dhcpcd default
/etc/init.d/dhcpcd stop
ifconfig eno16777736 down
ifconfig eno16777736 del 192.168.1.13 netmask 255.255.255.0
emerge –unmerge dhcpcd

3. จากนั้นสร้างลิงก์สัญลักษณ์จากอุปกรณ์ลูปแบ็คเครือข่ายด้วยชื่อของอินเทอร์เฟซที่เชื่อมต่อของ NIC ของคุณ และสร้างไฟล์การกำหนดค่าคงที่สำหรับอุปกรณ์นี้ใน /etc/conf.d/ เส้นทาง.

ln -s /etc/init.d/net.lo  /etc/init.d/net.eno16777736
sudo nano /etc/conf.d/net.eno16777736

แก้ไขไฟล์อุปกรณ์นี้ด้วยการกำหนดค่าต่อไปนี้

config_eno16777736="192.168.1.25 netmask 255.255.255.0 brd 192.168.1.255"
routes_eno16777736="default via 192.168.1.1"
dns_servers_eno16777736="192.168.1.1 8.8.8.8"

4. หลังจากแก้ไขการกำหนดค่าคงที่ของ NIC เสร็จแล้ว ให้เริ่มอินเทอร์เฟซเครือข่ายและตรวจสอบการตั้งค่าเครือข่ายและการเชื่อมต่อโดยใช้คำสั่ง ifconfig และ ping และหากทุกอย่างได้รับการกำหนดค่าเรียบร้อยแล้ว เพิ่มเพื่อเริ่มกระบวนการ

/etc/init.d/net.eno16777736 start
ifconfig
ping -c2 domain.tld
rc-update add net.eno16777736 default

หากคุณต้องการให้เนมเซิร์ฟเวอร์ DNS ได้รับการกำหนดค่าทั้งระบบ ให้แก้ไขไฟล์ /etc/resolv.conf และต่อท้ายสตริงเนมเซิร์ฟเวอร์สำหรับที่อยู่ IP ของ DNS ทุกรายการ

ขั้นตอนที่ 2: ติดตั้ง LAMP

5. หลังจากคุณตั้งค่าเครือข่ายเสร็จแล้ว ให้ดำเนินการติดตั้ง LAMP สแตก แต่อย่าก่อนที่คุณจะยืนยันโปรไฟล์ Gentoo และอัปเดตแผนผังและระบบ Portage

สำหรับเซิร์ฟเวอร์ที่เชื่อมต่อกับอินเทอร์เน็ตที่มีแพทช์รักษาความปลอดภัย คุณอาจต้องการใช้โปรไฟล์ Hardened ซึ่งจะเปลี่ยนการตั้งค่าแพ็คเกจสำหรับทั้งระบบของคุณ (มาสก์ ธง USE ฯลฯ) ใช้คำสั่งต่อไปนี้เพื่อแสดงรายการและเปลี่ยนโปรไฟล์ของคุณ

sudo eselect profile list
sudo eselect profile set 11

6. หลังจากตั้งค่าโปรไฟล์ที่เหมาะสมที่สุดสำหรับคุณแล้ว ให้อัปเดตระบบและแผนผัง Portage ของคุณ

sudo emerge --sync
sudo emerge --update @world

7. ตอนนี้ได้เวลาดำเนินการติดตั้ง LAMP แล้ว ตรวจสอบเอกสารประกอบของ Apache Web Server สำหรับ USE flags โดยใช้สวิตช์คำสั่ง emerge –pv จากนั้นแก้ไขไฟล์ Portage make.conf ด้วยแฟล็ก USE ที่จำเป็นก่อนที่จะพยายาม ติดตั้งมัน

emerge -pv apache
nano /etc/portage/make.conf

8. เลือก USE flags ของคุณสำหรับกระบวนการคอมไพล์ (คุณสามารถปล่อยทิ้งไว้เช่นนั้นได้หากเซิร์ฟเวอร์ของคุณไม่ต้องการโมดูลบางตัว) จากนั้นติดตั้ง Apache โดยใช้คำสั่งต่อไปนี้

emerge --ask www-servers/apache

9. ก่อนที่จะเริ่มบริการ Apache ให้รันคำสั่งต่อไปนี้เพื่อหลีกเลี่ยงข้อผิดพลาด ServerName จากนั้นจึงเริ่ม httpd daemon

echo “ServerName localhost” >> /etc/apache2/httpd.conf

service apache2  start

OR

/etc/init.d/apache2 start

10. ในขั้นตอนถัดไปให้ติดตั้งภาษาสคริปต์แบบไดนามิก PHP เนื่องจากโมดูล PHP มีมากมาย บทช่วยสอนนี้จะแสดงรายการโมดูลขนาดใหญ่ที่ใช้เป็น USE flags แต่คุณควรยึดติดกับโมดูลที่เซิร์ฟเวอร์ของคุณต้องการ

ขั้นแรก ให้รับ USE ธงเฉพาะสำหรับ PHP โดยใช้คำสั่งด้านล่างนี้

emerge -pv php

11. จากนั้นแก้ไขไฟล์ /etc/portage/make.conf และใช้แฟล็ก USE ต่อไปนี้สำหรับ PHP5.5 (แฟล็ก USE ต้องอยู่ในบรรทัดเดียว)

USE="apache2 php pam berkdb bzip2 cli crypt ctype exif fileinfo filter gdbm hash iconv ipv6 json -ldap nls opcache phar posix readline session simplexml spell ssl tokenizer truetype unicode xml zlib -bcmath calendar -cdb cgi -cjk curl -debug -embed -enchant -firebird -flatfile -fpm (-frontbase) ftp gd -gmp imap -inifile -intl -iodbc -kerberos -ldap-sasl -libedit libmysqlclient -mhash -mssql mysql mysqli -oci8-instant-client -odbc -pcntl pdo -postgres -qdbm -recode (-selinux) -sharedmem -snmp -soap -sockets -sqlite (-sybase-ct) -systemd -sysvipc -threads -tidy -wddx -xmlreader -xmlrpc -xmlwriter -xpm -xslt zip jpeg png pcre session unicode"

PHP_TARGETS="php5-5"

อีกวิธีหนึ่งที่คุณสามารถใช้คือการสะท้อน USE flags เพื่อรวมโมดูล PHP และตัวเลือกที่ต้องการลงในไฟล์ /etc/portage/package.use

echo “dev-lang/php apache2 cgi ctype curl curlwrappers -doc exif fastbuild filter ftp hash inifile json mysql mysqli pdo pic posix sockets spell truetype xml zip” >> /etc/portage/package.use

12. หลังจากที่คุณเลือก USE flags ที่จำเป็นโดยใช้วิธีใดวิธีหนึ่งจากสองวิธีที่นำเสนอ ให้ติดตั้ง PHP ด้วยคำสั่งต่อไปนี้

emerge --ask dev-lang/php

13. กระบวนการ PHP ที่เกิดขึ้นใหม่อาจใช้เวลาสักครู่ขึ้นอยู่กับทรัพยากรระบบของคุณ และหลังจากเสร็จสิ้น บอกให้ Apache ใช้โมดูล PHP โดยแก้ไขไฟล์ /etc/conf.d/apache2 และ เพิ่ม PHP5 ในคำสั่ง APACHE2_OPTS

nano /etc/conf.d/apache2

ทำให้บรรทัด APACHE2_OPTS มีลักษณะเช่นนี้

APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE -D PHP5"

หากต้องการรับรายการโมดูลที่ติดตั้งให้ใช้คำสั่งต่อไปนี้

ls -al /etc/apache2/modules.d/

14. หากต้องการทดสอบการกำหนดค่าเซิร์ฟเวอร์จนถึงตอนนี้ ให้สร้างไฟล์ phpinfo บนไดเรกทอรีรากของ localhost (/var/www/localhost/htdocs/) และ เริ่มบริการ Apache ใหม่ จากนั้นชี้เบราว์เซอร์ของคุณไปที่ http://localhost/info.php หรือ http://system_IP/info.php


echo "<!--?php phpinfo(); ?-->"  /var/www/localhost/htdocs/info.php
service apache2  restart

OR

/etc/init.d/apache2  restart

หากคุณได้รับผลลัพธ์เหมือนกับภาพด้านบน แสดงว่าเซิร์ฟเวอร์ของคุณได้รับการกำหนดค่าอย่างถูกต้อง ดังนั้นเราจึงสามารถก้าวไปข้างหน้าด้วยฐานข้อมูล MySQL และการติดตั้ง PhpMyAdmin

15. ก่อนที่จะติดตั้งฐานข้อมูล MySQL ให้ตรวจสอบแพ็กเกจ ใช้แฟล็ก และแก้ไข Portage make.conf หากจำเป็น ใช้คำสั่งต่อไปนี้เพื่อตรวจสอบและติดตั้งฐานข้อมูลเซิร์ฟเวอร์ MySQL

emerge -pv mysql
emerge --ask dev-db/mysql

16. ก่อนที่คุณจะเริ่มเซิร์ฟเวอร์ MySQL ตรวจสอบให้แน่ใจว่าได้ติดตั้งฐานข้อมูล MySQL บนระบบของคุณโดยใช้คำสั่งต่อไปนี้

/usr/bin/mysql_install_db

17. ตอนนี้ให้เริ่มฐานข้อมูล MySQL และรักษาความปลอดภัยโดยใช้ mysql_secure_installation โดยการเปลี่ยนรหัสผ่านรูท ปิดการใช้งานการเข้าสู่ระบบรูทภายนอก localhost ลบผู้ใช้ที่ไม่ระบุชื่อและทดสอบฐานข้อมูล

service mysql start
mysql_secure_installation

18. เพื่อทดสอบการทำงานของฐานข้อมูล ให้ล็อกอินเข้าสู่ MySQL โดยใช้คำสั่งด้านล่างและออกจากฐานข้อมูลด้วยคำสั่ง exit

mysql -u roo -p
mysql> select user,host from mysql.user;
mysql> quit;

19. หากคุณต้องการอินเทอร์เฟซแบบกราฟิกเพื่อจัดการเซิร์ฟเวอร์ MySQL ให้ติดตั้งแพ็คเกจ PhpMyAdmin โดยการรันคำสั่งนี้

emerge -pv phpmyadmin
emerge  dev-db/phpmyadmin

20. หลังจากรวบรวมและติดตั้งแพ็คเกจแล้ว ให้สร้างไฟล์การกำหนดค่าสำหรับ PhpMyAdmin โดยการคัดลอกไฟล์เทมเพลตและแทนที่ข้อความรหัสผ่าน blowfish_secret โดยใช้สตริงที่กำหนดเอง

cp /var/www/localhost/htdocs/phpmyadmin/config.sample.inc.php  /var/www/localhost/htdocs/phpmyadmin/config.inc.php
nano /var/www/localhost/htdocs/phpmyadmin/config.inc.php

21. ทดสอบกระบวนการเข้าสู่ระบบ PhpMyAdmin โดยเปิดเบราว์เซอร์และใช้ URL ต่อไปนี้

http://localhost/phpmyadmin

22. หากทุกอย่างพร้อมแล้ว คุณอาจต้องการเริ่มบริการของคุณโดยอัตโนมัติหลังจากรีบูตโดยทำให้สามารถใช้งานได้ทั่วทั้งระบบโดยใช้คำสั่งต่อไปนี้

rc-update -v add apache2 default
rc-update -v add mysql default

นั่นคือทั้งหมด! ตอนนี้คุณมีสภาพแวดล้อมเว็บแบบไดนามิกด้วย Apache, ภาษาสคริปต์ PHP และฐานข้อมูล MySQL เชิงสัมพันธ์บนแพลตฟอร์มเซิร์ฟเวอร์ที่มีความยืดหยุ่นสูงและปรับแต่งได้ซึ่งจัดทำโดย Gentoo