cnf ของฉันซึ่งมี freebsd ตั้งอยู่ การติดตั้ง phpmyadmin บนโฮสต์เสมือน การกำหนดค่า Apache สำหรับการใช้โมดูล PHP

เราจะติดตั้งเว็บเซิร์ฟเวอร์ โดยเฉพาะ MySQL การติดตั้ง Nginx และ PHP ในบทความอื่น ที่นี่เราจะดูคุณสมบัติการติดตั้ง การตั้งค่าคอนฟิกูเรชัน ทำงานดีขึ้นบน SSD การเพิ่มประสิทธิภาพต่างๆ
ตามทฤษฎีแล้ว สำหรับงานของฉัน การบันทึกจะไม่เกิดขึ้นบ่อยนัก แต่ยังคงต้องลดจำนวนบันทึกและการดำเนินการเขียนดิสก์ลง
เรามาเริ่มการติดตั้งกันดีกว่า
เพิ่มไปยังไฟล์ /etc/make.conf บรรทัดถัดไป:
# MySQL DEFAULT_MYSQL_VER=56 .if $(.CURDIR) == /usr/ports/databases/mysql56-server WITH_CHARSET=utf8 WITH_XCHARSET=all WITH_COLLATION=utf8_general_ci BUILD_OPTIMIZED=yes .endif .if $(.CURDIR) == /usr/ ports/databases/mysql56-client WITH_CHARSET=utf8 WITH_COLLATION=utf8_general_ci BUILD_OPTIMIZED=yes .endif เปลี่ยนการเข้ารหัสและเวอร์ชันเซิร์ฟเวอร์เป็นเวอร์ชันที่ต้องการ สำหรับฉันมันคือ utf8 และ mysql เวอร์ชัน 5.6

เราอัปเดตแผนผังพอร์ต () และไปที่
ซีดี /usr/ports/databases/mysql56-server
ถัดไป ติดตั้งด้วยพารามิเตอร์ที่เราต้องการ: ทำให้การติดตั้งสะอาด

รอให้การติดตั้งเสร็จสิ้นและดำเนินการตั้งค่าต่อไป
สร้างไฟล์การกำหนดค่า /var/db/mysql/my.cnf และกำหนดค่า
ในเวอร์ชัน 5.6 กลไก innoDB จะถูกใช้งานเป็นค่าเริ่มต้น และการกำหนดค่าจะใช้เฉพาะ innoDB เท่านั้น เอกสารรายละเอียดเป็นภาษาอังกฤษมีอยู่ในเว็บไซต์อย่างเป็นทางการ dev.mysql.com/doc/
# พอร์ตที่ไคลเอนต์ mysql เชื่อมต่อ พอร์ต = 3306 # ที่อยู่ซ็อกเก็ตสำหรับไคลเอนต์ mysql socket = /tmp/mysql.sock # พอร์ตที่ฟัง เซิร์ฟเวอร์ mysql- พอร์ต = 3306 # เส้นทางไปยังซ็อกเก็ต socket = /tmp/mysql.sock # ที่อยู่ IP ที่เซิร์ฟเวอร์รับฟัง localhost ใช้งานได้ทุกกรณี ฉันต้องการให้ฐานข้อมูลพร้อมใช้งาน เครือข่ายท้องถิ่น- ที่อยู่ผูก = 192.168.0.1 # จำนวนสูงสุด การเชื่อมต่อแบบขนานไปยังเซิร์ฟเวอร์ max_connections = 200 # จำนวนข้อมูลที่สามารถถ่ายโอนได้ในคำขอเดียว ขยายใหญ่หากมีข้อผิดพลาด: "แพ็คเก็ตใหญ่เกินไป" max_allowed_packet = 4M # ไม่ได้กำหนดชื่อโดเมน ข้ามชื่อแก้ไข # ตั้งเป็นค่าเริ่มต้นห้ามใช้การล็อคภายนอก เมื่อเซิร์ฟเวอร์หลายเครื่องทำงานกับไฟล์เดียวกัน ข้ามการล็อคภายนอก # อย่าใช้เครือข่าย (TCP/IP) ซ็อกเก็ตเท่านั้น ฉันต้องการเครือข่ายเนื่องจากสะดวกในการทำงานจากฐานข้อมูลจากคอมพิวเตอร์เครื่องอื่น แต่การเชื่อมต่อเข้าไปในเครือข่ายท้องถิ่นของฉัน ดังนั้นจึงไม่มีใครสามารถเชื่อมต่อกับ 192.168.0.1 ได้ ในกรณีส่วนใหญ่ ปลั๊กไฟก็เพียงพอแล้ว #skip-networking # หากคำขอใช้เวลานานกว่าเวลาที่ระบุเป็นวินาที คำขอนั้นจะถูกเขียนลงในบันทึกเป็นคำขอที่ทำเครื่องหมายไว้ ฉันจะตั้งค่าเป็นหนึ่งวินาที เนื่องจากในสคริปต์ของฉัน ไม่มีสิ่งใดที่ใช้เวลานานกว่าในการดำเนินการ slow_query_log = 1 # เส้นทางไปยังไฟล์บันทึกการสืบค้นที่ช้า สร้างไฟล์ที่มีสิทธิ์ผู้ใช้ mysql slow_query_log_file = /var/log/mysql_slow_queries # ลักษณะการทำงานเริ่มต้นของฟิลด์การประทับเวลาอย่างชัดเจน_defaults_for_timestamp # ขนาดของบัฟเฟอร์ที่จัดสรรสำหรับดัชนี น่าจะประมาณ 30% ของ แรมหากคุณใช้ MyISAM ฉันใช้ innoDB แต่ MyISAM จะถูกใช้เพื่อวัตถุประสงค์ภายใน key_buffer_size = 64M # ขนาดบัฟเฟอร์สำหรับการเรียงลำดับดัชนี MyISAM myisam_sort_buffer_size = 128M # พารามิเตอร์ innoDB # ขนาดหน่วยความจำสำหรับดัชนีและข้อมูล แนะนำให้ตั้งค่าเป็น 80-90% ของ RAM ฉันตั้งค่าเป็น 50% เนื่องจากจะมีโปรแกรมอื่นบนเซิร์ฟเวอร์นอกเหนือจาก mysql innodb_buffer_pool_size = 4G # มีสามค่าให้เลือก: 0, 1, 2 ค่า 0 - ล้างบันทึกหนึ่งครั้งต่อวินาทีไปยังดิสก์โดยไม่คำนึงถึงธุรกรรม ค่า 1 - รีเซ็ตบันทึกในทุกธุรกรรม ค่า 2 - บันทึกถูกเขียน แต่ไม่ถูกล้างลงดิสก์ ความน่าเชื่อถือที่สุดคือ 1 แต่ฉันจะใช้ 2 ตั้งแต่ SSD ในกรณีที่มีการล้ม ระบบปฏิบัติการข้อมูลเพียง 1-3 วินาทีสุดท้ายเท่านั้นที่จะสูญหาย innodb_flush_log_at_trx_commit = 2 # ขนาดบัฟเฟอร์บันทึก ค่าเริ่มต้นคือหนึ่งเมกะไบต์ ไม่จำเป็นต้องมากกว่าแปดเมกะไบต์ innodb_log_buffer_size = 8M # ขนาดสูงสุดไฟล์บันทึกหนึ่งไฟล์ เมื่อถึงขนาดนี้ ไฟล์บันทึกใหม่จะถูกสร้างขึ้น ตั้งค่าตั้งแต่ 32 ถึง 512 เมกะไบต์ innodb_log_file_size = 128M

