كيفية نشر Ghost v0.11 LTS على Fedora 25
استخدام نظام مختلف؟ Ghost هي منصة تدوين مفتوحة المصدر اكتسبت شعبية بين المطورين والمستخدمين العاديين منذ عام 201
الاستخدام الشائع لخادم Vultr الظاهري هو استضافة مواقع Wordpress. يوضح لك هذا الدليل كيفية أتمتة تكوين خادم افتراضي من البداية (باستخدام Ansible) ونشر العديد من مواقع Wordpress المستقلة (باستخدام Webmin / Virtualmin). Virtualmin / Webmin هي واجهة مستخدم رسومية تسمح لك بإدارة نشر العديد من حسابات الخادم الظاهري على نفس الجهاز (كاملة مع مكدس LAMP / LEMP). Virtualmin مشابه جدًا لـ cPanel و Plesk ، وفي هذا البرنامج التعليمي سنستخدم إصدار GPL المجاني. بعد الإعداد الأولي لخادم Vultr وتثبيت Virtualmin ، يمكنك إعداد خوادم ظاهرية متعددة بسرعة كبيرة من داخل واجهة Virtualmin وتثبيت Wordpress مباشرة على هذا الخادم الظاهري الكامل باسم المجال الخاص به.
في هذا البرنامج التعليمي ، بدلاً من إدخال قائمة طويلة من الأوامر يدويًا ، سنستخدم بدلاً من ذلك Ansible. Ansible هي أداة الأتمتة القائمة على الثعبان والتي تتيح لك أتمتة مهام الخادم بشكل موثوق به وبشكل متكرر. هذا يعني أنه بمجرد اتباعك لهذا البرنامج التعليمي ، ستتمكن من نشر خادم آخر بنفس الطريقة باستخدام أمرين فقط.
قم بتثبيت 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
.
حدد منطقة ، نوع الخادم (Ubuntu 16.04) ، حجم الخادم ، ثم في الجزء 6 ( SSH keys
) ، انقر فوق Add New
. في الصفحة التالية ، الصق مفتاحك العام وأعطه اسمًا ، وانقر Add SSH key
. أخيرًا ، تأكد من تحديد المفتاح وانقر عليه Deploy now
.
بمجرد انتهاء الخادم من النشر ، سيظهر لك عنوان IP الخاص به. ستحتاج إلى تسجيل الدخول إلى خادم DNS لاسم المجال الخاص بك وتوجيهه إلى هذا العنوان.
تسمى ملفات الأتمتة في Ansible 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 لاستخدام الثعبان 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
الملف ليتضمن ما يلي. تخبر هذه المتغيرات Ansible بموقع مفاتيح 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
من السهل فهم الأتمتة الخفية إذا قسمناها إلى مهام. لنقم بإنشاء ملفات لكل مهمة من مهامنا في هذه العملية.
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
الخطوة الأولى في إعداد خادم جديد هي تحديث ذاكرة التخزين المؤقت الريبو وتعيين المنطقة الزمنية. قم بتحرير common/handlers/setup.yml
الملف ليتضمن ما يلي.
- apt: update_cache=yes
sudo: yes
- name: set timezone to Europe/London
timezone:
name: Europe/London
الآن ، سنمنح المستخدم الجذر كلمة مرور (والتي سنحتاجها للوصول إلى واجهة الويب Virtualmin) ، ولكن نقوم بتعطيل تسجيلات كلمة المرور عبر 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
من أجل الأمن ، نحن بحاجة إلى جدار حماية. سنستخدم جدار الحماية غير المعقد للسماح بوصول 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
بشكل اختياري ، يمكنك تضمين ملف مبادلة. يعد هذا ضروريًا إذا كان الخادم الخاص بك يحتوي على أقل من 2 غيغابايت من ذاكرة الوصول العشوائي لتجنب تعطل الذاكرة. تحرير 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 في ملف hosts وتشغيل هذا الأمر مرة أخرى لإكمال الإعداد نفسه بالضبط.
اكتمل التثبيت ويمكننا الآن الانتقال إلى 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.
استخدام نظام مختلف؟ Ghost هي منصة تدوين مفتوحة المصدر اكتسبت شعبية بين المطورين والمستخدمين العاديين منذ عام 201
مقدمة WordPress هو نظام إدارة المحتوى المهيمن على الإنترنت. يعمل على تشغيل كل شيء من المدونات إلى مواقع الويب المعقدة ذات المحتوى الديناميكي
استخدام نظام مختلف؟ Fork هو CMS مفتوح المصدر مكتوب بلغة PHP. رمز مصدر فوركس مستضاف على جيثب. سيوضح لك هذا الدليل كيفية تثبيت Fork CM
Ghost عبارة عن منصة نشر حديثة مفتوحة المصدر مبنية على Node.js مع عميل مشرف Ember.js وواجهة برمجة تطبيقات JSON وواجهة برمجة تطبيقات للسمات مدعومة من Handlebars.js. غص
استخدام نظام مختلف؟ Ghost هي منصة تدوين مفتوحة المصدر اكتسبت شعبية بين المطورين والمستخدمين العاديين منذ عام 201
تعد مثيلات Vultr طريقة رائعة لتشغيل مدونة WordPress الخاصة بك ، ولكن امتدادًا بارزًا لـ WordPress هو WooCommerce ، وهو مكون إضافي للتجارة الإلكترونية يمتد
استخدام نظام مختلف؟ Fork هو CMS مفتوح المصدر مكتوب بلغة PHP. رمز مصدر فوركس مستضاف على جيثب. سيوضح لك هذا الدليل كيفية تثبيت Fork CM
استخدام نظام مختلف؟ MODX Revolution عبارة عن نظام إدارة محتوى (CMS) سريع ومرن وقابل للتوسيع ومجاني ومفتوح المصدر ومكتوب
استخدام نظام مختلف؟ MODX Revolution عبارة عن نظام إدارة محتوى (CMS) سريع ومرن وقابل للتوسيع ومفتوح المصدر ومكتوب بلغة PHP. أنا
استخدام نظام مختلف؟ Fork هو CMS مفتوح المصدر مكتوب بلغة PHP. رمز مصدر فوركس مستضاف على جيثب. سيوضح لك هذا الدليل كيفية تثبيت Fork CM
استخدام نظام مختلف؟ MODX Revolution عبارة عن نظام إدارة محتوى (CMS) سريع ومرن وقابل للتوسيع ومجاني ومفتوح المصدر ومكتوب
استخدام نظام مختلف؟ Ghost هي منصة تدوين مفتوحة المصدر تكتسب شعبية بين المطورين والمستخدمين العاديين منذ إصدارها عام 2013. أنا
استخدام نظام مختلف؟ Ghost هي منصة تدوين مفتوحة المصدر تكتسب شعبية بين المطورين والمستخدمين العاديين منذ إصدارها عام 2013. أنا
استخدام نظام مختلف؟ Dotclear هو محرك تدوين بسيط للغاية. إنه مفتوح المصدر وسهل الاستخدام. سيذهب هذا البرنامج التعليمي خلال التثبيت
استخدام نظام مختلف؟ MODX Revolution عبارة عن نظام إدارة محتوى (CMS) سريع ومرن وقابل للتوسيع ومجاني ومفتوح المصدر ومكتوب
Ghost هو أحدث وأكبر مبتدئ لمنافس وورد. تطوير السمة سريع وسهل التعلم لأن مطوري Ghost قرروا استخدام كل من th
استخدام نظام مختلف؟ Jekyll هو بديل جيد لـ WordPress. لا يتطلب أي قواعد بيانات ويعمل مع لغة كثير من الذكاء مألوفة
مقدمة كلما اقتربت من تثبيت OpenBSD بشكل افتراضي وبدون العديد من الحزم المضافة ، كلما كانت أكثر أمانًا. في حين أن المزيد كومو
Neos هو نظام مبتكر لإدارة المحتوى مفتوح المصدر وهو رائع لإنشاء وتحرير المحتوى عبر الإنترنت. مع وضع المؤلفين والمحررين في الاعتبار ، Neo
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".
هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.
اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.
اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.
لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟
مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.
ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!
ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.
أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد