如何在Fedora 26 LAMP VPS上安装MODX Revolution
使用其他系统?MODX Revolution是一种快速,灵活,可扩展,免费和开源的企业级内容管理系统(CMS),由
Vultr虚拟服务器的常见用法是托管Wordpress网站。本指南向您展示如何从头开始(使用Ansible)自动化虚拟服务器的配置以及如何部署多个独立的Wordpress网站(使用Webmin / Virtualmin)。Virtualmin / Webmin是一个图形用户界面,使您可以管理同一台计算机上的多个虚拟服务器帐户的部署(已完成LAMP / LEMP堆栈)。Virtualmin与cPanel和Plesk非常相似,在本教程中,我们将使用免费的GPL版本。在初始设置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 Web仪表板,然后单击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使用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
文件以包含以下内容。这些变量告诉Ansible SSH密钥,交换文件参数,完全合格的域名和root密码的位置。请记住不要将该文件包含在源代码管理中,因为它以明文形式包含您的密码。
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自动化分解为任务,则更容易理解。让我们为流程中的每个任务创建文件。
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 Web界面),但是禁用通过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
,Web访问端口80
和安全Web访问端口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
)。其他项用于配置由Virtualmin安装时未设置的MySQL服务器密码。我们需要暂时停止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
如果我们希望使用其他服务器,则只需更改hosts文件中的IP地址,然后再次运行该命令即可完成完全相同的设置。
安装完成,我们现在可以转到https://192.0.2.1:10000
(使用您服务器的IP地址)。您的浏览器将发出安全警告,因为证书是自签名的,因此请单击advanced
并添加例外。您将看到一个登录页面。用户名是root
,密码是您group_vars/all
在步骤3中输入文件的密码。第一次输入Virtualmin时,将显示安装后向导。您可以手动进行这些设置,也可以单击cancel
以接受默认设置。
要启动并运行第一台Wordpress服务器,请从Virtualmin仪表板单击Create Virtual Server
。您需要输入域名,描述和管理员密码。域名应与Virtualmin完全限定域名不同,并且您需要将DNS记录指向服务器的IP地址。
点击Create Server
。Virtualmin完成创建服务器后,单击Install Scripts
左侧菜单。选择Wordpress
,单击Show install options
,然后在下一页上选择Wordpress安装的位置。只需选择At top level
并单击Install Now
。
这就是您需要做的-您可以通过访问您的http://example.net/wp-admin/install.php
(example.net
此虚拟服务器域名在哪里)来完成Wordpress的安装。如果您的DNS记录尚未传播,则可以Services > Preview Website
从Virtualmin菜单转到。
您可以多次重复此步骤,以在同一Vultr服务器上全部创建多个Wordpress网站。
使用其他系统?MODX Revolution是一种快速,灵活,可扩展,免费和开源的企业级内容管理系统(CMS),由
Ghost是与WordPress竞争的最新,最大的暴发户。主题开发既快速又容易学习,因为Ghost开发人员决定同时使用
使用其他系统?Ghost是一个开放源代码博客平台,自201年以来一直在开发人员和普通用户中广受欢迎。
使用其他系统?Fork是用PHP编写的开源CMS。Forks源代码托管在GitHub上。本指南将向您展示如何安装Fork CM
使用其他系统?Ghost是一个开放源代码博客平台,自201年以来一直在开发人员和普通用户中广受欢迎。
Typesetter是一个用PHP编写的开源CMS,专注于True WYSIWYG编辑和平面文件存储的易用性。在本文中,我们将安装
使用其他系统?Dotclear是一个非常简单的博客引擎。它是开源的,易于使用。本教程将通过以下方式进行安装
使用其他系统?MODX Revolution是一种快速,灵活,可扩展,免费和开源的企业级内容管理系统(CMS),由
简介WordPress是互联网上占主导地位的内容管理系统。它通过动态内容为从博客到复杂网站的一切提供支持
使用其他系统?MODX Revolution是一种快速,灵活,可扩展,免费和开源的企业级内容管理系统(CMS),由
使用其他系统?Fork是用PHP编写的开源CMS。Forks源代码托管在GitHub上。本指南将向您展示如何安装Fork CM
Neos是一种创新的开源内容管理系统,非常适合创建和编辑在线内容。考虑到作者和编辑,Neo
使用其他系统?Dotclear是一个非常简单的博客引擎,已在PHP之上构建。在本教程中,我们将在Ubunt上安装Dotclear
使用其他系统?MODX Revolution是一种快速,灵活,可扩展,免费和开源的企业级内容管理系统(CMS),由
使用其他系统?自2013年发布以来,Ghost是一个开源博客平台,在开发人员和普通用户中越来越受欢迎。一世
使用其他系统?Ghost是一个开放源代码博客平台,自201年以来一直在开发人员和普通用户中广受欢迎。
使用其他系统?Fork是用PHP编写的开源CMS。Forks源代码托管在GitHub上。本指南将向您展示如何安装Fork CM
使用其他系统?自2013年发布以来,Ghost是一个开源博客平台,在开发人员和普通用户中越来越受欢迎。一世
使用其他系统?Jekyll是WordPress的不错替代品。它不需要任何数据库,并且可以使用许多人熟悉的机智语言
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。
Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+
閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。
最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息
大數據的13個商業數據提取工具
我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true
隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。
洞察 26 種大數據分析技術:第 1 部分
過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。