在FreeBSD上安装Drupal

Drupal端口在FreeBSD上已经存在了很长时间,并且二进制软件包可以非常快速地安装。 但是,需要手动设置才能将Drupal连接到数据库并让Apache服务Drupal网站。 在这篇文章中,我将描述FreeBSD 10.0上Drupal 7的设置过程。 如果使用不同版本的Drupal或FreeBSD,该过程将不会有很大的不同。

安装Drupal

Drupal端口在FreeBSD上可用,实际上,有多个版本可用:


# pkg search drupal
drupal6-6.31
[...snip...]
drupal7-7.31
[...snip...]

除非有迫不得已的理由,否则请安装最新的:

# pkg install drupal7

要成功运行Drupal,您需要:

  • Apache HTTP服务器。
  • PHP。
  • 受支持的数据库服务器(PostgreSQL或MySQL)。

但是,Drupal端口不强制执行这些依赖关系,因此您必须手动满足它们。

安装Apache HTTP服务器

除非有迫不得已的理由,否则请安装最新的可用Apache端口(在撰写本文时为apache24):

# pkg install apache24

安装端口后,启用相应的服务,将以下行添加到/etc/rc.conf中:

apache24_enable="YES"

安装数据库

Drupal支持PostgreSQL和MySQL,但是Drupal端口默认情况下不安装任何端口,尽管它安装了MySQL客户端实用程序。 在这篇文章中,将使用MySQL,但如果您更喜欢使用PostgreSQL,则跳过本节并阅读本文

由于默认情况下Drupal端口定义了MYSQL选项,因此当您使用pkg安装二进制软件包时,还将获得一个MySQL客户端端口,例如我在撰写本文时所获得的端口:

mysql55-client-5.5.40

因此,您必须安装匹配的mysqlXX-server端口:

# pkg install mysql55-server-5.5.40

如果尝试安装其他版本(在编写mysql56时可用),由于客户端和服务器MySQL软件包之间的相互依赖关系,可能会要求您删除Drupal本身。

安装完MySQL后,启用相应的服务,将以下行添加到/etc/rc.conf中:

mysql_enable="YES"

安装PHP

Drupal端口负责PHP的安装。 但是,尚未安装Apache HTTP Server的PHP模块,必须手动安装。 确保安装与Drupal端口安装的PHP版本相对应的PHP模块。 在撰写本文时,以下模块可用:

# pkg search mod_php
mod_php5-5.4.33_1,1
mod_php55-5.5.17_1
mod_php56-5.6.1

由于端口取决于php5,因此应安装mod_php5-5.4.33_1,1:

# pkg install mod_php5-5.4.33_1,1

该端口负责修改Apache HTTP Server配置文件,以便加载PHP模块。 如果您没有按照本文建议的顺序安装软件包,则可能丢失了该配置。 无论如何,请确保/usr/local/etc/apache24/httpd.conf中存在类似于以下内容的行:

LoadModule php5_module        libexec/apache24/libphp5.so

安装吸尘器

drush是一个可选软件包,提供了非常出色的命令行界面来执行许多与Drupal相关的管理任务:
甚至可以使用drush来安装Drupal,但是由于我更喜欢​​依赖在FreeBSD上经过测试的端口,因此本主题不涵盖该主题。 但是,一旦测试了特定的发行版可以正常工作,您可能会发现drush对简化安装非常有用。 如果您对使用drush感兴趣,则可以在Internet上找到很多有用的信息。 要安装drush,可以使用以下命令:

# pkg install drush

为Drupal创建数据库

必须在上一节中安装的DB服务器中创建Drupal的数据库。 MySQL端口没有为从本地主机连接的root用户设置密码; 因此,建议设置其密码(用户输入的文字以粗体显示 ):

# mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
[...snip...]
mysql> set password for root@localhost=PASSWORD('your-password')
mysql> exit
Bye

设置密码后,您可以尝试重新连接( 斜体粗体 ,应使用您选择的值更改名称的变量):

# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
[...snip...]
mysql> create database drupal_database_name;
mysql> create user 'drupal_user'@'localhost' identified by 'password';
mysql> grant all privileges on drupal_database_name.* to 'drupal_user'@'localhost' with grant option;
mysql> flush privileges;

配置Apache HTTP服务器

现在一切就绪,我们可以配置Web服务器,使其开始为Drupal Web应用程序提供服务。 要执行的任务如下

  • 配置所需的模块。
  • 配置虚拟主机以服务Drupal。
  • 为PHP配置MIME /类型。

运行Drupal所需的模块是mod_rewrite和PHP模块。 后者是通过PHP模块端口自动配置的,并且可以在/usr/local/etc/apache24/httpd.conf中取消注释以下行的方式配置后者:

LoadModule rewrite_module libexec/apache24/mod_rewrite.so

分离Drupal配置的最干净方法是为其创建虚拟主机 。 这种方法的另一个优点是Drupal将通过根路径(/)提供服务,并且您无需使用任何重写规则即可获得相同的结果。 假设主机名和将发布Drupal的端口是drupal.host.name:80,然后在/ usr / local / etc / apache24 / includes中创建一个名为drupal.conf的文件并定义虚拟主机的框架:

<VirtualHost *:80>
  ServerName drupal.host.name

  # Drupal directory configuration placeholder
  
  ErrorLog ${APACHE_LOG_DIR}/drupal-error.log
  LogLevel warn
  CustomLog ${APACHE_LOG_DIR}/drupal-access.log combined
</VirtualHost>

在FreeBSD中Apache的默认配置中,此目录中的任何.conf文件都会自动包含在内,因此不需要其他代码即可将虚拟主机添加到Web服务器配置中。 在此片段中,我使用了一个环境变量($ {APACHE_LOG_DIR})来分隔一些服务器配置变量,这些变量可以在外部脚本中重用。 要定义环境变量,必须在/usr/local/etc/apache24/envvars.d中创建一个.env文件,例如:

Drupal目录片段定义了虚拟主机的DocumentRoot以及一些必需的选项:

DocumentRoot /usr/local/www/drupal7
<Directory "/usr/local/www/drupal7">
  Options Indexes FollowSymLinks
  AllowOverride All
  Require all granted
</Directory>

必须将选项AllowOverride设置为All,以便Apache HTTP Server将Drupal附带的.htaccess文件考虑在内。 在此片段中,使用了FreeBSD端口的Drupal安装目录的路径。 如果您使用其他方法(例如drush)安装了Drupal,请相应地更新路径。

完整的虚拟主机配置文件是:

  
  
   
   
  ServerName drupal.host.name

  DocumentRoot /usr/local/www/drupal7
  
   
   
    
    
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
  
   
   

  ErrorLog ${APACHE_LOG_DIR}/drupal-error.log
  LogLevel warn
  CustomLog ${APACHE_LOG_DIR}/drupal-access.log combined

  
  

最后,必须指示Apache HTTP Server执行PHP页面中包含的PHP代码,并且这样做,我们需要为其添加MIME / type,在httpd.conf中添加以下行:

<IfModule mime_module>

  # Content has been trimmed

  # Add MIME type for PHP
  AddType application/x-httpd-php .php

</IfModule>

一旦完成所有设置,就可以重新启动Apache,并且可以将浏览器指向http://drupal.host.name/,Drupal安装向导将在其中欢迎您,并且需要您输入数据库配置和其他Drupal网站。设置。

要重新启动Apache HTTP Server,可以使用以下命令:

# service apache24 restart

在代理服务器后面配置Drupal

连接到企业网络的计算机通常不直接连接到Internet,而是需要使用Web代理服务器。 通过在$ {DRUPAL_HOME} /sites/default/settings.php中设置以下变量,可以将Drupal配置为使用Web代理服务器。 如果此文件不存在,请将文件default.settings.php(Drupal附带)复制到settings.php中。 启用代理支持的配置变量如下:

/**
 * External access proxy settings:
 *
 * If your site must access the Internet via a web proxy then you can enter
 * the proxy settings here. Currently only basic authentication is supported
 * by using the username and password variables. The proxy_user_agent variable
 * can be set to NULL for proxies that require no User-Agent header or to a
 * non-empty string for proxies that limit requests to a specific agent. The
 * proxy_exceptions variable is an array of host names to be accessed directly,
 * not via proxy.
 */
$conf['proxy_server'] = 'web-proxy';
$conf['proxy_port'] = 3128;
# $conf['proxy_username'] = '';
# $conf['proxy_password'] = '';
# $conf['proxy_user_agent'] = '';
# $conf['proxy_exceptions'] = array('127.0.0.1', 'localhost');

根据您的代理设置,可以使用不同的值。

请注意,尽管Drupal本身(核心)支持代理,但许多第三方模块仍然不支持。 在撰写本文时,一个值得注意的例外是reCaptcha模块,如果没有直接的Internet连接,它将无法工作。

设置干净的URL

最后但并非最不重要的一点是,可以启用干净的URL支持。 Drupal执行健全性检查,如果测试未通过,则不允许您启用清理URL功能。 但是,在FreeBSD上运行Drupal 7时,我发现了很多误报 :如果Clean URL测试在安装中失败,请尝试检查Clean URL是否有效,并使用Drupal官方文档中描述的解决方法,并强行启用Clean URL。

翻译自: https://www.javacodegeeks.com/2014/10/installing-drupal-on-freebsd.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值