เพิ่มเซิร์ฟเวอร์ MySQL ลงในการดาวน์โหลด เมื่อต้องการทำเช่นนี้ ให้เพิ่มบรรทัดในไฟล์ /etc/rc.conf
mysql_enable="ใช่"
เซิร์ฟเวอร์ MySQL เริ่มต้น:
/usr/local/etc/rc.d/mysql-server เริ่มต้น
เราดูเนื้อหาของบันทึก mysql (/var/db/mysql/localhost.err) เพื่อหาข้อผิดพลาดและคำเตือนในการเริ่มต้นระบบ หากมีข้อผิดพลาดหรือคำเตือนใดๆ ที่ต้องแก้ไข เซิร์ฟเวอร์ mysql จะอธิบายรายละเอียดว่าปัญหาคืออะไรในบันทึก

ตอนนี้เรามาเพิ่มความสามารถในการเชื่อมต่อกับเซิร์ฟเวอร์ในฐานะผู้ใช้รูทจากที่อยู่ IP 192.168.0.2 เนื่องจากฉันคุ้นเคยกับการทำงานไม่ผ่าน phpmyadmin แต่ใช้โปรแกรมบุคคลที่สาม ตัวอย่างเช่นภายใต้ Windows การใช้ navicat lite จะสะดวกมาก
ตามค่าเริ่มต้น ผู้ใช้รูทไม่มีรหัสผ่าน ใช้ ไคลเอ็นต์คอนโซล mysql และสร้างผู้ใช้รูทด้วย ip 192.168.0.2 พร้อมสิทธิ์ทั้งหมด:
mysql> สร้างผู้ใช้ "root"@"192.168.0.2"; แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที) mysql> ให้สิทธิ์ทั้งหมดบน *.* เป็น "root"@"192.168.0.2" พร้อมตัวเลือกการให้สิทธิ์ แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที) mysql> สิทธิ์ล้าง; แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที)
ตอนนี้คุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ได้จากที่อยู่ IP 192.168.0.2 มาลองเชื่อมต่อกัน

อย่างที่คุณเห็นทุกอย่างได้ผลแล้ว การตั้งค่าสิทธิพิเศษฐานข้อมูล สิ่งนี้ได้ย้ายออกไปจากหัวข้อของหัวข้อนี้แล้ว
บทความนี้จะได้รับการอัปเดต เนื่องจากฉันยังไม่ทราบการกำหนดค่า my.cnf ด้วยตนเอง หากคุณมีคำถามหรือข้อเสนอแนะ เรายินดีที่จะพูดคุย

การติดตั้ง MySQL DBMSในบทความนี้เราจะผลิตจากคอลเลกชันของพอร์ต FreeBSD ก็ถือว่าเซิร์ฟเวอร์มี เวอร์ชันล่าสุดคอลเลกชันของพอร์ต หากไม่เป็นเช่นนั้น คุณควรติดตั้งหรืออัปเดตพอร์ตแอปพลิเคชันโดยใช้ยูทิลิตี้ portsnap

# portsnap fetch extract - ติดตั้งพอร์ตหากไม่มีอยู่ในระบบ # อัพเดต Portsnap fetch - อัปเดตพอร์ตหากมีอยู่ในระบบ

# vi /etc/make.conf ########## MySQL 5.5 ########## .if $(.CURDIR) == "/usr/ports/databases/mysql55-server " WITH_CHARSET=utf8 # การเข้ารหัสเริ่มต้น WITH_COLLATION=utf8_general_ci # การเปรียบเทียบเริ่มต้น WITH_XCHARSET=all # การเข้ารหัสเพิ่มเติม WITH_OPENSSL=yes # เปิดใช้งาน การเชื่อมต่อที่ปลอดภัยผ่าน OpenSSL WITH_LINUXTHREADS=no # ทำงานในหลายเธรดพร้อมกันโดยใช้ # ไลบรารี Linux pthread WITH_PROC_SCOPE_PTH=yes # ทำงานในหลายเธรดพร้อมกันเพื่อ # ปรับปรุงประสิทธิภาพ BUILD_OPTIMIZED=yes # การเพิ่มแฟล็กการเพิ่มประสิทธิภาพให้ # การเพิ่มประสิทธิภาพเล็กน้อย BUILD_STATIC=yes # สร้างเวอร์ชันคงที่ ของ mysqld ให้ # การเพิ่มประสิทธิภาพเล็กน้อยและ # ความเป็นอิสระจากไลบรารีภายนอก WITH_NDB=no # รองรับเอ็นจิ้นการจัดเก็บข้อมูล NDB (สำหรับคลัสเตอร์) .endif

#1. การติดตั้ง MySQL 5.5 และการเริ่มต้นไดเร็กทอรีข้อมูล

เราไปที่พอร์ตเซิร์ฟเวอร์ mysql55 และดำเนินการติดตั้งต่อ หลังจากติดตั้งแล้ว ให้อ่านซ้ำ ไดเรกทอรีเส้นทางใช้การปรับปรุงใหม่

# cd /usr/ports/databases/mysql55-server/ # ทำการติดตั้งใหม่ทั้งหมด # แฮชใหม่

# cd /usr/local # mysql_install_db --user=mysql --datadir=/var/db/mysql กำลังติดตั้งตารางระบบ MySQL... ตกลง กำลังกรอกตารางวิธีใช้... ตกลง

#2. การตั้งค่า MySQL เริ่มต้น

เยี่ยมมาก ระบบและตารางเสริมได้ถูกสร้างขึ้นแล้ว ถัดไปคุณต้องสร้างการกำหนดค่า ไฟล์ mysql- เทมเพลตการกำหนดค่า Mysql สามารถพบได้ใน /usr/local/share/mysql/:

# ls /usr/local/share/mysql/my-* /usr/local/share/mysql/my-huge.cnf # หน่วยความจำ 2GB /usr/local/share/mysql/my-innodb-heavy-4G.cnf # หน่วยความจำ 4GB /usr/local/share/mysql/my-large.cnf # หน่วยความจำ 512MB /usr/local/share/mysql/my-medium.cnf # หน่วยความจำ 64MB /usr/local/share/mysql/my-small.cnf #

จำนวน RAM ทั้งหมดที่ใช้สำหรับ MySQL คำนวณโดยใช้สูตร (พารามิเตอร์หลัก):

Innodb_buffer_pool_size + key_buffer_size + max_connections*(sort_buffer_size+read_buffer_size+binlog_cache_size) + max_connections*2MB

สูตรนี้ขาดพารามิเตอร์อื่นๆ จำนวนมากที่ใช้หน่วยความจำ ในบริบทของบทความนี้ เราจะใช้สูตรนี้ หากคุณต้องการคำนวณจำนวนหน่วยความจำสูงสุดที่ mysql สามารถใช้ได้ที่แม่นยำยิ่งขึ้น คุณสามารถใช้สูตรต่อไปนี้ (ด้านล่าง) ตามที่แสดงการปฏิบัติค่าหน่วยความจำผลลัพธ์จากถัดไปมากขึ้น สูตรที่ซับซ้อนคุณไม่ควรยึดถือ "อย่างที่ควรจะเป็น" เพราะโดยปกติแล้วมูลค่าจะน้อยลง

หน่วยความจำต่อการเชื่อมต่อ = read_buffer_size + read_rnd_buffer_size + sort_buffer_size + + thread_stack + join_buffer_size; 1. หน่วยความจำสำหรับการเชื่อมต่อทั้งหมด = per_thread_buffers * max_connections; 2. หน่วยความจำที่ใช้โดย DBMS = key_buffer_size + max_tmp_table_size + innodb_buffer_pool_size + + innodb_ allowance_mem_pool_size + innodb_log_buffer_size + + query_cache_size; หน่วยความจำทั้งหมดที่ใช้ = (หน่วยความจำที่ใช้โดย DBMS) + (หน่วยความจำสำหรับการเชื่อมต่อทั้งหมด);

เซิร์ฟเวอร์สแตนด์ที่เราติดตั้ง MySQL มี RAM ขนาด 16GB จะใช้ตาราง MyISAM และ InnoDB มาคัดลอกไฟล์การกำหนดค่าตัวอย่าง my-innodb-heavy-4G.cnf เป็น /var/db/mysql/my.cnf

# cp /usr/local/share/mysql/my-innodb-heavy-4G.cnf /var/db/mysql/my.cnf

จากนั้นเรานำมาให้อยู่ในรูปแบบดังต่อไปนี้

# vi /var/db/mysql/my.cnf port = 3306 # พอร์ตที่ mysqld ฟังซ็อกเก็ต = /tmp/mysql.sock # ซ็อกเก็ต Unix สำหรับ mysqld back_log = 128 # ขนาดคิวสำหรับคำขอการเชื่อมต่อ tcp/ip # ข้ามเครือข่าย #งดแสดงความคิดเห็น คำสั่งนี้หากคุณไม่ได้วางแผน # เพื่ออนุญาตการเชื่อมต่อจากภายนอก (localhost เท่านั้น) max_connections = 1,000 # จำนวนการเชื่อมต่อสูงสุด (เซสชัน) max_connect_errors = 1,000 # จำนวนข้อผิดพลาดสูงสุดจากแต่ละโฮสต์ เมื่อถึงขีดจำกัด # โฮสต์จะถูกบล็อก table_open_cache = 2048 # จำนวนสูงสุดของตารางที่เปิด max_allowed_packet = 16M # ขนาดแพ็คเก็ตสูงสุดในคำขอ binlog_cache_size = 1M # ขนาดแคชบันทึกไบนารีสูงสุดสำหรับธุรกรรม # รายการเดียว read_buffer_size = 2M # ขนาดบัฟเฟอร์การอ่านสำหรับการสแกนตารางแบบเต็ม read_rnd_buffer_size = 16M # การเรียงลำดับ ขนาดบัฟเฟอร์สำหรับการสืบค้น ORDER BY sort_buffer_size = 8M # การเรียงลำดับขนาดบัฟเฟอร์สำหรับ GROUP BY แบบสอบถาม ORDER BY join_buffer_size = 8M # ขนาดบัฟเฟอร์สำหรับการสืบค้น JOIN (ไม่มีดัชนี) thread_cache_size = 24 # จำนวนเธรดที่ไม่ถูกฆ่า แต่ยังคงอยู่ใน # แคช สำหรับการใช้ซ้ำ thread_concurrency = 8 # จำนวนเธรด mysqld สูงสุด ขอแนะนำให้ # ตั้งค่าเป็น *(2..4) query_cache_type=1 # เปิดใช้งานการแคชแบบสอบถาม query_cache_size = 64M # ขนาดแคชผลลัพธ์การสืบค้น SELECT query_cache_limit = 2M # ขนาดตัวอย่างสูงสุด SELECT สำหรับการแคช default-storage-engine = MYISAM # ระบุ ประเภทของตารางโดย - ค่าเริ่มต้นหากไม่ได้ระบุประเภท # ใน CREATE TABLE แบบสอบถาม tmp_table_size = 64M # ขนาดในหน่วยความจำสูงสุดสำหรับตารางชั่วคราว # สร้างขึ้น หากมีมากกว่านี้ ตารางจะถูกเขียนลงดิสก์ #log-bin=mysql-bin # Uncomment หากคุณวางแผนที่จะใช้ #binlog_format=mixed # replication สำหรับ MySQL key_buffer_size = 1G # ขนาดของหน่วยความจำที่จัดสรรสำหรับดัชนีแคช # ของตาราง MyISAM พารามิเตอร์ที่สำคัญการเพิ่มประสิทธิภาพ #skip-innodb # ยกเลิกหมายเหตุตัวเลือกในการปิดใช้งาน InnoDB innodb_ allowance_mem_pool_size = 16M # หน่วยความจำที่จัดสรรสำหรับความต้องการ InnoDB ภายใน innodb_buffer_pool_size = 2G # จำนวนหน่วยความจำที่จัดสรรสำหรับ InnoDB ยิ่งมากยิ่ง #ดี.. ลดจำนวนการทำงานของดิสก์ innodb_data_file_path = ibdata1:100M:autoextend # ขนาดการจัดเก็บข้อมูลของตาราง # InnoDB ขยายได้อัตโนมัติ innodb_file_per_table = 1 # แต่ละตารางจะถูกเก็บไว้ในไฟล์แยกต่างหาก innodb_thread_concurrency = 16 # จำนวนเธรด mysqld สูงสุดสำหรับ innodb

#3. การเปิดตัว MySQL ครั้งแรกและการติดตั้งเสร็จสมบูรณ์

หลังจากการตั้งค่าเริ่มต้นของ MySQL DBMS เราต้องเริ่มต้นเซิร์ฟเวอร์และกำหนดค่า mysqld ให้เริ่มต้นเมื่อเริ่มต้นระบบ คุณสามารถจัดการสถานะของ mysqld ได้ผ่านสคริปต์ rc ซึ่งจะถูกเขียนโดยอัตโนมัติเป็น /usr/local/etc/rc.d/mysqld-server หลังจากสร้างพอร์ตแล้ว มาเปิดตัว DBMS กันดีกว่า

# echo "mysql_enable="YES"" >> /etc/rc.conf # echo "mysql_dbdir="/var/db/mysql"" >> /etc/rc.conf # /usr/local/etc/rc.d /mysql-server start การเริ่มต้น mysql

มาตรวจสอบว่า mysql ได้เริ่มต้นจริงแล้วและกำลังทำงานในฐานะผู้ใช้ mysql

#ปล.waux | grep mysql mysql 28671 0.3 2.6 3486888 440948 ?? ฉัน 23:08 น. 0:00.65 /usr/local/libexec/mysqld --defaults-extra-file=/var/db/mysql/my.cnf --basedir=/usr/local --datadir=/var/db/ mysql --plugin-dir=/usr/local/lib/mysql/plugin --log-error=/var/db/mysql/inter.onsever.ru.err --open-files-limit=8192 --pid- ไฟล์=/var/db/mysql/inter.onsever.ru.pid --socket=/tmp/mysql.sock --port=3306 mysql 28026 0.0 0.0 8296 1884 ?? คือ 23:08PM 0:00.02 /bin/sh /usr/local/bin/mysqld_safe --defaults-extra-file=/var/db/mysql/my.cnf --user=mysql --datadir=/var/db /mysql --pid-file=/var/db/mysql/inter.onsever.ru.pid root 28683 0.0 0.0 9124 1420 0 S+ 23:09 น. 0:00.00 grep --color=auto mysq

