如何在CentOS 7上安装MODX CMS和Nginx

MODX是一个用PHP编写的免费开放源内容管理系统。它使用MySQL或MariaDB来存储其数据库。MODX专为维护网站至关重要的业务而设计。它为开发人员提供了灵活性,使其可以通过选择自己的设计和结构来创建网站。它还具有WYSIWYG针对企业中非技术用户的编辑器。除了灵活之外,还可以对其进行优化以实现极快的速度。

本教程是为MODX 2.6.1编写的,也可能适用于新版本。

先决条件

  • Vultr CentOS 7服务器实例。
  • 一个sudo的用户
  • 指向实例的域名。

在本教程中,我们将使用modx.example.com指向Vultr实例的域名作为域名。请确保将所有示例域名都替换为实际的示例域名。

使用指南如何更新CentOS 7更新基本系统。系统更新后,继续安装依赖项。

安装Nginx

Nginx是运行Web应用程序的生产Web服务器。安装Nginx。

sudo yum -y install epel-release
sudo yum -y install nginx

启动Nginx并使其在启动时自动运行。

sudo systemctl start nginx
sudo systemctl enable nginx

安装PHP 7.2

MODX支持5.4以上的所有PHP版本。我们将安装最新版本的PHP。使用PHP 7.2将确保最高的速度和安全性。由于默认YUM版本库中没有可用的PHP版本7.2,因此添加并启用了Remi版本库。

sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install yum-utils
sudo yum-config-manager --enable remi-php72

安装PHP 7.2版以及MODX所需的模块。

sudo yum -y install php php-zlib php-mysqli php-curl php-json php-cli php-pear php-gd php-openssl php-xml php-mbstring php-fpm ImageMagick

编辑加载的PHP配置文件。

sudo nano /etc/php.ini

查找以下行。取消注释并设置适当的时区。

date.timezone = Asia/Kolkata
;Replace "Asia/Kolkata" with your appropriate time zone

另外,在下一行设置适当的内存限制。设置为-1将为脚本提供无限的可用内存。

memory_limit = -1

接下来,找到以下行,并0取消注释后将其值设置为。

cgi.fix_pathinfo=0

保存文件并打开php-fpm配置文件。

sudo nano /etc/php-fpm.d/www.conf

找到现有的listen = 127.0.0.1:9000,对其进行注释,然后添加新行,如下所示。

;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php-fpm.sock

另外,如下所示更改用户。

listen.owner = nginx
listen.group = nginx

...

user = nginx
group = nginx

保存文件并启动,php-fpm并使它能够在启动时自动启动。

sudo systemctl restart php-fpm
sudo systemctl enable php-fpm

提供对会话目录的写入权限。

sudo mkdir /var/lib/php/session
sudo chmod -R 777 /var/lib/php/session

现在,继续安装MariaDB。

安装MariaDB

MariaDB是MySQL的分支。将MariaDB存储库添加到您的系统。默认YUM存储库包含旧版本的MariaDB。

echo "[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1" | sudo tee /etc/yum.repos.d/mariadb.repo

安装MariaDB。

sudo yum -y install mariadb mariadb-server

启动MariaDB并使它能够在启动时自动启动。

sudo systemctl start mariadb
sudo systemctl enable mariadb

在配置数据库之前,您需要保护MariaDB安全。

sudo mysql_secure_installation

系统将要求您输入当前的MariaDB根密码。默认情况下,全新的MariaDB安装中没有root密码。按“ Enter”键继续。root为您的MariaDB服务器的用户设置一个强密码,并回答Y所有其他问题。提出的问题是不言自明的。

以root用户身份登录MySQL Shell。

mysql -u root -p

提供MariaDB root用户登录的密码。

运行以下查询以为MODX安装创建数据库和数据库用户。

CREATE DATABASE modx_data CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'modx_user'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON modx_data.* TO 'modx_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

您可以根据自己的选择替换数据库名称modx_data和用户名modx_user。请确保更改StrongPassword为非常安全的密码。

安装MODX

下载MODX zip存档。

wget https://modx.com/download/direct?id=modx-2.6.1-pl.zip -O modx.zip

您始终可以在MODX下载页面上找到该应用程序最新版本的链接。

安装解压缩。

sudo yum -y install unzip

将档案解压缩到Nginx的webroot目录中。

sudo unzip modx.zip -d /usr/share/nginx/

更改目录名称。

cd /usr/share/nginx/
sudo mv modx-*/ modx/

另外,将ht.access文件重命名为.htaccess

sudo mv /usr/share/nginx/modx/ht.access /usr/share/nginx/modx/.htaccess

创建一个会话缓存目录,并将所有权提供给nginx用户。

sudo mkdir /usr/share/nginx/modx/core/cache
sudo chown nginx:nginx /usr/share/nginx/modx/core/cache

最后,创建一个空的配置文件并提供适当的权限。

sudo touch /usr/share/nginx/modx/core/config/config.inc.php
sudo chown -R nginx:nginx /usr/share/nginx/

允许端口80443防火墙上的流量。

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload

创建虚拟主机

要托管您的MODX站点,请创建一个新的虚拟主机。

sudo nano /etc/nginx/conf.d/modx.example.com.conf

填充文件。

server {
        listen 80;
        server_name modx.example.com;
        root /usr/share/nginx/modx;
        index index.php;
        client_max_body_size 30M;
        location / {
                root /usr/share/nginx/modx;
                if (!-e $request_filename) {
                        rewrite ^/(.*)$ /index.php?q=$1 last;
                }
        }
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(.*)$;
                fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include fastcgi_params;
                fastcgi_ignore_client_abort on;
                fastcgi_param  SERVER_NAME $http_host;
        }

        location ~ /\.ht {
                deny  all;
        }
}

测试Nginx Web服务器配置。

sudo nginx -t

您将看到以下输出。

[user@vultr nginx]$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

如果您在配置中没有看到错误,请重新启动Nginx,以使新配置生效。

sudo systemctl restart nginx

包起来

在访问安装之前,您将需要通过Web安装程序完成安装。在上访问基于Web的安装http://modx.example.com/setup。您将看到一个用于更改安装语言的界面。

根据您的喜好选择语言,然后在下一页上选择“ New Installation”选项。在下一页上,提供您的MySQL或MariaDB数据库凭据并创建一个新的管理员帐户。最后,单击“ Install”按钮,安装程序会将其数据写入数据库。

至此,您已经准备好从管理仪表板创建网站。



Leave a Comment

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息