在Ubuntu上的Multisite CVS Drupal安装

Ubuntu上的多站点CVS Drupal安装

介绍

这个howto向您展示了如何在Ubuntu上进行多站点Drupal安装。 它还介绍了如何布局您的目录以便于维护,以及如何确保您可以从CVS轻松更新Drupal。

为什么要去这一切呢? 为什么不使用sudo aptitude install drupal安装Drupal ? 答案是,随着您的网站越来越受欢迎,您将需要保持最新的安全修补程序,以及管理您安装的所有自定义模块。 另外,将一个网站作为您的主要网站,第二个可以测试新的Drupal功能,模块或想法是很好的。 谁知道,在你的第一个成功的网站之后,你可能想要一个第二个和第三个(我知道我做的),所以让我们从第一天变得容易。

我在从VMWare Appliances Directory下载的Ubuntu Edgy Desktop VMWare映像上开发和测试了这个方法 - 它也应该在其他版本的Ubuntu和Debian上工作(稍作改动)。

配置DNS

我们将为www.example.comwww2.example.com创建网站(更改这些域名以满足您的需求)。 让我们配置DNS,以便您可以立即开始开发 - 您可以稍后设置绑定并注册您的网站。

输入以下命令:

sudo bash
echo "127.0.0.1 www.example.com www2.example.com" >> /etc/hosts
exit

检查这是否使用ping命令 - 您应该从localhost(127.0.0.1)回复:

$ ping -c 2 www.example.com
PING www.example.com (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.035 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.036 ms

--- www.example.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.035/0.035/0.036/0.006 ms

安装软件包

sudo aptitude install apache2-mpm-prefork mysql-server php5-mysql cvs
这个命令可能看起来很小,但是它会安装很多其他软件包 - 这是正常现象。

该命令可能导致postfix邮件服务器被安装 - 如果是,请在菜单中选择“否配置”(除非您也要设置邮件服务器)。

测试Apache2 / PHP安装

测试Apache2通过打开您最喜爱的Web浏览器并导航到http:// localhost来安装OK 。 您应该看到一个页面,其中显示“索引/”,连同apache2默认的链接。 点击此链接将带您到一个网页,说“如果可以看到这一点,这意味着安装...”。

要测试php已经安装好了,创建一个新的网页:

sudo vi /var/www/apache2-default/index.php

将以下内容放在页面中,保存并退出:

hello php world
<?php phpinfo(); ?>

浏览到http://localhost/apache2-default/index.php 。 你应该看到一个网页上显示“hello php world”的第一行,然后页面的php5调试信息。 如果Firefox提示您下载php文件而不是显示它,请重新启动Apache以强制php运行 - sudo /etc/init.d/apache restart

我们不再需要默认网站了,所以让我们把它移到我们的主目录,而不是删除它(如果将来我们需要它):

cd
sudo mv /var/www/apache2-default .

测试MySQL安装

测试MySQL已经通过打开命令提示符并键入:

$ mysql
mysql> use mysql;
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
...
| user |
+---------------------------+
17 rows in set (0.00 sec)
mysql> \q

如果失败,请确保mysql正在运行:

$ sudo /etc/init.d/mysql restart

我们还应该通过为root设置密码来保护MySQL:

$ mysql
mysql> SET PASSWORD=PASSWORD('supersecret')
mysql> flush privileges;
mysql> \q

检查您的新密码:

$ mysql -u root -p

使用CVS安装Drupal

正如我在介绍中所说,我们将使用cvs安装Drupal,而不是下载软件包或.tgz文件。 这样做有几个好处:

  • 您可以更轻松地应用安全修补程序,而不是手动下载修补程序,并且通常在发布之前。
  • 您可以更轻松地升级到下一个版本。
  • 因为所有的cvs元数据都包含在内,所以您可以轻松地处理更改和上游更改之间的冲突(除非您知道自己在做什么,否则不要修改Drupal核心代码) - 调查模块钩子和模板。
  • 您下载的所有模块 - 您也可以轻松升级。

我们来做安装:

cd /var/www
sudo cvs -d:pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal checkout \
-r DRUPAL-5 -d drupal drupal

这里的关键选项是-d drupal 。 这指定目标安装目录 - 将其更改为安装到不同的目录。 另外,请注意,您可以从一个drupal安装运行多个网站 - 通常不需要在同一台服务器上多次安装drupal。

CVS更新

下一步是测试查看和获取最新的CVS更新。 为了使您以后更容易获得更新,我们将创建一些批处理文件:

cd
echo "cd /var/www/drupal; cvs -d:pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal -nq update -dP" >> show_changes.sh
echo "cd /var/www/drupal; cvs -d:pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal update -dP" >> get_changes.sh
chmod u+x show_changes.sh get_changes.sh
./show_changes
sudo ./get_changes

有关使用CVS与Drupal的更多信息 ,请参阅使用CVS维护Drupal网站Ximbiot CVS文档

创建其他目录

我们创建一些目录来存储我们的工作:

sudo bash
cd /var/www/drupal/sites
mkdir -p all/modules
echo "put modules (for all sites) here" >> all/modules/readme.txt
mkdir -p all/themes/{engines,custom,drupal-contrib}
echo "put theme engines here (smarty, etc)" >> all/themes/engines/readme.txt
echo "put downloaded themes (for all sites) here" >> all/themes/drupal-contrib/readme.txt
echo "put customised themes (for all sites) here" >> all/themes/custom/readme.txt
exit

我们还自定义默认的站点目录,因为我们将使用它作为新站点的模板:

sudo bash
cd /var/www/drupal/sites
mkdir -p default/modules
echo "put modules (this site only) here" >> default/modules/readme.txt
mkdir -p default/themes/{custom,drupal-contrib}
echo "put downloaded themes (this site only) here" >> default/themes/drupal-contrib/readme.txt
echo "put customised themes (this site only) here" >> default/themes/custom/readme.txt
exit

现在,如果您运行我们之前创建的cvs更新脚本,您将看到这些目录中的任何内容都不会被覆盖,但任何更改都将被下载。

创建Drupal站点

为两个站点创建Web目录:

sudo bash
cd /var/www/drupal/sites
cp -a default www.example.com
cp -a default www2.example.com
exit

下一步是创建mysql数据库。 在这些步骤中, wwwdbwww2db是网站的数据库, wwwuserwww2user是Drupal在访问MySQL时使用的帐户,密码是每个用户的密码:

mysqladmin -u root -p create wwwdb
mysqladmin -u root -p create www2db
mysql -u root -p
mysql> use wwwdb;
mysql> grant all on wwwdb to 'wwwuser'@'localhost' identified by 'password';
mysql> use www2db;
mysql> grant all on www2db to 'www2user'@'localhost' identified by 'password';
mysql> flush privileges;
mysql> \q

我们现在需要配置Apache来提供这两个网站。 第一步是允许同一台服务器上的多个网站(虚拟网站):

sudo bash
cd /etc/apache2
echo "NameVirtualHost *" > conf.d/virtual
echo "ServerName 127.0.0.1" >> conf.d/virtual

然后,编辑“默认”配置文件,因此可以在多站点服务器上用作模板:

vi sites-available/default

从文件sites-available / default的第1行中删除命令“NameVirtualHost *”; 要收紧安全性,删除cgi-bin和doc ScriptAlias和Directory,将“ServerSignature”更改为“Off”; 还可以更改ServerAdmin的电子邮件地址,并可选择删除任何注释; 将/ var / www中的任何引用更改为/ var / www / drupal

完成后, 站点可用/默认文件应如下所示:

  
   
        ServerAdmin serveradmin@example.com
        DocumentRoot /var/www/drupal
        
   
    
                Options FollowSymLinks
                AllowOverride None
        
   
        
   
    
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        
   
        ErrorLog /var/log/apache2/error.log
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined
        ServerSignature Off

    

使用默认文件作为模板,将其复制并设置所需的链接:

sudo bash
cd /etc/apache2/sites-available
cp default www
cp default www2
cd ../sites-enabled
rm 000-default
ln -s ../sites-available/www 001-www
ln -s ../sites-available/www2 002-www
/etc/init.d/apache2 restart
exit

配置Drupal

最后一步是首次运行Drupal并进行配置。 您需要暂时放宽文件settings.php的权限 (不要太久这样):

sudo bash
cd /var/www/drupal/sites/www.example.com
chmod a+w settings.php
exit

打开您的网络浏览器,并浏览到http://www.example.com 。 您应该得到Drupal配置页面 - 一个大型drupal图标左上方的网页和标题“数据库配置”。 填写这些设置并提交它们:

  • 数据库类型: mysql
  • 数据库名称: wwwdb
  • 数据库用户名: wwwuser
  • 数据库密码: 密码

一个网页现在应该说“Drupal安装完成”; 正如网页所说,我们需要收紧settings.php的权限

sudo bash
cd /var/www/drupal/sites/www.example.com
chmod go-w settings.php
exit

按照链接到您的新网站,然后按照说明设置您的新Drupal网站。 重复在www2上的“配置Drupal”中的所有说明来设置第二个网站。

恭喜,你现在已经完成了!

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