为了满足一些小企业低成本建站的需求。一直在 WordPress 自定义主题的路上越走越深,但修改主题灵活性还是很低。曾经也想过自己从头写一个动态站的实现,但以我当下的能力还是想都不要想。于是就换了另一套知名的开源 CMS:Drupal。
但有句话这样说:
在国外,什么叫好的CMS?就是足够开源,足够强大,足够简单,能够给二次开发的程序员足够的想像空间。
在国内,什么叫好的CMS?就是足够多的用户,足够漂亮的模板,足够复杂的插件,最好不用做任何二次开发就马上搭建一个门户网站的软件。
大概也是这样,Drupal在国内一直不受人待见吧(x
第一次使用 Drupal 就连安装都遇到了很多意外的问题。作为一个极简主义者(自封的),电脑里有 IIS 就绝对不会去用什么 WAMP 一类的东西,毕竟 Apache 的独有特性我肯定用不到的。
一切就绪后发现 Drupal 并不能正常运行并疯狂报错,按照一般的思路试图解决无果,配置文件也被我改的面目全非。最终本着更新软件的心态从零开始重新配置了下环境。写这个东西也是为了做个笔记避免日后的再次踩坑。基本是官方的文档的整理了。
这里假设你已经装好了MySQL数据库,如果没装就用默认的设置装好即可。然后新建一个给 Drupal 用的数据库。
1.配置 IIS
从控制面板里安装 IIS,在安装的时候记得选择以下项目:
- HTTP重定向
- CGI
- IIS管理控制台
- .NET可扩展性3.5
- .NET可扩展性4.6
除了安装时候要准备的这些东西,别忘了在里面把 index.php 添加进默认文档列表里。
同时,在IIS管理器中打开主机的“处理程序映射”部分,并添加具有以下设置的模块映射:
- 必需的路径:* .php
- 模块:FastCgiModule
- 可执行文件:[PHP的目录]\php-cgi.exe
这一套下来 IIS 部分的事情就搞定了。如果想了解关于更多在IIS里配置PHP的内容,可以来微软这里看看。https://docs.microsoft.com/en-us/iis/application-frameworks/install-and-configure-php-on-iis/install-and-configure-php
2.配置 PHP
下载最新版本的 non-thread safe version PHP 即可,具体安装方法不再详述,网上应该可以找到一大把的安装教程就毫无需要注意的部分了,但在配置php.ini 的时候要注意取消下面项目的注释(如果需要)并设置以下设置:
- fastcgi.impersonate = 1
- cgi.fix_pathinfo = 0(如果出现“No input file specified option”,就启用此选项)
- cgi.force_redirect = 0
- extension_dir =“ext”
- error_log =“C:\inetpub\logs\php_error.log”
- curl.cainfo =“[PHP的目录]\extras\ssl\cacert.pem”
- mbstring.http_input = pass
- mbstring.http_output = pass
至于说扩展,启用除了数据库相关的扩展,还有这些
- Xmlrpc
- Openssl
- Curl
- Mbstring
- Gd2
顺便加这两个项目进去
- extension=php_wincache.php
- zend_extension=php_opcache.php
然后在 https://curl.haxx.se/docs/caextract.html 下载最新的cacert.pem文件并将其移至 [PHP的目录]\extras\ssl里面
然后把 [PHP的目录]添加进系统PATH变量中。
3.安装WinCache
- 在这里下载需要的 WinCache https://www.iis.net/downloads/microsoft/wincache-extension#additionalDownloads
- 下载相应的PHP版本的自解压程序。
- 运行解压缩程序并将文件解压到临时位置。
- 将“php_wincache.dll”复制到 [PHP的目录]\ext\里。
到这里,网站服务器这边的所有安装就完成了,可以用 <?php phpinfo(); 来检查安装情况。
4.安装Composer和Drush
这个是官方要求安装的
- 从https://getcomposer.org/download/下载Composer安装程序可执行文件并运行。
- 用管理员权限的cmd输入:
composer global require drush/drush
最后,把Drupal弄进去,改一下文件的权限:
- 在站点的IIS管理器中创建一个新站点。确保它有一个独特的应用程序池并将“连接为…”设置为“应用程序用户(传递身份验证)”。
- 转到您网站设置的身份验证部分。编辑“匿名身份验证”为“应用程序池标识”。
- 为用户提供“IIS APPPOOL \ [应用程序池名称]”写入权限,以便访问Drupal中的所有文件。
重新启动一下 IIS。不出意外就可以在 127.0.0.1 看到 Drupal 的运行了。
Apache确实臃肿,但是极简主义的话可以选择Nginx啊
其实是不喜欢用WAMP这种集成环境啦….心态有点像Arch玩家(
事实上,现在所有的开发已经都已经换到WAMP上了,在IIS上回出现很多奇怪的问题需要解决,然而我固懒(
作为一个极简主义者,你竟然使用Windows+IIS,不行你这毫不极简
假极简主义者,随着遇到的问题越来越多就越来越后悔没有用WAMP了(