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.com
和www2.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数据库。 在这些步骤中, wwwdb
和www2db
是网站的数据库, wwwuser
和www2user
是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”中的所有说明
来设置第二个网站。
恭喜,你现在已经完成了!