# mysqladmin -uroot รหัสผ่าน "new_password" # mysql -uroot -p -e "สิทธิ์ฟลัช" ป้อนรหัสผ่าน: ป้อน รหัสผ่านใหม่

ขั้นตอนสุดท้ายคือการเรียกใช้ยูทิลิตี้ความปลอดภัย mysql_secure_installation ซึ่งเราจะลบผู้ใช้ที่ไม่ระบุชื่อฐานข้อมูลทดสอบซึ่งสร้างขึ้นโดยค่าเริ่มต้นเมื่อเริ่มต้นไดเร็กทอรีข้อมูลและห้ามการเข้าสู่ระบบระยะไกลสำหรับผู้ใช้รูท (ไม่ใช่ผู้ใช้ระบบ)

# mysql_secure_installation ป้อนรหัสผ่านปัจจุบันสำหรับรูท (ไม่ต้องใส่เลย): ป้อนรหัสผ่าน mysql superuser เปลี่ยนรหัสผ่านรูทหรือไม่

n ลบผู้ใช้ที่ไม่ระบุชื่อออก? Y ไม่อนุญาตให้รูทล็อกอินจากระยะไกล? Y ลบฐานข้อมูลทดสอบและเข้าถึงได้หรือไม่

Y รีโหลดตารางสิทธิพิเศษทันทีหรือไม่? ทำทุกอย่างเสร็จแล้ว! หากคุณทำตามขั้นตอนข้างต้นทั้งหมดแล้ว การติดตั้ง MySQL ของคุณควรปลอดภัยแล้ว ขอขอบคุณที่ใช้ MySQL!นี่คือการติดตั้งและ

การตั้งค่าเริ่มต้น

MySQL DBMS เสร็จสิ้นแล้ว ขอให้โชคดีในการใช้งานและการเพิ่มประสิทธิภาพ! Mysql/ustanovka_mysql_5.5_pod_freebsd.txt ·.

การเปลี่ยนแปลงล่าสุด

หลังจากนั้นไปที่ไดเร็กทอรีพอร์ตแล้วรัน make install

%cd /usr/ports/databases/mysql50-server
% ทำการติดตั้ง

การตั้งค่า mysql

เราจะกำหนดค่า mysql ใหม่เล็กน้อยเพื่อให้ใช้ฐานข้อมูลที่อยู่ใน /data/mysql

ในการดำเนินการนี้ คุณต้องสร้างไดเร็กทอรี /data/mysql และตั้งค่าการอนุญาตที่ถูกต้องก่อน

%mkdir /data/mysql
%chown mysql:mysql /data/mysql
% chnod go-rwx /data/mysql

mysql เริ่มอัตโนมัติ

การตั้งค่าเหล่านี้จะอนุญาตให้ mysql เริ่มทำงานระหว่างการบูตระบบ และจะระบุไดเร็กทอรีที่ถูกต้องที่จะวางไฟล์

%echo 'mysql_dbdir=”/data/mysql”" >> /etc/rc.conf
%echo 'mysql_enable=”ใช่”" >> /etc/rc.conf

ในการเปิดตัวครั้งแรก ไดเร็กทอรีย่อยและไฟล์ที่จำเป็นสำหรับเซิร์ฟเวอร์จะถูกสร้างขึ้นในไดเร็กทอรี /data/mysql

การเริ่มและหยุดการทำงานของ mySQL

หากต้องการเริ่มเซิร์ฟเวอร์ MySQL ให้พิมพ์คำสั่ง:

/usr/local/etc/rc.d/mysql-server บังคับให้เริ่มต้น

สำหรับส่วนที่เหลือฉันสอดคล้องกับ:

/usr/local/etc/rc.d/mysql-server บังคับให้หยุด

เพื่อรีสตาร์ทเซิร์ฟเวอร์

จะตรวจสอบได้อย่างไรว่า mysqld กำลังทำงานอยู่?

เพื่อตรวจสอบว่า mysqld เริ่มต้นได้ตามปกติ คุณควรรันคำสั่งต่อไปนี้และเปรียบเทียบผลลัพธ์กับสิ่งที่คุณได้รับ ต้องมีทั้งกระบวนการ mysqld_safe และ mysqld

%ps -ax grep mysql
715 con- ฉัน 0:00.00 /bin/sh /usr/local/bin/mysqld_safe –defaults-ex
759 con- ฉัน 0:06.28 /usr/local/libexec/mysqld –defaults-extra-file=
%

mysqladmin การจัดการ mysql ด้วยตนเอง

นี่คือรายการคำสั่งสั้นๆ เกี่ยวกับวิธีการควบคุม บรรทัดคำสั่งกำลังรัน mysqld.

mysqladmin proc – แสดงรายการข้อความค้นหาที่กำลังทำงานอยู่ เซิร์ฟเวอร์ SQLพร้อมข้อความคำขอ พร้อมตัวระบุ และเวลาดำเนินการตามคำขอ

รหัสกระบวนการฆ่า mysqladmin ช่วยให้คุณสามารถหยุดดำเนินการค้นหาด้วย ID ที่กำหนด

รหัสผ่าน mysqladmin ใหม่ - รหัสผ่านอนุญาตให้คุณเปลี่ยนรหัสผ่านสำหรับผู้ใช้ปัจจุบัน

mysqladmin สร้างฐานข้อมูล - การสร้าง ฐานใหม่ข้อมูล
ฐานข้อมูล mysqladmin หล่น – การกำจัดที่สมบูรณ์ฐานข้อมูล
การปิดระบบ mysqladmin - การปิดระบบตามปกติของเซิร์ฟเวอร์ mysql

/usr/local/etc/rc.d/mysql-server start เริ่มต้นเซิร์ฟเวอร์ mysql

การเปลี่ยนรหัสผ่านผู้ดูแลระบบ mysql

รหัสผ่านผู้ดูแลระบบ mysql สามารถเปลี่ยนแปลงได้ดังนี้ แทนที่จะป้อน asdasd รหัสผ่านของคุณ

%mysqladmin รหัสผ่าน asdasd

หลังจากนี้ เพื่อรันคำสั่ง mysqladmin เราจะต้องรันด้วยอาร์กิวเมนต์ -P หรือเขียนรหัสผ่านลงในไฟล์ดังที่แสดงด้านล่าง

การตั้งค่าไคลเอ็นต์ mysql

เพื่อไม่ให้ป้อนรหัสผ่านทุกครั้งที่เชื่อมต่อกับเซิร์ฟเวอร์ mysql คุณสามารถเขียนการตั้งค่าลงในไฟล์ ~/.my.cnf

ระวังชื่อไฟล์นะครับ มันขึ้นต้นด้วยจุด!

สร้างไฟล์ ~/.my.cnf เปิดมันในตัวแก้ไขและเขียนบรรทัดต่อไปนี้ลงไป หากมีไฟล์ดังกล่าวอยู่แล้วและคุณเปลี่ยนรหัสผ่านผู้ใช้ คุณจะต้องแก้ไขไฟล์นั้น

รหัสผ่าน=รหัสผ่านของคุณ

