ติดตั้ง WordPress บน OpenBSD 6.2
บทนำ WordPress เป็นระบบจัดการเนื้อหาที่โดดเด่นบนอินเทอร์เน็ต มันเพิ่มประสิทธิภาพทุกอย่างตั้งแต่บล็อกไปจนถึงเว็บไซต์ที่ซับซ้อนพร้อมเนื้อหาแบบไดนามิก
การใช้งานทั่วไปของเซิร์ฟเวอร์เสมือน Vultr คือการโฮสต์เว็บไซต์ Wordpress คู่มือนี้แสดงวิธีการกำหนดค่าเซิร์ฟเวอร์เสมือนโดยอัตโนมัติตั้งแต่เริ่มต้น (โดยใช้ Ansible) และปรับใช้เว็บไซต์ Wordpress อิสระหลายเว็บไซต์ (โดยใช้ Webmin / Virtualmin) Virtualmin / Webmin เป็นส่วนต่อประสานผู้ใช้แบบกราฟิกที่ให้คุณจัดการการปรับใช้บัญชีเซิร์ฟเวอร์เสมือนหลายบัญชีในเครื่องเดียวกัน (สมบูรณ์ด้วย LAMP / LEMP stack) Virtualmin คล้ายกับ cPanel และ Plesk มากและในบทช่วยสอนนี้เราจะใช้ GPL edition ฟรี หลังจากการตั้งค่าเริ่มต้นของเซิร์ฟเวอร์ Vultr และการติดตั้ง Virtualmin คุณสามารถติดตั้งเซิร์ฟเวอร์เสมือนหลายตัวได้อย่างรวดเร็วจากภายในอินเทอร์เฟซ Virtualmin และติดตั้ง Wordpress บนเซิร์ฟเวอร์เสมือนนั้นโดยตรงพร้อมชื่อโดเมนของตัวเอง
ในบทช่วยสอนนี้แทนที่จะป้อนรายการคำสั่งแบบยาวด้วยตนเองเราจะใช้ Ansible แทน Ansible เป็นเครื่องมืออัตโนมัติที่ใช้ python ซึ่งช่วยให้คุณสามารถทำงานของเซิร์ฟเวอร์ได้อย่างน่าเชื่อถือและซ้ำ ๆ ซึ่งหมายความว่าเมื่อคุณทำตามบทช่วยสอนนี้แล้วคุณจะสามารถปรับใช้เซิร์ฟเวอร์อื่นในลักษณะเดียวกันโดยใช้คำสั่งเพียงไม่กี่คำ
ติดตั้ง Ansible บนเครื่องของคุณหรือเซิร์ฟเวอร์อื่น
mkdir ansible
cd ansible
virtualenv env
source env/bin/activate
pip install ansible
Ansible ทำงานได้โดยเข้าสู่เซิร์ฟเวอร์ของคุณผ่าน SSH การเข้าถึง SSH นั้นปลอดภัยที่สุดหากเราใช้กุญแจแทนรหัสผ่าน ก่อนอื่นเรามาสร้างคู่คีย์สาธารณะและส่วนตัว
mkdir ssh_keys
ssh-keygen -t rsa -b 2048 -f ./ssh_keys
ในssh_keys
ไดเรกทอรีจะมีสองไฟล์ssh_keys
และssh_keys.pub
. ssh_keys
เป็นไฟล์กุญแจส่วนตัวของคุณและควรจะปลอดภัย ตอนนี้คุณสามารถเปิดssh_keys.pub
ซึ่งมีรหัสสาธารณะ
เข้าสู่ระบบแดชบอร์ดเว็บ Vultr Deploy New Server
และคลิก
เลือกภูมิภาคประเภท Server (Ubuntu 16.04) ขนาด Server แล้วในส่วนที่ 6 ( SSH keys
) Add New
ให้คลิก Add SSH key
ในหน้าถัดไปวางกุญแจสาธารณะของคุณและให้มันชื่อและคลิก Deploy now
สุดท้ายให้แน่ใจว่าที่สำคัญคือการเลือกและคลิก
เมื่อเซิร์ฟเวอร์ปรับใช้เสร็จแล้วคุณจะเห็นที่อยู่ IP คุณจะต้องลงชื่อเข้าใช้เซิร์ฟเวอร์ DNS ของชื่อโดเมนของคุณและชี้ไปยังที่อยู่นี้
roles
ไฟล์อัตโนมัติเบิ้ลจะถูกเรียกว่า ก่อนอื่นเราจะตั้งค่าโครงสร้างไดเรกทอรี (ภายในansible
ไดเรกทอรีที่คุณเพิ่งสร้างในขั้นตอนที่ 1) และไฟล์พื้นฐาน
mkdir -p group_vars roles/common/tasks/ roles/common/handlers
touch hosts group_vars/all deploy.yml roles/common/handlers/main.yml
แก้ไขhosts
ไฟล์เพื่อให้มีสิ่งต่อไปนี้แทนที่ip address
เซิร์ฟเวอร์ที่คุณเพิ่งสร้างขึ้น Ansible ใช้ python 2 ซึ่ง Ubuntu 16.04 ไม่ได้ติดตั้งตามค่าเริ่มต้น ในhosts
ไฟล์เราบอก Ansible ให้ใช้ python 3
[common]
192.0.2.1 ansible_python_interpreter=/usr/bin/python3
แก้ไขdeploy.yml
ไฟล์เพื่อให้มีสิ่งต่อไปนี้ พวกเรากำลังจะใช้root
ผู้ใช้
- name: apply common configuration to server
hosts: all
user: root
roles:
- common
แก้ไข/group_vars/all
ไฟล์เพื่อให้มีสิ่งต่อไปนี้ ตัวแปรเหล่านี้บอกตำแหน่งของคีย์ SSH ของคุณแลกเปลี่ยนไฟล์พารามิเตอร์ชื่อโดเมนที่ผ่านการรับรองอย่างสมบูรณ์และรหัสผ่านรูทของคุณ โปรดจำไว้ว่าไม่รวมไฟล์ในการควบคุมแหล่งที่มาเนื่องจากมีรหัสผ่านของคุณในข้อความที่ชัดเจน
ssh_dir: ./ssh_keys
swap_file_path: /swapfile
swap_file_size: 1G
swappiness: 1
hostname: example.com
new_password: YOUR_PASSWORD_HERE
แก้ไขcommon/handlers/main.yml
ไฟล์เพื่อให้มีสิ่งต่อไปนี้
- name: restart sshd
service: name=ssh state=restarted
Ansible automation นั้นง่ายต่อการเข้าใจถ้าเราแบ่งมันเป็นงานต่างๆ มาสร้างไฟล์สำหรับแต่ละงานของเราในกระบวนการ
cd roles/common/tasks
touch hosts main.yml setup.yml users.yml ufw.yml swap.yml virtualmin.yml
main.yml
ควรชี้ไปที่แต่ละไฟล์ที่มีคำสั่ง Ansible ดังนั้นควรแก้ไขเพื่อให้มีคำสั่งต่อไปนี้
- include: setup.yml
- include: users.yml
- include: ufw.yml
- include: swap.yml
- include: virtualmin.yml
ขั้นตอนแรกในการตั้งค่าเซิร์ฟเวอร์ใหม่คือการปรับปรุงแคช repo และตั้งเขตเวลา แก้ไขcommon/handlers/setup.yml
ไฟล์เพื่อให้มีสิ่งต่อไปนี้
- apt: update_cache=yes
sudo: yes
- name: set timezone to Europe/London
timezone:
name: Europe/London
ตอนนี้เราจะให้รหัสผ่านแก่ผู้ใช้รูท (ซึ่งเราจะต้องเข้าถึง virtualmin web interface) แต่ปิดการใช้งานการเข้าสู่ระบบด้วยรหัสผ่านบน SSH (เนื่องจากเราใช้วิธีการตรวจสอบคีย์ที่ปลอดภัยยิ่งขึ้น) แก้ไขusers.yml
เพื่อให้มีสิ่งต่อไปนี้
- name: Change passwd
user: name=root password={{ new_password | password_hash('sha512') }} update_password=always
- name: Disable SSH password login
lineinfile: dest=/etc/ssh/sshd_config regexp="^#?PasswordAuthentication" line="PasswordAuthentication no"
notify: restart sshd
เพื่อความปลอดภัยเราต้องใช้ไฟร์วอลล์ เราจะใช้ที่ไม่ซับซ้อน Firewall เพื่อให้สามารถเข้าถึง SSH ในพอร์ต22
การเข้าถึงเว็บบนพอร์ตและการเข้าถึงเว็บที่ปลอดภัยในพอร์ต80
443
แก้ไขufw.yml
ไฟล์เพื่อให้มีสิ่งต่อไปนี้
- name: Set default firewall policy to deny all
become: True
ufw: state=enabled direction=incoming policy=deny
tags: firewall
- name: enable SSH in firewall
ufw: rule=allow port=22
sudo: yes
- name: enable HTTP connections for web server
ufw: rule=allow port=80
sudo: yes
- name: enable HTTPS connections for web server
ufw: rule=allow port=443
sudo: yes
- name: enable firewall
ufw: state=enabled
sudo: yes
คุณสามารถรวมไฟล์สลับได้ นี่เป็นสิ่งจำเป็นหากเซิร์ฟเวอร์ของคุณมี RAM น้อยกว่า 2GB เพื่อหลีกเลี่ยงปัญหาหน่วยความจำไม่เพียงพอ แก้ไขswap.yml
เพื่อให้มีสิ่งต่อไปนี้
- name: Set swap_file variable
set_fact:
swap_file: "{{swap_file_path}}"
tags:
- swap.set.file.path
- name: Check if swap file exists
stat:
path: "{{swap_file}}"
register: swap_file_check
tags:
- swap.file.check
- name: Create swap file
command: fallocate -l {{swap_file_size}} {{swap_file}}
when: not swap_file_check.stat.exists
tags:
- swap.file.create
- name: Change swap file permissions
file: path="{{swap_file}}"
owner=root
group=root
mode=0600
tags:
- swap.file.permissions
- name: Format swap file
sudo: yes
command: "mkswap {{swap_file}}"
when: not swap_file_check.stat.exists
tags:
- swap.file.mkswap
- name: Write swap entry in fstab
mount: name=none
src={{swap_file}}
fstype=swap
opts=sw
passno=0
dump=0
state=present
tags:
- swap.fstab
- name: Turn on swap
sudo: yes
command: swapon -a
when: not swap_file_check.stat.exists
tags:
- swap.turn.on
- name: Set swappiness
sudo: yes
sysctl:
name: vm.swappiness
value: "{{swappiness}}"
tags:
- swap.set.swappiness
Virtualmin มีไฟล์ตัวติดตั้งของตัวเองซึ่งสามารถดาวน์โหลดและรันโดย Ansible ที่นี่เรากำลังใช้การติดตั้งขั้นต่ำ ( LINK
) รายการเพิ่มเติมคือการกำหนดค่ารหัสผ่านเซิร์ฟเวอร์ MySQL ซึ่งไม่ได้ตั้งค่าเมื่อติดตั้งโดย Virtualmin เราต้องหยุด MySQL ชั่วคราวและเพิ่มไดเรกทอรีการรับรองความถูกต้องก่อนที่จะเปลี่ยนรหัสผ่าน แก้ไขvirtualmin.yml
เพื่อให้มีสิ่งต่อไปนี้
- name: download virtualmin install script
get_url: >
url=http://software.virtualmin.com/gpl/scripts/install.sh
dest=/root/install.sh
mode=0755
- name: virtualmin install (takes around 10 mins) you can see progress using $ sudo tail -f /root/virtualmin-install.log
tags: non-idem
shell: ~/install.sh --force --hostname {{ hostname }} --minimal --yes
args:
chdir: /root
- name: temp stop mysql
service:
name: mysql
state: stopped
- name: change owner (and group) of mysqld dir
file:
path: "/var/run/mysqld"
state: directory
owner: mysql
group: mysql
- name: virtualmin set mysql password
shell: virtualmin set-mysql-pass --user root --pass {{ new_password }}
- name: restart mysql
service:
name: mysql
state: started
บทบาท Ansible เสร็จสิ้นแล้วและเราพร้อมที่จะปรับใช้
จากโฟลเดอร์ ansible ตอนนี้เราสามารถเรียกใช้คำสั่งต่อไปนี้และ Ansible จะดำเนินงานทั้งหมดที่เราสร้างขึ้นโดยอัตโนมัติ ครั้งแรกที่คุณเชื่อมต่อคุณจะได้รับคำเตือนเกี่ยวกับคีย์ SSH เพียงพิมพ์ " yes
" ที่พรอมต์
ansible-playbook deploy.yml --private-key=ssh_keys/ssh_keys -i hosts
หากเราต้องการใช้เซิร์ฟเวอร์อื่นเราสามารถเปลี่ยนที่อยู่ IP ในไฟล์โฮสต์และเรียกใช้คำสั่งนั้นอีกครั้งเพื่อให้การตั้งค่าเดียวกันเสร็จสมบูรณ์
การติดตั้งเสร็จสมบูรณ์และเราสามารถไปที่https://192.0.2.1:10000
(ใช้ที่อยู่ ip ของเซิร์ฟเวอร์ของคุณ) เบราว์เซอร์ของคุณจะออกคำเตือนความปลอดภัยเนื่องจากใบรับรองนั้นลงชื่อด้วยตนเองดังนั้นคลิกadvanced
และเพิ่มข้อยกเว้น คุณจะพบกับหน้าเข้าสู่ระบบ ชื่อผู้ใช้คือroot
และรหัสผ่านคือรหัสที่คุณป้อนgroup_vars/all
ในขั้นตอนที่ 3 ครั้งแรกที่คุณป้อน Virtualmin คุณจะเห็นตัวช่วยสร้างหลังการติดตั้ง คุณสามารถผ่านการตั้งค่าเหล่านี้ด้วยตนเองหรือคลิกcancel
เพื่อยอมรับค่าเริ่มต้น
ที่จะได้รับเซิร์ฟเวอร์ชื่อแรกของคุณและทำงานจาก Virtualmin Create Virtual Server
แดชบอร์ดคลิก คุณจะต้องป้อนชื่อโดเมนคำอธิบายและรหัสผ่านผู้ดูแลระบบ ชื่อโดเมนควรแตกต่างจากชื่อโดเมนแบบเต็มของ Virtualmin และคุณจะต้องชี้ระเบียน DNS ไปยังที่อยู่ IP ของเซิร์ฟเวอร์ของคุณ
Create Server
คลิก เมื่อ Virtualmin สร้างเซิร์ฟเวอร์เสร็จแล้วให้คลิกInstall Scripts
ที่เมนูด้านซ้าย เลือกWordpress
คลิกShow install options
และในหน้าต่อไปนี้ให้เลือกตำแหน่งของการติดตั้ง Wordpress เพียงแค่เลือกและคลิก At top level
Install Now
นั่นคือทั้งหมดที่คุณต้องทำ - คุณสามารถทำการติดตั้ง Wordpress ให้เสร็จสมบูรณ์โดยไปที่http://example.net/wp-admin/install.php
( example.net
ชื่อโดเมนเซิร์ฟเวอร์เสมือนนี้อยู่ที่ไหน) หากระเบียน DNS ของคุณยังไม่ได้เผยแพร่คุณสามารถไปServices > Preview Website
ที่เมนู Virtualmin
คุณสามารถทำซ้ำขั้นตอนนี้หลายครั้งเพื่อสร้างเว็บไซต์ Wordpress หลายแห่งบนเซิร์ฟเวอร์ Vultr เดียวกัน
บทนำ WordPress เป็นระบบจัดการเนื้อหาที่โดดเด่นบนอินเทอร์เน็ต มันเพิ่มประสิทธิภาพทุกอย่างตั้งแต่บล็อกไปจนถึงเว็บไซต์ที่ซับซ้อนพร้อมเนื้อหาแบบไดนามิก
ใช้ระบบที่แตกต่างกันอย่างไร MODX Revolution เป็นระบบการจัดการเนื้อหา (CMS) ระดับองค์กรที่รวดเร็วยืดหยุ่นปรับขนาดได้ฟรีและโอเพนซอร์ส
ใช้ระบบที่แตกต่างกันอย่างไร Ghost เป็นแพลตฟอร์มบล็อกโอเพ่นซอร์สที่ได้รับความนิยมในหมู่นักพัฒนาและผู้ใช้ทั่วไปตั้งแต่ปี 2013 ผม
ใช้ระบบที่แตกต่างกันอย่างไร Dotclear เป็นเครื่องมือเขียนบล็อกที่ง่ายมาก มันเป็นโอเพ่นซอร์สและใช้งานง่าย บทช่วยสอนนี้จะผ่านการติดตั้งใน
Ghost เป็นเกมล่าสุดและยิ่งใหญ่ที่สุดในการแข่งขัน WordPress การพัฒนาชุดรูปแบบนั้นรวดเร็วและง่ายต่อการเรียนรู้เพราะผู้พัฒนา Ghost ตัดสินใจใช้ทั้งสอง
บทนำยิ่งคุณติดตั้ง OpenBSD ของคุณให้ใกล้กับค่าเริ่มต้นมากขึ้นเท่านั้นและหากไม่มีแพ็คเกจเพิ่มเติมจำนวนมากก็จะยิ่งปลอดภัยมากขึ้นเท่านั้น ในขณะที่คอมม่ามากขึ้น
ใช้ระบบที่แตกต่างกันอย่างไร Ghost เป็นแพลตฟอร์มบล็อกโอเพ่นซอร์สที่ได้รับความนิยมในหมู่ผู้พัฒนาและผู้ใช้ทั่วไปตั้งแต่ 201
Neos เป็นระบบจัดการเนื้อหาโอเพนซอร์สที่เป็นนวัตกรรมที่ยอดเยี่ยมสำหรับการสร้างและแก้ไขเนื้อหาออนไลน์ ด้วยใจนักเขียนและบรรณาธิการนีโอ
ใช้ระบบที่แตกต่างกันอย่างไร Ghost เป็นแพลตฟอร์มบล็อกโอเพ่นซอร์สที่ได้รับความนิยมในหมู่ผู้พัฒนาและผู้ใช้ทั่วไปตั้งแต่ 201
ใช้ระบบที่แตกต่างกันอย่างไร Dotclear เป็นเครื่องมือบล็อกง่ายๆที่ถูกสร้างขึ้นบน PHP ในบทช่วยสอนนี้เราจะติดตั้ง Dotclear บน Ubunt
ใช้ระบบที่แตกต่างกันอย่างไร MODX Revolution เป็นระบบการจัดการเนื้อหา (CMS) ระดับองค์กรที่รวดเร็วยืดหยุ่นปรับขนาดได้ฟรีและโอเพนซอร์ส
ใช้ระบบที่แตกต่างกันอย่างไร Jekyll เป็นทางเลือกที่ดีสำหรับ WordPress มันไม่จำเป็นต้องใช้ฐานข้อมูลใด ๆ และมันทำงานได้กับภาษาที่หลายคนคุ้นเคย
ใช้ระบบที่แตกต่างกันอย่างไร Fork เป็น CMS โอเพ่นซอร์สที่เขียนด้วย PHP ซอร์สโค้ดของ Forks นั้นโฮสต์อยู่บน GitHub คู่มือนี้จะแสดงวิธีการติดตั้ง Fork CM
ใช้ระบบที่แตกต่างกันอย่างไร Jekyll เป็นทางเลือกที่ยอดเยี่ยมสำหรับ WordPress สำหรับบล็อกหรือแบ่งปันเนื้อหา มันไม่ต้องการฐานข้อมูลใด ๆ และมันก็เป็นเรื่องง่ายมาก
ใช้ระบบที่แตกต่างกันอย่างไร MODX Revolution เป็นระบบการจัดการเนื้อหา (CMS) ระดับองค์กรที่รวดเร็วยืดหยุ่นปรับขนาดได้ฟรีและโอเพนซอร์ส
อินสแตนซ์ Vultr เป็นวิธีที่ยอดเยี่ยมในการใช้งานบล็อก WordPress ของคุณ แต่ส่วนขยายที่น่าสนใจยิ่งกว่าสำหรับ WordPress คือ WooCommerce ปลั๊กอินอีคอมเมิร์ซที่ขยายตัว
ใช้ระบบที่แตกต่างกันอย่างไร Fork เป็น CMS โอเพ่นซอร์สที่เขียนด้วย PHP ซอร์สโค้ดของ Forks นั้นโฮสต์อยู่บน GitHub คู่มือนี้จะแสดงวิธีการติดตั้ง Fork CM
ใช้ระบบที่แตกต่างกันอย่างไร Ghost เป็นแพลตฟอร์มบล็อกโอเพ่นซอร์สที่ได้รับความนิยมในหมู่นักพัฒนาและผู้ใช้ทั่วไปตั้งแต่ปี 2013 ผม
Ghost เป็นแพลตฟอร์มการเผยแพร่โอเพ่นซอร์สที่ทันสมัยที่สร้างขึ้นบน Node.js ด้วยไคลเอนต์ผู้ดูแลระบบ Ember.js, JSON API และธีม API ที่ขับเคลื่อนโดย Handlebars.js Ghos
ใช้ระบบที่แตกต่างกันอย่างไร Fork เป็น CMS โอเพ่นซอร์สที่เขียนด้วย PHP ซอร์สโค้ดของ Forks นั้นโฮสต์อยู่บน GitHub คู่มือนี้จะแสดงวิธีการติดตั้ง Fork CM
ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน
การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane
ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+
อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ
เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม
13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data
คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true
ในขณะที่วิทยาศาสตร์มีวิวัฒนาการไปอย่างรวดเร็ว โดยรับช่วงต่อความพยายามของเราอย่างมาก ความเสี่ยงในการทำให้ตัวเองตกอยู่ในภาวะภาวะเอกฐานที่อธิบายไม่ได้ก็เพิ่มขึ้นเช่นกัน อ่านว่าภาวะเอกฐานอาจมีความหมายสำหรับเราอย่างไร
ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1
AI ในการดูแลสุขภาพได้ก้าวกระโดดอย่างมากจากทศวรรษที่ผ่านมา ดังนั้นอนาคตของ AI ในการดูแลสุขภาพจึงยังคงเติบโตทุกวัน