经过前面对composer的安装和调试,我们终于可以用www-data用户的身份运行Composer来管理Drupal文件了。
虽然有好几种办法使用composer来安装Drupal,但是现在Drupal官方推荐的方法却只有一种,那就是使用drupal/recommended-project这个composer模版。
注意,在Drupal 8.8.0之前,官方推荐的composer模版是drupal-composer/drupal-project,但随着Drupal 8.8.0的发布,官方支持的composer模版就变成drupal/recommended-project了。如果你现在看到网上其他的教程还是让你使用drupal-composer/drupal-project,那就过时了。当然你也可以根据自己的服务器配置和自己的熟悉习惯来选择合适的composer方案。
我们来看一下使用官方推荐的Composer模版drupal-composer/drupal-project安装Drupal和其他模版来安装Drupal有什么区别:
如果使用drupal-composer/drupal-project模版安装,你将:
- 不需要手动编辑composer的JSON配置文件
- 把程序统一安装到web子目录
如果不使用drupal-composer/drupal-project模版安装,你可以:
- 只安装你想要安装的部分
- 把程序安装到你想要的路径下,比如wwwroot,www,html,app等目录
下面我们使用drupal/recommended-project模版进行默认安装。
使用默认模版安装,会把最新版的drupal/recommended-project项目下载到你的项目文件夹里,这里我们以”my_site_name_dir“为例进行说明。这个文件夹里,将会存放一些不应该放在网站根目录里的文件,比如composer.json, bash脚本还有一些Vendor文件夹,这些文件都是不能被网站服务器进程访问的。而我们用到的网站文件,则统一放置在”my_site_name_dir/web“目录里。然后composer会自动运行composer install来下载最新版的Drupal和它依赖的库文件(不需要你手动运行composer install)。
执行composer命令前,切换到www-data用户,并切换到Apache默认的网站目录/var/www/html,我们将在这里创建一个新的目录my_site_name_dir作为新项目的文件夹:
sudo su - www-data -s /bin/bash cd /var/www/html
然后就可以使用composer create-project创建项目了,这个命令有很多选项,一般来说使用默认选项就可以了:
composer create-project drupal/recommended-project my_site_name_dir
终端上会有很长一大串的输出:
composer create-project drupal/recommended-project my_site_name_dir Creating a "drupal/recommended-project" project at "my_site_name_dir" Installing drupal/recommended-project (8.8.4) - Installing drupal/recommended-project (8.8.4): Downloading (100%) Created project in /var/www/html/my_site_name_dir Loading composer repositories with package information Installing dependencies (including require-dev) from lock file Package operations: 56 installs, 0 updates, 0 removals - Installing drupal/core-composer-scaffold (8.8.4): Downloading (100%) - Installing drupal/core-project-message (8.8.4): Downloading (100%) - Installing composer/installers (v1.7.0): Downloading (100%) - Installing zendframework/zend-stdlib (3.2.1): Downloading (100%) - Installing zendframework/zend-escaper (2.6.1): Downloading (100%) - Installing zendframework/zend-feed (2.12.0): Downloading (100%) - Installing psr/http-message (1.0.1): Downloading (100%) - Installing zendframework/zend-diactoros (1.8.7): Downloading (100%) - Installing typo3/phar-stream-wrapper (v3.1.3): Downloading (100%) ... Congratulations, you’ve installed the Drupal codebase from the drupal/recommended-project template! Next steps: * Install the site: https://www.drupal.org/docs/8/install * Read the user guide: https://www.drupal.org/docs/user_guide/en/index.html * Get support: https://www.drupal.org/support * Get involved with the Drupal community: https://www.drupal.org/getting-involved * Remove the plugin that prints this message: composer remove drupal/core-project-message * Homepage: https://www.drupal.org/project/drupal * Support: * docs: https://www.drupal.org/docs/user_guide/en/index.html * chat: https://www.drupal.org/node/314178
至此,composer已经帮我们把Drupal核心下载完成了,我们就可以打开浏览器输入网站的网址开始安装Drupal了。正常的安装过程可以参考这里:在测试服务器上安装第一个Drupal网站
如果你希望使用命令行安装Drupal,你可以先composer require drush/drush来安装drush,然后使用drush site:install命令来运行命令行安装向导。
- 添加新评论
- 666 阅读
评论
请问,按照你这个方法用composer create…
你说的没错
你说的没错,Drupal的代码现在就是放在web子目录里了,这是官方推荐的。
如果你不喜欢这样的结构,只能自己修改composer的定义了。
请问,为了测试,我需要安装多个drupal到网站根目录下…
放在web里面,那只有通过http://ip…
不需要的,你需要创建虚拟主机的配置文件来配置多个站点…
不需要的,你需要创建虚拟主机的配置文件来配置多个站点,每个站点都能使用不同的域名。
在站点的配置文件里,你设置documentroot为/site1/web目录就可以了。这样的话安装和浏览网站时url里不需要加上/web。
我不清楚你用的服务器是Apache还是Nginx,可能配置方法不一样,但原理是一样的。
我没有域名,我的子站点是通过目录来访问,怎么设置哦…
没有域名也可以配置虚拟主机目录啊…
没有域名也可以配置虚拟主机目录啊,documentroot设置好就可以了。
Apache服务器如何设置documentroot为/wwwroot/web
不好意思,回复晚了。 使用Apache服务器的话…
不好意思,回复晚了。
使用Apache服务器的话,要修改根目录设置,需要找到当前虚拟主机的配置文件,一般是在/etc/apache2/sites-available/目录里面,找到对应的.conf文件,把DocumentRoot那一行的末端加上/web就可以了。
比如我原来的根目录为:
需要修改成:
添加新评论