เพื่อให้ไฟล์นี้สามารถเข้าถึงได้เฉพาะคุณเท่านั้น คุณต้องรันคำสั่ง chmod 600 “/.my.cnf หากผู้ใช้รายอื่นสามารถอ่านไฟล์นี้ได้ พวกเขาก็จะสามารถเข้าถึงเซิร์ฟเวอร์ MySQL ในระดับผู้ดูแลระบบได้ คุณต้องการมันหรือไม่
หลังจากนี้ยูทิลิตี้ทั้งหมดที่เชื่อมต่อกับเซิร์ฟเวอร์ mysql จะไม่ขอรหัสผ่านในการเชื่อมต่อ ซึ่งสามารถตรวจสอบได้โดยใช้ยูทิลิตี mysqladmin หรือ mytop เป็นตัวอย่าง

การตรวจสอบเซิร์ฟเวอร์ mysql

ยูทิลิตี้ที่สะดวกมากสำหรับการตรวจสอบเซิร์ฟเวอร์ mysql จากคอนโซลคือ mytop สามารถติดตั้งได้จากพอร์ตต่อไปนี้:

%cd /usr/ports/databases/mytop
% ทำการติดตั้ง

มันถูกเปิดใช้งานโดยคำสั่ง mytop โดยจะแสดงการสืบค้นที่เซิร์ฟเวอร์ mysql กำลังดำเนินการอยู่ รวมถึงสถิติทั่วไป: จำนวนการสืบค้นต่อวินาที การสืบค้นใด (SELECT, UPDATE, DELETE) หมายเลขการสืบค้น คุณสามารถออกจากยูทิลิตี้ได้โดยใช้ปุ่ม q หรือ Ctrl-C

ห้าม การเข้าถึงระยะไกลไปที่ mysqld

คุณสามารถห้ามการเข้าถึง mysqld จากระยะไกลผ่าน tср และอนุญาตให้เชื่อมต่อเฉพาะแอปพลิเคชันบนเครื่องที่เช่าเท่านั้น สิ่งนี้มีประโยชน์มากในการปรับปรุงความปลอดภัยของเซิร์ฟเวอร์

ตรวจสอบว่าคุณได้รับอนุญาต การเชื่อมต่อระยะไกลสามารถทำได้โดยใช้คำสั่งต่อไปนี้:

%netstat -และ | เกรป 3306
tcp4 0 0 *.3306 *.* ฟัง
%

หากคุณเห็นบรรทัดนี้ แสดงว่าคุณมีสิทธิ์เข้าถึงจากระยะไกล หากต้องการปิดการใช้งาน คุณต้องเพิ่มบรรทัดต่อไปนี้ในไฟล์ /data/mysql/my.сnf:


ข้าม_เครือข่าย

หากคุณไม่มีไฟล์ดังกล่าว ให้สร้างมันขึ้นมา
เพื่อให้การเปลี่ยนแปลงการกำหนดค่ามีผล ให้รีสตาร์ทเซิร์ฟเวอร์ mysqld โดยใช้คำสั่ง:

/usr/local/etc/rc.d/mysql-server บังคับให้รีสตาร์ท
%/usr/local/etc/rc.d/mysql-server รีสตาร์ท
หยุด mysql
กำลังรออยู่ครับหมายเลขพีไอดีส: 706.
การเริ่มต้น mySQL
%

ตรวจสอบอีกครั้งว่าการเข้าถึงระยะไกลถูกปิดใช้งานแล้ว:

%netstat -และ | เกรป 3306
%

ปัญหากับ mysql

โปรแกรมไคลเอนต์ไม่พบเซิร์ฟเวอร์ mysql หากโปรแกรมของบริษัทอื่นบ่นว่าไม่สามารถเชื่อมต่อกับฐานข้อมูล mysqld และไม่พบ localhost คุณสามารถลบบรรทัดออกจาก /etc/hosts

::1 localhost localhost.my.domain

และลองอีกครั้ง

หากวิธีนี้ไม่ได้ผล คุณสามารถเพิ่มส่วนต่อไปนี้ใน /data/mysql/my.cnf

ลูกค้า]
พอร์ต = 3306
ซ็อกเก็ต = /tmp/mysql.sock

- นี้ เปิดไฟเว็บเซิร์ฟเวอร์ได้รับการปรับให้เหมาะกับสภาพแวดล้อมที่มีความเร็วสูงในขณะเดียวกันก็มี ระดับต่ำการใช้ทรัพยากร นี้ ทางเลือกที่ดีเว็บเซิร์ฟเวอร์ที่ใช้กันอย่างแพร่หลาย Nginx และ Apache ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีการติดตั้งและกำหนดค่า Lighttpd เซิร์ฟเวอร์ FreeBSD 11.0 และติดตั้ง MySQL และ PHP บนเว็บเซิร์ฟเวอร์ Lighttpd เพื่อให้บริการเว็บแอปพลิเคชันและเนื้อหาคงที่

ความต้องการ

  • เซิร์ฟเวอร์ FreeBSD 11.0
  • ผู้ใช้ที่มีสิทธิ์เข้าถึง sudo ( ข้อมูลเพิ่มเติมสามารถพบได้ในคู่มือ)

1: ติดตั้ง Lighttpd

มีหลายวิธีในการติดตั้ง Lighttpd แต่ในบทช่วยสอนนี้ เว็บเซิร์ฟเวอร์จะถูกติดตั้งจากแพ็คเกจ โปรแกรมที่ติดตั้งด้วยวิธีนี้จะอัพเดตได้ง่ายกว่า นอกจากนี้ยังเร็วกว่าการคอมไพล์จาก ซอร์สโค้ดหรือการติดตั้งจากพอร์ต

หากต้องการติดตั้งแพ็คเกจ Lighttpd คุณต้องอัปเดตที่เก็บระบบ:

จากนั้นคุณจะต้องดาวน์โหลดและติดตั้งแพ็คเกจ lighttpd:

sudo pkg ติดตั้ง lighttpd

เพื่อยืนยัน ให้กด y

ติดตั้งเว็บเซิร์ฟเวอร์แล้ว

เมื่อคุณเริ่มเซิร์ฟเวอร์ด้วยการกำหนดค่าเริ่มต้น คุณจะเห็นข้อผิดพลาดนี้:

(network.c.260) คำเตือน: โปรดใช้ server.use-ipv6 สำหรับชื่อโฮสต์เท่านั้น ไม่ใช่โดยไม่มี server.bind / ที่อยู่ว่างเปล่า; การกำหนดค่าของคุณจะพังหากค่าเริ่มต้นเคอร์เนลสำหรับ IPV6_V6ONLY เปลี่ยนแปลง

เนื่องจากการกำหนดค่าเริ่มต้นของ Lighttpd ไม่พร้อมใช้งาน IPv6 อย่างสมบูรณ์ เพื่อหลีกเลี่ยงข้อผิดพลาดเพิ่มเติม โปรดแก้ไข ไฟล์การกำหนดค่า Lighttpd และปิดใช้งานการสนับสนุน IPv6 ไม่จำเป็นต้องดำเนินการบทช่วยสอนนี้ให้เสร็จสิ้น คุณอาจต้องการเปิดใช้งานในอนาคต

sudo ee /usr/local/etc/lighttpd/lighttpd.conf

