Concrete5是一个用PHP编写的免费开源内容管理系统(CMS)。Conceret5用于部署功能强大的Internet和Intranet网站,类似于流行的Joomla或Drupal CMS。

在本教程中,我们将学习如何在Debian 9发行版上安装和配置最新版本的Concrete5平台。

要求

  • 在裸机服务器上或虚拟专用服务器上安装的Debian 9。
  • root权限。
  • 为您的系统网络接口卡之一配置的静态IP地址
  • 取决于您的部署的私有或公共域名,并为Web服务配置了正确的DNS记录。如果您没有有效或未注册的域名,则可以执行安装并通过服务器IP地址访问网站。
  • 要使用网站注册,通知或其他CMS功能,您应该具有运行中的邮件服务器。

准备服务器

在服务器上开始安装Concrete5之前,必须确保系统满足编译和安装应用程序的所有软件要求。在第一步中,通过发出以下命令来更新系统存储库和软件包。

apt update

apt upgrade

在下一步中,执行以下命令以安装一些必要的实用程序,这些实用程序将用于从命令行进一步管理系统。

apt install wget bash-completion curl zip unzip

设置服务器主机名

在系统完全更新并安装了必需的实用程序之后,通过执行以下命令来配置系统的主机名。相应地替换您的主机名变量,在本示例中,我将使用www.myblog.com。

hostnamectl set-hostname www.myblog.com

通过发出以下命令来验证计算机主机名。

hostname –f

最后,重新启动Debian服务器以应用内核更新,并且主机名正确更改。

init 6

安装Apache和PHP

Concrete5是一个用PHP服务器端编程语言编写的基于Web的CMS平台。为了执行应用程序的PHP文件脚本,必须在系统中安装Web服务器(例如Apache HTTP服务器)和PHP处理网关。为了将Apache Web服务器和PHP解释器与所有必需的PHP模块一起安装,请在服务器控制台中发出以下命令。

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-opcache php-imagick php7.0-xml php7.0-gd php7.0-mbstring php7.0-mcrypt php7.0-zip php7.0-curl

安装Apache和PHP之后,测试Web服务器是否已启动并正在运行。

netstat –tlpn

如果您的Debian系统默认未安装netstat network实用程序,请执行以下命令进行安装。

apt install net-tools

通过检查netstat命令输出,您可以看到Apache Web服务器正在侦听端口80上的传入网络连接。

防火墙配置

如果在服务器上启用了防火墙(例如UFW防火墙应用程序),则应添加新规则以通过发出以下命令来允许HTTP通信通过防火墙。

ufw allow WWW

如果您使用iptables原始规则来管理防火墙,请添加以下规则,以允许防火墙上的端口80入站流量,以便访问者可以浏览网站。

apt-get install -y iptables-persistent

iptables -I INPUT -p tcp –destination-port 80 -j ACCEPT

iptables -I INPUT -p tcp –destination-port 22 -j ACCEPT

netfilter-persistent save

systemctl restart netfilter-persistent

systemctl status netfilter-persistent

systemctl enable netfilter-persistent.service

配置Apache Web服务器

接下来,启用Apache重写模块。

a2enmod rewrite

systemctl restart apache2

最后,通过HTTP协议访问Debian机器的IP地址或域名或服务器FQDN,测试Apache Web服务器默认网页是否可以在客户端的浏览器中显示,如下图所示。如果您不知道计算机的IP地址,请执行ifconfigip命令以显示服务器的IP地址。

http://your_domain.tld

Debian默认页面

为了通过HTTPS协议安装和访问Concrete5,它将为您的客户端保护流量,请发出以下命令来启用Apache Web服务器SSL模块和SSL站点配置文件。

a2enmod ssl

a2ensite default-ssl.conf

接下来,使用文本编辑器打开Apache默认的SSL站点配置文件,并通过在DocumentRoot指令之后添加以下代码行来启用URL重写规则,如以下示例所示:

nano /etc/apache2/sites-enabled/default-ssl.conf

SSL站点配置文件摘录:

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

另外,对VirtualHost行进行以下更改,使其看起来像下面的摘录所示:

<VirtualHost *:443>
配置apache重写规则

关闭SSL Apache文件,然后打开/etc/apache2/sites-enabled/000-default.conf文件进行编辑。添加与SSL配置文件相同的URL重写规则。如下例所示,在DocumentRoot语句之后插入代码行。

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>
配置apache默认配置文件

最后,重新启动Apache守护程序以应用到目前为止配置的所有规则,并通过HTTP协议访问您的域。由于您使用的是安装时由Apache颁发的自动自签名证书对,因此浏览器不信任该证书,因此应在浏览器中显示错误警告。

systemctl restart apache2

https://yourdomain.tld

浏览器中显示的SSL警告

接受警告以接受不受信任的证书,然后继续重定向到Apache默认网页,如下图所示。

可通过安全的HTTPS协议访问Apache

如果UFW防火墙应用程序阻止与HTTPS端口的传入网络连接,则应通过发出以下命令来添加新规则,以允许HTTPS通信通过防火墙。

ufw allow ‘WWW Full’

如果iptables是为在网络级别保护Debian系统而安装的默认防火墙应用程序,请添加以下规则以允许防火墙中的端口443入站流量,以便访问者可以浏览您的域名。

iptables -I INPUT -p tcp –destination-port 443 -j ACCEPT

netfilter-persistent save

systemctl restart netfilter-persistent

systemctl status netfilter-persistent

配置PHP

在下一步中,我们需要对PHP默认配置文件做进一步的更改,以确保启用以下PHP变量,并且正确配置了PHP 时区设置并与您的系统地理位置匹配。打开/etc/php/7.0/apache2/php.ini文件进行编辑,并确保按以下步骤设置了以下几行。另外,首先,请备份PHP配置文件。

cp /etc/php/7.0/apache2/php.ini{,.backup}

nano /etc/php/7.0/apache2/php.ini

php.ini配置文件中搜索,编辑和更改以下变量:

file_uploads = On
memory_limit = 128M
max_execution_time = 1800
upload_max_filesize = 100M
date.timezone = Europe/London

通过参考以下链接http://php.net/manual/en/timezones的 PHP文档提供的时区列表,增加upload_max_file_size变量以适合支持大文件附件,并根据您的实际时间替换date.timezone变量。.php

如果要通过可用于PHP7的OPCache插件提高网站页面的加载速度,请在PHP解释器配置文件底部的[opcache]行下方附加以下OPCache设置,如下所述:

[opcache]
opcache.enable=1 
opcache.enable_cli=1 
opcache.interned_strings_buffer=8 
opcache.max_accelerated_files=10000 
opcache.memory_consumption=128 
opcache.save_comments=1
opcache.revalidate_freq=1

完成上述所有更改后,请发出以下命令,重新启动apache守护程序以应用新更改。

systemctl restart apache2

最后,通过执行以下命令来创建PHP信息文件,并检查PHP时区是否正确。如下图所示,从Web浏览器中打开PHP信息脚本URL。向下滚动到日期设置以检查php时区配置。

echo ‘<?php phpinfo(); ?>’| tee /var/www/html/info.php

https://yourdomain.tld/info.php

PHP信息输出

安装MariaDB数据库服务器

Concrete5 CMS Web将用户,会话,文章和其他数据存储在数据库中。在本指南中,我们将配置Concrete5 CMS以使用MariaDB数据库作为后端。发出以下命令来安装MariaDB数据库和访问数据库所需的PHP模块。

apt install mariadb-server php7.0-mysql mariadb-client

安装MariaDB之后,通过运行netstat命令验证守护程序是否正在运行,并在本地主机的端口3306上侦听连接。

netstat –tlpn | grep mysql

然后,通过发出以下命令登录到MySQL控制台并保护MariaDB根帐户。

mysql -h localhost

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

MariaDB [(none)]> use mysql;

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

MariaDB [mysql]> update user set plugin=” where user=’root’;

Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [mysql]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> exit

Bye

