Jak zainstalować Neos CMS na CentOS 7
Neos to innowacyjny system zarządzania treścią typu open source, który doskonale nadaje się do tworzenia i edytowania treści online. Z myślą o autorach i redaktorach, Neo
Typowym zastosowaniem wirtualnego serwera Vultr jest hostowanie stron internetowych Wordpress. Ten przewodnik pokazuje, jak zautomatyzować konfigurację serwera wirtualnego od zera (przy użyciu Ansible) i wdrożyć wiele niezależnych witryn Wordpress (przy użyciu Webmin / Virtualmin). Virtualmin / Webmin to graficzny interfejs użytkownika, który pozwala zarządzać wdrażaniem wielu kont serwerów wirtualnych na tym samym komputerze (wraz ze stosem LAMP / LEMP). Virtualmin jest bardzo podobny do cPanel i Plesk, aw tym samouczku będziemy korzystać z bezpłatnej wersji GPL. Po wstępnej konfiguracji serwera Vultr i instalacji Virtualmin, możesz bardzo szybko skonfigurować wiele serwerów wirtualnych z poziomu interfejsu Virtualmin i bezpośrednio zainstalować Wordpress na tym serwerze wirtualnym wraz z własną nazwą domeny.
W tym samouczku zamiast ręcznie wprowadzać długą listę poleceń, zamiast tego użyjemy Ansible. Ansible to narzędzie do automatyzacji oparte na pythonie, które pozwala niezawodnie i wielokrotnie automatyzować zadania serwera. Oznacza to, że po wykonaniu tego samouczka będziesz mógł wdrożyć inny serwer w ten sam sposób za pomocą kilku poleceń.
Zainstaluj Ansible na swoim komputerze lokalnym lub innym serwerze.
mkdir ansible
cd ansible
virtualenv env
source env/bin/activate
pip install ansible
Ansible działa, logując się do serwera za pośrednictwem SSH. Dostęp SSH jest najbezpieczniejszy, jeśli używamy kluczy zamiast hasła. Najpierw wygenerujmy parę kluczy publiczny i prywatny.
mkdir ssh_keys
ssh-keygen -t rsa -b 2048 -f ./ssh_keys
W ssh_keys
katalogu będą teraz dwa pliki ssh_keys
i ssh_keys.pub
. ssh_keys
to plik klucza prywatnego i należy go przechowywać w bezpiecznym miejscu. Możesz teraz otworzyć ssh_keys.pub
, który zawiera klucz publiczny.
Zaloguj się do internetowego pulpitu nawigacyjnego Vultr i kliknij Deploy New Server
.
Wybierz region, typ serwera (Ubuntu 16.04), rozmiar serwera, a następnie w części 6 ( SSH keys
) kliknij Add New
. Na następnej stronie wklej swój klucz publiczny i nadaj mu nazwę, a następnie kliknij Add SSH key
. Na koniec upewnij się, że klucz jest wybrany i kliknij Deploy now
.
Po zakończeniu wdrażania serwera zostanie wyświetlony jego adres IP. Musisz zalogować się na serwerze DNS swojej domeny i skierować go na ten adres.
Pliki automatyzacji Ansible są nazywane roles
. Najpierw skonfigurujemy strukturę katalogu (w ansible
katalogu, który właśnie utworzyłeś w kroku 1) i podstawowe pliki.
mkdir -p group_vars roles/common/tasks/ roles/common/handlers
touch hosts group_vars/all deploy.yml roles/common/handlers/main.yml
Edytuj hosts
plik, aby zawierał następujące elementy, zastępując ip address
właśnie utworzony serwer. Ansible używa Pythona 2, którego Ubuntu 16.04 nie instaluje domyślnie. W hosts
pliku mówimy Ansible, aby używał Pythona 3.
[common]
192.0.2.1 ansible_python_interpreter=/usr/bin/python3
Edytuj deploy.yml
plik, aby zawierał następujące elementy. Będziemy używać root
użytkownika.
- name: apply common configuration to server
hosts: all
user: root
roles:
- common
Edytuj /group_vars/all
plik, aby zawierał następujące elementy. Zmienne te informują Ansible o lokalizacji kluczy SSH, parametrach pliku wymiany, w pełni kwalifikowanej nazwie domeny i haśle root. Pamiętaj, aby nie włączać pliku do kontroli źródła, ponieważ zawiera on hasło w postaci zwykłego tekstu.
ssh_dir: ./ssh_keys
swap_file_path: /swapfile
swap_file_size: 1G
swappiness: 1
hostname: example.com
new_password: YOUR_PASSWORD_HERE
Edytuj common/handlers/main.yml
plik, aby zawierał następujące elementy.
- name: restart sshd
service: name=ssh state=restarted
Odpowiedzialna automatyzacja jest łatwiejsza do zrozumienia, jeśli podzielimy ją na zadania. Stwórzmy pliki dla każdego z naszych zadań w tym procesie.
cd roles/common/tasks
touch hosts main.yml setup.yml users.yml ufw.yml swap.yml virtualmin.yml
main.yml
powinien wskazywać każdy plik zawierający polecenia Ansible, więc edytuj go, aby zawierał następujące elementy.
- include: setup.yml
- include: users.yml
- include: ufw.yml
- include: swap.yml
- include: virtualmin.yml
Pierwszym krokiem w konfiguracji nowego serwera jest aktualizacja pamięci podręcznej repozytoriów i ustawienie strefy czasowej. Edytuj common/handlers/setup.yml
plik, aby zawierał następujące elementy.
- apt: update_cache=yes
sudo: yes
- name: set timezone to Europe/London
timezone:
name: Europe/London
Teraz podamy użytkownikowi root hasło (które będzie potrzebne, aby uzyskać dostęp do interfejsu sieciowego virtualmin), ale wyłączymy logowanie do haseł przez SSH (ponieważ korzystamy z bezpieczniejszej metody uwierzytelniania kluczy). Edytuj, users.yml
aby zawierał następujące elementy.
- 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
Dla bezpieczeństwa potrzebujemy zapory ogniowej. Użyjemy nieskomplikowanej zapory sieciowej, aby umożliwić dostęp SSH na porcie 22
, dostęp do sieci na porcie 80
i bezpieczny dostęp do sieci na porcie 443
. Edytuj ufw.yml
plik, aby zawierał następujące elementy.
- 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
Opcjonalnie możesz dołączyć plik wymiany. Jest to niezbędne, jeśli serwer ma mniej niż 2 GB pamięci RAM, aby uniknąć awarii pamięci. Edytuj, swap.yml
aby zawierał następujące elementy.
- 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 ma własny plik instalatora, który można pobrać i uruchomić przez Ansible. Tutaj używamy minimalnej instalacji ( LINK
). Dodatkowe elementy to konfiguracja hasła do serwera MySQL, które nie jest ustawiane podczas instalacji przez Virtualmin. Musimy tymczasowo zatrzymać MySQL i dodać katalog uwierzytelniania przed zmianą hasła. Edytuj, virtualmin.yml
aby zawierał następujące elementy.
- 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
Rola Ansible została zakończona i jesteśmy gotowi do wdrożenia.
Z folderu ansible możemy teraz po prostu uruchomić następującą komendę, a Ansible wykona wszystkie zadania, które utworzyliśmy automatycznie. Przy pierwszym połączeniu pojawi się ostrzeżenie o kluczu SSH, po prostu wpisz „ yes
” w wierszu polecenia.
ansible-playbook deploy.yml --private-key=ssh_keys/ssh_keys -i hosts
Jeśli chcemy użyć innego serwera, możemy po prostu zmienić adres IP w pliku hosts i ponownie uruchomić to polecenie, aby dokończyć dokładnie tę samą konfigurację.
Instalacja jest zakończona i możemy teraz przejść do https://192.0.2.1:10000
(użyj adresu IP swojego serwera). Twoja przeglądarka wyświetli ostrzeżenie dotyczące bezpieczeństwa, ponieważ certyfikat jest samopodpisany, więc kliknij advanced
i dodaj wyjątek. Zostanie wyświetlona strona logowania. Nazwa użytkownika to root
, a hasło to hasło wprowadzone do group_vars/all
pliku w kroku 3. Przy pierwszym wejściu do Virtualmin pojawi się kreator poinstalacyjny. Możesz przejść przez te ustawienia ręcznie lub kliknąć, cancel
aby zaakceptować wartości domyślne.
Aby uruchomić pierwszy serwer Wordpress, kliknij pulpit nawigacyjny Virtualmin Create Virtual Server
. Musisz podać nazwę domeny, opis i hasło administratora. Nazwa domeny powinna różnić się od w pełni kwalifikowanej nazwy domeny Virtualmin i musisz wskazać rekord DNS adresowi IP twojego serwera.
Kliknij Create Server
. Po zakończeniu tworzenia serwera przez Virtualmin kliknij Install Scripts
menu po lewej stronie. Wybierz Wordpress
, kliknij Show install options
, a na następnej stronie wybierz lokalizację instalacji Wordpress. Po prostu wybierz At top level
i kliknij Install Now
.
To wszystko, co musisz zrobić - możesz dokończyć instalację Wordpress, odwiedzając swoją http://example.net/wp-admin/install.php
(gdzie example.net
jest ta nazwa domeny serwerów wirtualnych). Jeśli Twoje rekordy DNS nie zostały jeszcze rozpowszechnione, możesz przejść do Services > Preview Website
z menu Virtualmin.
Możesz powtórzyć ten krok wiele razy, aby utworzyć wiele witryn Wordpress na tym samym serwerze Vultr.
Neos to innowacyjny system zarządzania treścią typu open source, który doskonale nadaje się do tworzenia i edytowania treści online. Z myślą o autorach i redaktorach, Neo
Wprowadzenie WordPress to dominujący system zarządzania treścią w Internecie. Obsługuje wszystko, od blogów po złożone witryny z dynamiczną treścią
Używasz innego systemu? MODX Revolution to szybki, elastyczny, skalowalny, darmowy i open source, system zarządzania treścią dla przedsiębiorstw (CMS) napisany w
Używasz innego systemu? Ghost to platforma blogowa typu open source, która zyskuje popularność wśród programistów i zwykłych użytkowników od czasu wydania z 2013 roku. ja
Używasz innego systemu? Dotclear to bardzo prosty silnik do blogowania. Jest open source i łatwy w użyciu. W tym samouczku zostanie przeprowadzona instalacja
Używasz innego systemu? Fork to open source CMS napisany w PHP. Kod źródłowy Forks jest hostowany na GitHub. Ten przewodnik pokaże Ci, jak zainstalować Fork CM
Typesetter to CMS o otwartym kodzie źródłowym napisany w języku PHP, który koncentruje się na łatwości obsługi dzięki edycji True WYSIWYG i przechowywaniu plików płaskich. W tym artykule będziemy instalować
Ghost to najnowszy i najlepszy start w rywalizacji z WordPress. Tworzenie motywów jest szybkie i łatwe do nauczenia się, ponieważ twórcy Ghost zdecydowali się użyć obu
Używasz innego systemu? Ghost jest platformą blogową typu open source, która zyskuje popularność wśród programistów i zwykłych użytkowników od 201 lat
Używasz innego systemu? MODX Revolution to szybki, elastyczny, skalowalny, open source, system zarządzania treścią klasy korporacyjnej (CMS) napisany w języku PHP. To ja
Używasz innego systemu? MODX Revolution to szybki, elastyczny, skalowalny, darmowy i open source, system zarządzania treścią dla przedsiębiorstw (CMS) napisany w
Używasz innego systemu? Ghost jest platformą blogową typu open source, która zyskuje popularność wśród programistów i zwykłych użytkowników od 201 lat
Używasz innego systemu? Jekyll jest dobrą alternatywą dla WordPress. Nie wymaga żadnych baz danych i działa w języku znanym wielu osobom
Używasz innego systemu? Ghost jest platformą blogową typu open source, która zyskuje popularność wśród programistów i zwykłych użytkowników od 201 lat
Wprowadzenie Im bliżej domyślnej instalacji OpenBSD i bez tylu dodanych pakietów, tym bezpieczniejsze będzie. Chociaż tym bardziej przecinek
Używasz innego systemu? Ghost jest platformą blogową typu open source, która zyskuje popularność wśród programistów i zwykłych użytkowników od 201 lat
Używasz innego systemu? Fork to open source CMS napisany w PHP. Kod źródłowy Forks jest hostowany na GitHub. Ten przewodnik pokaże Ci, jak zainstalować Fork CM
Używasz innego systemu? Ghost to platforma blogowa typu open source, która zyskuje popularność wśród programistów i zwykłych użytkowników od czasu wydania z 2013 roku. ja
Używasz innego systemu? MODX Revolution to szybki, elastyczny, skalowalny, darmowy i open source, system zarządzania treścią dla przedsiębiorstw (CMS) napisany w
Używasz innego systemu? Fork to open source CMS napisany w PHP. Kod źródłowy Forks jest hostowany na GitHub. Ten przewodnik pokaże Ci, jak zainstalować Fork CM
Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.
Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.
13 komercyjnych narzędzi do ekstrakcji danych z Big Data
Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+
Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.
Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…
Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą
Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.
Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.
Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.