freebsd 上安装vm
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 ServerPHP模块,必须手动安装。 确保安装与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
freebsd 上安装vm