下一步,通过执行脚本mysql_secure_installation来保护MariaDB  。在运行时,脚本将询问一系列旨在保护MariaDB数据库的问题,例如:更改MySQL超级用户密码,删除匿名用户,禁用远程超级用户登录并删除测试数据库。通过发出以下命令来执行脚本,并确保对所有询问的问题都键入yes,以完全保护MySQL守护程序。除指导外,使用以下脚本输出。

mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB

      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we’ll need the current

password for the root user.  If you’ve just installed MariaDB, and

you haven’t set the root password yet, the password will be blank,

so you should just press enter here.

Enter current password for root (enter for none):

OK, successfully used password, moving on…

Setting the root password ensures that nobody can log into the MariaDB

root user without the proper authorisation.

You already have a root password set, so you can safely answer ‘n’.

Change the root password? [Y/n] y

New password:

Re-enter new password:

Password updated successfully!

Reloading privilege tables..

 … Success!

By default, a MariaDB installation has an anonymous user, allowing anyone

to log into MariaDB without having to have a user account created for

them.  This is intended only for testing, and to make the installation

go a bit smoother.  You should remove them before moving into a

production environment.

Remove anonymous users? [Y/n] y

 … Success!

Normally, root should only be allowed to connect from ‘localhost’.  This

ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y

 … Success!

By default, MariaDB comes with a database named ‘test’ that anyone can

access.  This is also intended only for testing, and should be removed

before moving into a production environment.

Remove test database and access to it? [Y/n] y

 – Dropping test database…

 … Success!

 – Removing privileges on test database…

 … Success!

Reloading the privilege tables will ensure that all changes made so far

will take effect immediately.

Reload privilege tables now? [Y/n] y

 … Success!

Cleaning up…

All done!  If you’ve completed all of the above steps, your MariaDB

installation should now be secure.

Thanks for using MariaDB!

为了测试MariaDB安全性,请尝试从控制台使用没有root密码的数据库登录。如果没有为根帐户提供密码,则应拒绝对数据库的访问,如以下命令摘录所示:

mysql -h localhost -u root

ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)

如果提供了密码,则应将登录过程授予MySQL控制台,如命令样本所示:

mysql -h localhost -u root -p

Enter password:

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 15

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

MariaDB [(none)]> exit

Bye

接下来,登录MariaDB数据库控制台,为Concrete5应用程序创建一个数据库,并为用户创建一个密码,该密码将用于管理应用程序数据库。相应地替换数据库名称,用户和密码。

mysql –u root -p

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

MariaDB [(none)]> create database concrete_db;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on concrete_db.* to ‘cuser’@’localhost’ identified by ‘password1234’;

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit

Bye

In order to apply all changes, restart MySQL and Apache daemons and verify if daemons are running by issuing the following commands.

systemctl restart mysql apache2
systemctl status mysql apache2

安装Concrete5 CMS

满足所有系统要求后,请访问Concrete5下载页面,网址http://www.concrete5.org/download,  并通过发出以下命令将最新的zip存档下载到您的系统中。

cd /tmp
wget https://core-releases.s3-us-west-2.amazonaws.com/9815/1317/5540/concrete5-8.3.0.zip

zip存档下载完成后,将Concrete5 zip存档解压缩到当前工作目录,并通过发出以下命令列出提取的文件。另外,将Apache Web服务器安装的默认index.html文件删除到webroot路径,并删除之前创建的info.php文件。

unzip concrete5-8.3.0.zip

rm /var/www/html/index.html

rm /var/www/html/info.php

对于Concrete5安装文件位于当前工作目录concrete5-8.3.0目录。发出ls命令以列出此目录文件。

ls concrete5-8.3.0

通过发出以下命令,将Concrete5提取目录的所有内容复制到Web服务器文档的根路径。