ค้นหาส่วนนี้:

...
##
## ใช้ IPv6 หรือไม่?
##
server.use-ipv6 = "เปิดใช้งาน"
...

แทนที่เปิดใช้งานด้วยปิดการใช้งาน:

...
...
server.use-ipv6 = "ปิดการใช้งาน"
...

ค้นหาบรรทัดนี้ที่ท้ายไฟล์:

...
...
$เซิร์ฟเวอร์["ซ็อกเก็ต"] == "0.0.0.0:80" ( )

แสดงความคิดเห็น ไม่จำเป็นหากคุณไม่ได้ใช้ IPv6

...
...
#$SERVER["ซ็อกเก็ต"] == "0.0.0.0:80" ( )

บันทึกและปิดไฟล์

2: การติดตั้งและกำหนดค่า MySQL

MySQL คือ ระบบยอดนิยมการจัดการฐานข้อมูล สามารถใช้ในการจัดการข้อมูลสำหรับแอปพลิเคชัน PHP ที่จะให้บริการโดยเว็บเซิร์ฟเวอร์ Lighttpd

MySQL เช่นเดียวกับ Lighttpd สามารถติดตั้งได้จากแพ็คเกจ จากนั้นคุณจะต้องตั้งค่ารหัสผ่านสำหรับผู้ใช้รูท MySQL และปิดการใช้งานตัวเลือกการทดสอบ DBMS

เนื่องจากคุณอัปเดตที่เก็บ pkg ก่อนหน้านี้ คุณไม่จำเป็นต้องดำเนินการนี้ในตอนนี้ ติดตั้งแพ็คเกจ MySQL:

sudo pkg ติดตั้ง mysql57-server

เพื่อยืนยันการติดตั้ง ให้กด y

หลังจากการติดตั้งเสร็จสมบูรณ์ ให้เพิ่ม MySQL เพื่อเริ่มต้นระบบ

sudo sysrc mysql_enable=ใช่

เริ่มบริการเซิร์ฟเวอร์ mysql:

บริการ sudo mysql-server เริ่มต้น

หลังจากเริ่มบริการให้ป้องกัน การติดตั้ง MySQLโดยใช้สคริปต์ mysql_secure_installation มันจะลบค่าเริ่มต้นที่เป็นอันตรายและบล็อกการเข้าถึง DBMS รันสคริปต์เชิงโต้ตอบ:

sudo mysql_secure_installation

ข้อความจะปรากฏบนหน้าจอ:

การรักษาความปลอดภัยการปรับใช้เซิร์ฟเวอร์ MySQL
การเชื่อมต่อกับเซิร์ฟเวอร์ MySQL โดยใช้รหัสผ่านใน "/root/.mysql_secret"

สคริปต์จะแจ้งให้คุณกำหนดค่าปลั๊กอินตรวจสอบรหัสผ่าน:

ปลั๊กอินรหัสผ่านที่ถูกต้องสามารถใช้เพื่อทดสอบรหัสผ่าน
และปรับปรุงความปลอดภัย มันตรวจสอบความแข็งแกร่งของรหัสผ่าน
และอนุญาตให้ผู้ใช้ตั้งเฉพาะรหัสผ่านเท่านั้นคือ
ปลอดภัยเพียงพอ คุณต้องการตั้งค่าปลั๊กอิน VALIDATE PASSWORD หรือไม่

สำคัญ!หากเปิดใช้งานคุณสมบัตินี้ รหัสผ่านที่ไม่ตรงตามเกณฑ์ที่ระบุจะถูกปฏิเสธ และ MySQL จะส่งข้อผิดพลาด ซึ่งจะทำให้เกิดปัญหาเมื่อใช้รหัสผ่านที่ไม่รัดกุมและ ซอฟต์แวร์ซึ่งจะกำหนดค่าข้อมูลรับรองผู้ใช้ MySQL โดยอัตโนมัติ คุณสามารถปิดใช้งานการตรวจสอบรหัสผ่านได้ แต่คุณต้องใช้รหัสผ่านที่รัดกุมและไม่ซ้ำกัน

หากต้องการเปิดใช้งานคุณสมบัติ ให้กด Y หากต้องการดำเนินการต่อโดยไม่เปิดใช้งานคุณสมบัติ ให้กดปุ่มใดก็ได้

หากคุณเลือกที่จะเปิดใช้งานคุณสมบัตินี้ คุณจะได้รับแจ้งให้เลือกระดับการตรวจสอบรหัสผ่าน ระดับที่ยากที่สุดคือ 2 จะปฏิเสธรหัสผ่านใดๆ ที่ประกอบด้วยคำธรรมดา และ/หรือไม่มีตัวเลข ตัวอักษรตัวพิมพ์ใหญ่ หรือ ตัวพิมพ์เล็กตลอดจนอักขระพิเศษ

นโยบายการตรวจสอบรหัสผ่านมีสามระดับ:
ความยาวต่ำ >= 8
ความยาวปานกลาง >= 8 ตัวเลข ตัวพิมพ์ผสม และอักขระพิเศษ
ความยาวที่แข็งแกร่ง >= 8, ตัวเลข, ตัวพิมพ์ผสม, อักขระพิเศษ และไฟล์พจนานุกรม
โปรดป้อน 0 = ต่ำ, 1 = ปานกลาง และ 2 = แข็งแกร่ง:

สคริปต์จะแจ้งให้คุณเปลี่ยนรหัสผ่านผู้ใช้รูท:

เปลี่ยนรหัสผ่านสำหรับ root? ((กด y|Y สำหรับ ใช่ หรืออื่นๆ กุญแจสำคัญสำหรับเลขที่) :

หากต้องการเปลี่ยน ให้ป้อน Y

หากคุณเปิดใช้งานการตรวจสอบรหัสผ่าน สคริปต์จะตรวจสอบความรัดกุม รหัสผ่านปัจจุบัน root และจะแจ้งให้คุณเปลี่ยนรหัสผ่านนี้

รหัสผ่านใหม่:
ป้อนรหัสผ่านใหม่อีกครั้ง:
ความรัดกุมของรหัสผ่านโดยประมาณ: 100
คุณต้องการใช้รหัสผ่านที่ให้ไว้ต่อไปหรือไม่ (กด y|Y เพื่อใช่ และปุ่มอื่นใดเพื่อไม่ใช่):

ป้อนรหัสผ่านใหม่ของคุณแล้วกด Y

หากต้องการตอบคำถามที่เหลือ คุณสามารถกด Y และ Enter การดำเนินการนี้จะลบผู้ใช้ที่ไม่ระบุชื่อบางส่วนและทดสอบฐานข้อมูล ปิดการใช้งานระยะไกล การเข้าถึงรูทและจะอัพเดตกฎ MySQL เพื่อให้การเปลี่ยนแปลงมีผลทันที

ในกรณีนี้ คุณสามารถรีสตาร์ทเซิร์ฟเวอร์ mysql ได้:

sudo service mysql-server รีสตาร์ท

3: การติดตั้งและกำหนดค่า PHP

PHP จะประมวลผลโค้ดและแสดงผล เนื้อหาแบบไดนามิก- PHP สามารถเรียกใช้สคริปต์ เชื่อมต่อกับ MySQL ดึงข้อมูลจากฐานข้อมูล และส่งเนื้อหาที่ประมวลผลไปยังเว็บเซิร์ฟเวอร์เพื่อแสดง

PHP สามารถติดตั้งได้จากแพ็คเกจ คุณจะต้องมีแพ็คเกจ mysqli ซึ่งรวมถึงการสนับสนุน MySQL

sudo pkg ติดตั้ง php71 php71-mysqli

Lighttpd ไม่มีการประมวลผล PHP ในตัวเหมือนกับเว็บเซิร์ฟเวอร์อื่นๆ ดังนั้นคุณจึงจำเป็นต้องใช้ PHP-FPM (FastCGI Process Manager) กำหนดค่า Lighttpd สำหรับการประมวลผล คำขอ PHPโดยใช้โมดูลนี้ แต่ก่อนอื่นคุณต้องกำหนดค่า PHP-FPM เปิดไฟล์การกำหนดค่า PHP-FPM:

sudo ee /usr/local/etc/php-fpm.d/www.conf

กำหนดค่า PHP-FPM เพื่อใช้ซ็อกเก็ต Unix แทนพอร์ตเครือข่าย มันมากขึ้น ตัวเลือกที่ปลอดภัยสำหรับบริการแลกเปลี่ยนข้อมูลบนเซิร์ฟเวอร์เดียวกัน

ค้นหาบรรทัดนี้ในไฟล์:

ฟัง = 127.0.0.1:9000

แก้ไขดังนี้:

ฟัง = /var/run/php-fpm.sock

ตอนนี้คุณต้องตั้งค่าความเป็นเจ้าของและสิทธิ์การเข้าถึงซ็อกเก็ต ค้นหาบรรทัดเหล่านี้:

...
;listen.owner = www
;listen.group = www
;ฟัง.โหมด = 0660
...

ยกเลิกหมายเหตุส่วนนี้โดยลบเครื่องหมายอัฒภาคที่จุดเริ่มต้นของแต่ละบรรทัด:

...
Listen.owner = www
Listen.group=www
ฟังโหมด = 0660
...

บันทึกและปิดไฟล์

ถัดไป สร้างไฟล์ php.ini ที่จะรับผิดชอบพฤติกรรม PHP ทั่วไป มีไฟล์การกำหนดค่าตัวอย่างสองไฟล์: php.ini-production และ php.ini-development ในสถานการณ์นี้ php.ini-production มีความเหมาะสมมากกว่า ดังนั้นให้คัดลอกไปที่ /usr/local/etc/php.ini โดยที่ PHP จะค้นหาการตั้งค่า:

sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

เปิด php.ini ในโปรแกรมแก้ไขข้อความ:

sudo ee /usr/local/etc/php.ini

ในไฟล์ ให้มองหาส่วนสำหรับ cgi.fix_pathinfo จะมีการแสดงความคิดเห็น; ค่าเริ่มต้นคือ 1:

...
;cgi.fix_pathinfo=1
...

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

...
cgi.fix_pathinfo=0
...

บันทึกและปิดไฟล์

เพิ่มบริการ php-fpm เพื่อเริ่มต้น:

sudo sysrc php_fpm_enable=ใช่

เริ่มบริการ:

บริการ sudo php-fpm เริ่มต้น

4: การกำหนดค่า Lighttpd เพื่อให้บริการแอปพลิเคชัน PHP

ณ จุดนี้ คุณต้องกำหนดค่า Lighttpd ให้รองรับ FastCGI และ PHP-FPM

ขั้นแรกให้เปิดใช้งานโมดูล FastCGI เปิดไฟล์การกำหนดค่า Lighttpd:

sudo ee /usr/local/etc/lighttpd/modules.conf

ค้นหาส่วนนี้:

...
##
## FastCGI (mod_fastcgi)
##
#รวม "conf.d/fastcgi.conf"
...

ยกเลิกหมายเหตุบรรทัดรวมโดยการลบสัญลักษณ์ # หากไม่มีบรรทัดนี้ในไฟล์ ให้เพิ่มไปที่ท้ายไฟล์:

...
##
## FastCGI (mod_fastcgi)
##
รวม "conf.d/fastcgi.conf"
...

บันทึกและปิดไฟล์

แก้ไขไฟล์การกำหนดค่า FastCGI:

sudo ee /usr/local/etc/lighttpd/conf.d/fastcgi.conf

ไฟล์นี้มีตัวอย่างที่มีการแสดงความคิดเห็นหลายรายการ เพิ่มการกำหนดค่าต่อไปนี้ที่ส่วนท้ายของไฟล์เพื่อกำหนดค่า Lighttpd เพื่อประมวลผลไฟล์ PHP โดยใช้ FastCGI และ PHP-FPM:

...
fastcgi.server += (".php" =>
"socket" => "/var/run/php-fpm.sock",
"broken-scriptfilename" => "เปิดใช้งาน"
)
...

เพิ่ม Lighttpd เพื่อเริ่มต้น

sudo sysrc lighttpd_enable=ใช่

เริ่มบริการ lighttpd

บริการ sudo lighttpd เริ่มต้น

5: ทดสอบการตั้งค่า

เพื่อให้แน่ใจว่า Lighttpd สามารถให้บริการเพจได้ ให้สร้างไดเร็กทอรี /usr/local/www/data โดยที่ Lighttpd ค้นหาข้อมูลที่จะให้บริการ

sudo mkdir -p /usr/local/www/data

ในไดเร็กทอรีนี้ ให้สร้างไฟล์ info.php ไฟล์นี้จะช่วยคุณตรวจสอบว่า PHP ทำงานหรือไม่ และจะช่วยให้คุณสามารถดูข้อมูลการกำหนดค่าเว็บเซิร์ฟเวอร์ในเบราว์เซอร์ของคุณได้:

sudo ee /usr/local/www/data/info.php

เพิ่มลงในไฟล์:

บันทึกและปิดไฟล์

http://your_server_ip/info.php

ข้อมูลเกี่ยวกับการตั้งค่าเว็บเซิร์ฟเวอร์จะปรากฏบนหน้าจอ

หน้านี้แสดงข้อมูลเกี่ยวกับระบบปฏิบัติการปัจจุบัน เว็บเซิร์ฟเวอร์ และวิธีการประมวลผล ไฟล์ PHP- หากเพจเปิดขึ้นมา แสดงว่าเว็บเซิร์ฟเวอร์สามารถให้บริการไฟล์ PHP ได้อย่างถูกต้อง

หากข้อความแสดงข้อผิดพลาด 503 Service Not Available ปรากฏขึ้นบนหน้าจอแทนที่จะเป็นหน้า ตรวจสอบให้แน่ใจว่าบริการ php-fpm ทำงานอย่างถูกต้อง

หลังจากตรวจสอบแล้ว สิ่งสำคัญคือต้องลบไฟล์ info.php ทันทีตามที่มีให้ ข้อมูลที่เป็นความลับเกี่ยวกับเซิร์ฟเวอร์ให้กับผู้ใช้ที่ร้องขอ

sudo RM /usr/local/www/data/info.php

เว็บเซิร์ฟเวอร์พร้อมใช้งานอย่างสมบูรณ์ ตอนนี้คุณสามารถโฮสต์หน้าเว็บ เอกสาร และไฟล์อื่นๆ บนหน้าเว็บได้แล้ว

แท็ก: ,

คำแนะนำในการติดตั้ง FAMP stack บนเซิร์ฟเวอร์เสมือนที่ใช้ FreeBSD 11

มันคืออะไร?

FAMP Stack คือชุดของซอฟต์แวร์โอเพ่นซอร์สที่ใช้ในการสร้างเว็บเซิร์ฟเวอร์ ตัวย่อคือชุดของตัวอักษรตัวแรกในชื่อของเทคโนโลยี FreeBSD, Apache, MySQL และ PHP ตั้งแต่นั้นเป็นต้นมา เซิร์ฟเวอร์เสมือนระบบปฏิบัติการ FreeBSD ที่จำเป็นกำลังทำงานอยู่แล้ว เราจะดูการติดตั้งส่วนประกอบอื่นๆ ทั้งหมด

เหตุผลที่ซอฟต์แวร์ถูกเรียกว่าสแต็กก็เนื่องมาจากแต่ละเลเยอร์ขึ้นอยู่กับเลเยอร์ฐาน (ด้านล่าง) ระบบปฏิบัติการ FreeBSD ของคุณคือ ระดับพื้นฐาน- จากนั้น Apache เว็บเดมอนของคุณจะอยู่บนระบบปฏิบัติการของคุณ จากนั้นฐานข้อมูลจะจัดเก็บข้อมูลทั้งหมดที่ให้บริการโดย web daemon ของคุณ และใช้ PHP (หรือภาษาสคริปต์ P* ใดๆ) เพื่อจัดการและแสดงข้อมูลทั้งหมด ตลอดจนโต้ตอบกับผู้ใช้

ก่อนตั้งค่า FAMP Stack

การติดตั้งซอฟต์แวร์ที่จำเป็นเกิดขึ้นในโหมดสิทธิพิเศษ ในการดำเนินการนี้ คุณต้องเข้าสู่ระบบ VPS ภายใต้การเข้าสู่ระบบของผู้ดูแลระบบ ข้อมูลเข้าสู่ระบบและรหัสผ่านของผู้ดูแลระบบสามารถพบได้ในแผงควบคุม: “ เซิร์ฟเวอร์”->”สถานะ”.

การติดตั้ง Apache บน FreeBSD

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

ในการติดตั้ง Apache คุณต้องเชื่อมต่อกับเซิร์ฟเวอร์ของคุณโดยใช้ Putty บน Windows หรือใช้เทอร์มินัลบน Mac OS, Linux และ FreeBSD แล้วป้อนคำสั่งต่อไปนี้:

PKG ติดตั้ง apache24

เพื่อให้ซอฟต์แวร์นี้เริ่มทำงานเมื่อคุณเปิดระบบปฏิบัติการ ระบบฟรีบีเอสดีคุณต้องเพิ่มลงในการเริ่มต้น:

Sysrc apache24_enable=ใช่

เริ่มต้นด้วยคำสั่ง:

บริการ apache24 เริ่มต้น

เพื่อตรวจสอบ การติดตั้งอาปาเช่คุณสามารถเปิดเบราว์เซอร์บนคอมพิวเตอร์ของคุณและพิมพ์ที่อยู่ IP ของ FreeBSD VPS ลงในแถบที่อยู่ ข้อความต่อไปนี้ควรปรากฏบนหน้าที่โหลด:

หมายเหตุ: บนเว็บไซต์อย่างเป็นทางการคุณสามารถค้นหาเพิ่มเติมได้ ข้อมูลรายละเอียดโดย การตั้งค่าที่ถูกต้องเซิร์ฟเวอร์สำหรับการโฮสต์เว็บไซต์

การติดตั้ง MySQL บน FreeBSD

ในเทอร์มินัล ให้รันคำสั่งต่อไปนี้: pkg ติดตั้ง mysql56-server

หากต้องการเพิ่ม FreeBSD ในการเริ่มต้น ให้ทำตามขั้นตอนเหล่านี้:

Sysrc mysql_enable=ใช่

มาเริ่มเซิร์ฟเวอร์ MySQL กันเถอะ:

บริการเริ่มต้นเซิร์ฟเวอร์ mysql

แอปพลิเคชัน Famp Stack ที่ติดตั้งทั้งหมดมักจะมีชุด การตั้งค่ามาตรฐานซึ่งไม่ปลอดภัยและไม่น่าเชื่อถือ เพื่อเพิ่มระดับความปลอดภัยในการใช้ซอฟต์แวร์ แนะนำให้ทำการเปลี่ยนแปลง เรียกใช้สคริปต์ความปลอดภัยที่เปลี่ยนแปลงการตั้งค่าทั่วไป:

Mysql_secure_installation

คุณสามารถเชื่อมต่อโดยใช้ ยูทิลิตี้พิเศษซึ่งช่วยให้คุณทำงานกับ DBMS ได้โดยการระบุชื่อผู้ใช้:

Mysql -u<имя_пользователя>-พี

การติดตั้ง PHP บน FreeBSD

เราดำเนินการคำสั่งซึ่งเป็นผลมาจากแพ็คเกจสำหรับการดูเนื้อหาแบบไดนามิกที่จะติดตั้งบนเซิร์ฟเวอร์:

PKG ติดตั้ง mod_php56 php56-mysql php56-mysqli

คัดลอกไฟล์การกำหนดค่า PHP ตัวอย่างโดยใช้คำสั่งนี้:

ซีพี /usr/local/etc/php.ini-production /usr/local/etc/php.ini

ตอนนี้เรามากู้คืนข้อมูลแคชเกี่ยวกับการติดตั้งกันดีกว่า ไฟล์ปฏิบัติการระบบ:

หมายเหตุ: เพื่อปรับปรุงการทำงานของ PHP คุณสามารถติดตั้งโมดูลเพิ่มเติมบางส่วนได้

การกำหนดค่า Apache สำหรับการใช้โมดูล PHP

ใช้โปรแกรมแก้ไขข้อความใดๆ ที่คุณต้องการ เปิดไฟล์การกำหนดค่า Apache เช่น การใช้ nano:

นาโน /usr/local/etc/apache24/รวม/php.conf

ไฟล์จะว่างเปล่า ป้อนเนื้อหาต่อไปนี้:


DirectoryIndex.php.index.html

แอปพลิเคชัน SetHandler/x-httpd-php


แอปพลิเคชัน SetHandler/x-httpd-php-source.php

หากต้องการใช้การเปลี่ยนแปลง ให้รีสตาร์ท Apache:

บริการ apache24 รีสตาร์ท

การตรวจสอบ

เพื่อให้แน่ใจว่า PHP ได้รับการติดตั้งโดยไม่มีข้อผิดพลาด คุณสามารถสร้างหน้าทดสอบบนเซิร์ฟเวอร์ได้

ในการดำเนินการนี้ คุณจะต้องสร้างไฟล์สคริปต์ใหม่:

นาโน /usr/local/www/apache24/data/info.php

และเพิ่มบรรทัดต่อไปนี้เข้าไป:

phpinfo();
?>

http:// /ข้อมูล.php

ตัวอย่างเช่น:

http://5.101.77.24/info.php

ผลลัพธ์ที่คาดหวัง:

การติดตั้งส่วนประกอบ FAMP Stack ทั้งหมดบน FreeBSD เสร็จสิ้น และคุณสามารถใช้เว็บเซิร์ฟเวอร์เพื่อปรับใช้ไซต์แรกของคุณได้