cp -fr concrete5-8.3.0/* /var/www/html/

接下来,执行以下命令,以向Apache运行时用户授予对Web根路径的完全写入权限。使用ls命令列出位于/ var / www / html /目录中的应用程序已安装文件的权限。

chown -R www-data:www-data /var/www/html/

ls –al /var/www/html/
设置文件权限

通过打开浏览器并通过HTTPS协议导航到服务器的IP地址或域名,继续进行Concrete5安装过程。在第一个安装屏幕上,Concrete5安装程序将要求您选择语言。从列表中选择适当的语言,然后单击右箭头按钮以开始安装过程,如以下屏幕截图所示。

https://yourdomain.tld

选择安装语言

现在,安装程序将检查安装环境,以检测是否满足安装应用程序的所有要求。如果所有必需项和可选项均为绿色,请单击下面的“ 继续安装”按钮,继续进行下一步,如下图所示。

检查系统需求

在下一个安装屏幕中,为您的网站选择一个名称,为管理员帐户添加您的电子邮件地址和一个强密码。选择“ 完整站点”作为起点,并提供MySQL数据库服务器地址(如果数据库安装在同一节点上,则通常为localhost),访问Concrete5数据库所需的用户名和密码以及为Concrete5安装创建的数据库名称。写入所有必需的数据库信息后,单击“ 安装Concrete5”按钮以移至下一个安装屏幕。使用以下屏幕截图作为此步骤的指南。

配置数据库和网站详细信息

等待安装过程完成,如下面的屏幕截图所示。

等到安装了Concrete5

在完成Concrete5的安装过程后,单击“ 编辑您的站点”按钮以开始设置您的网站。

安装完成

首先,您将被重定向到Concrete5 CMS的主屏幕,在该屏幕上会弹出一个窗口,显示帮助页面,从中您将学习管理应用程序的基础知识。

帮助页面

为了进一步配置Concrete5 CMS,请点击右上角的按钮以打开应用程序仪表板,从中可以设置博客,如下面的屏幕快照所示。

Concrete5仪表板

为了访问您的网站前端,请通过HTTPS协议导航到您的服务器IP地址或域名,如以下示例所示,并且Concrete5网站的主页应显示在浏览器中。

https://yourdomain.tld

已安装Concrete5网站

要访问Concrete5管理仪表盘面板,请通过HTTPS协议导航到/index.php/login URL的服务器IP地址或域名。提供在安装过程中为您的网站创建的管理员帐户用户名和密码,以便登录到Concrete5 CMS仪表板。

https://yourdomain.tld/index.php/login

登录CMS

为了保护Concrete5 CMS,请返回服务器控制台并执行以下命令,以仅向应用程序文件的某些特定部分授予Apache HTTP服务器写权限。

chown -R root /var/www/html/
chown -R www-data /var/www/html/application/files/
chown -R www-data /var/www/html/application/config/
chown -R www-data /var/www/html/packages/
chown -R www-data /var/www/html/updates/
chown -R root:root /var/www/html/application/config/database.php

最后,为了强制访问者浏览网站并通过HTTPS协议安全地访问后端接口,该协议对服务器和客户端浏览器之间的通信进行加密,请返回服务器的终端,并通过发出以下命令在网站文档根路径中创建.htaccess文件下面的命令。

nano /var/www/html/.htaccess

编辑.htaccess文件。您可以在文件底部使用以下配置更改本机PHP服务器设置。修改PHP设置以匹配您自己的服务器资源和配置。

.htaccess文件摘录:

# Modify PHP settings
php_value session.use_trans_sid 0
php_value register_globals 1
php_value upload_max_filesize 100M
php_value post_max_size 100M

最后,在.htaccess文件中添加以下规则,以自动将域流量重定向到HTTPS并禁用webroot目录索引。

# Redirect to HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
Options -Indexes
</IfModule>

就这样!您已在Debian 9服务器上成功安装并配置了Concrete5 CMS平台。但是,由于Apache HTTP服务器使用自签名证书来加密服务器与访问者的浏览器之间的通信,因此将始终生成警告消息并在其浏览器中显示警告消息。此警告不利于您的网站声誉和SEO。在这种情况下,您应该购买由受信任的证书颁发机构颁发的证书,或者从Let’s Encrypt CA获得免费的证书对。

链接

有关Concrete5的其他自定义配置,请访问以下地址的文档页面:https :  //documentation.concrete5.org/

如何在Debian 9上安装Concrete5 CMS
Tagged on:     

发表评论

电子邮件地址不会被公开。 必填项已用*标注