Magento独立服务器配置指南之二

发布于2015-08-31

我们继续Magento Xeon 独立服务器的配置之旅。

1.添加IP地址

一般独立服务器都带有多个IP地址,先ping一下除主IP之外的IP地址,如果ping不同,就需要完成下列步骤把IP添加服务器。

在/etc/network/interfaces 中添加IP信息:

在文件中,可以看到有网卡已经指定了主IP地址,我们下面就是给该网卡添加多个IP地址:

上面 在# The Extra IP Address 后面就是我们添加的IP信息。

最后选用重启网络服务:

因为有多个IP,而整台服务器一般都会有多个网站在此搭建,所有最好对IP分配做一个规划,比如那几个网站共同使用同一个IP,并在 /var/www/html 下建相应目录,这样同一个IP的所有网站都在同一目录下,以后网站多起来后便于管理。

2. 搭建测试网站

我们先新建一个数据库 testdb

上面命令中 youpass 要换成你实际的mysql root 密码。我们把root用户用于所有网站,但是这样做并不推荐,一旦root密码被黑,那整个数据库都被黑了,我们可以对每个网站都新建一个mysql 用户,并授权该用户只能对单个数据库进行操作:

上面命令我们产生一用户 testuser 只能对数据库testdb 做所有操作,该用户密码是 dev2015po103,密码最好不要用特殊字符,特殊字符在用命令行导入导出数据库等操作时会比较麻烦,密码可以大小写字母加数字,位数可以长一些,这样可以保证安全性。

现在,我们需要配置apache2 并启用一些模块;新版本的apache 提供了以下一些有用的命令:

  • a2ensite:在sites-avilable 和 sites-enabled 文件夹之间产生 vhost 文件的符号链接,这样apache可以读取 vhost 文件。
  • a2dissite: 命令删除a2ensite 命令生成的符号链接,相当于禁用了网站。
  • a2enmod: 命令在 mods-enabled 目录和模块配置文件间生成符号链接,相当于启用某模块。
  • a2dismod: 命令将删除a2enmod 生成的符号链接,相当于禁用某模块。

Magento,Wordpress 都需要 mod_rewrite 模块生成SEO 友好的url,我们需要启用 mod_rewrite 模块:

下一步我们要在 sites-available 生成虚拟主机文件:

在vi编辑器中输入下面内容:

要注意的是vhost 文件要带后缀 .conf , 如果没有,至少在 Ubuntu 14 中会无法启用网站。

我们启用该配置文件定义的网站:

现在,在域名提供商哪里把你的域名指向服务器中的某一个IP地址(一般修改IP后,要数小时才能生效),上传网站文件到配置文件定义的文件夹:/var/www/html/yourdomain/public_html, 等域名DNS的IP记录生效后,就可以在浏览器访问你的域名了。当然也可以在本地计算机hosts 文件加域名解析,做测试用,这样只有你可以访问到你的域名,其他人是无法用域名访问你的网站的。

有一点提一下,我们在启用 mod_rewrite时,即使重启了 apache2 服务,还是不生效,后来重启服务器后就正常了,也许只是个案。

用这种方法,我们就可以配置任意多的网站了。

3. 性能和优化

php 运行模式

先来决定服务器的php 运行模式,我们先看看目前服务器的php 模式,只需查看 phpinfo() 的输出:

 

Server API 显示是 Apache 2.0 Handler, 表明服务器目前PHP 运行模式是 Apache 模块(mod_php,也叫DSO) 方式,另外2种比较常用的PHP 模式是CGI和FastCGI, 如果是CGI 或者 FastCGI, Server API 显示的会分别是 CGI 和Fast CGI。关于PHP模式的解释网上搜索一下就可以找到,这里有一篇文章就不错。

鉴于服务器默认的PHP 运行模式mod_php(DSO)是所有模式中最快的,而且是默认设置,不需要再做其他配置,我们决定就用 mod_php,对于其缺点,FTP 文件权限问题我们可以用SFTP来传文件,和Wordpress, Magento 后台安装程序问题似乎并不存在,因为我们可以在wordpress后台正常安装插件,这个还有待观察。

php 配置优化

php 5.5 原生支持 opcache,zend opcache 可以代替部分 APC 的功能,因为是原生模块,稳定性肯定更好,在安装php5.5 之后,zend opcache 默认是启用的,我们只需对默认配置做些优化就可以,下面是我们优化过的配置文件:

zend opcache 可以使用的内存设置为 2G,可以加速的文件设为 10万。

APC现在有一个分支,叫 APCu, APCu 只缓存用户文件,目前看来 zend opcache + APCu 的搭配是比较理想的,我们以后也许会试用一下。

除了opcache, php.ini 里面还有一些其他设置要优化一下。

主php.ini 路径可以用 php -i |grep .ini 看出,/etc/php5/cli/php.ini, 仔细看php配置文件也包括 /etc/php5/cli/conf.d 目录下的所有 .ini 文件。新版本的php 不再支持在php.ini 里面修改一些全局设置比如 memory_limit, max_execution_time 等等,即使你在php.ini 里面修改了,重启apache2 服务后,修改的配置也不会生效。

我们需要以下步骤来修改php的一些配置,在/etc/php5/mods-available 下建一个文件 user.ini:

在这个文件中输入你要改的PHP 配置如下:

然后,启用用 php5enmod 启用配置,该目录实际是在/etc/php5/cli/conf.d 下建立 user.ini 的符号链接, 最后是重启apache2 服务:

如果是非root用户操作,·不要忘记用 sudo,如果不带sudo, 重启apache2 会提示 fail。至此 php的配置就修改好了。

4. 关于邮件

电商网站最理想的是用自己域名的邮箱,比如 info@yourdomain.com, sales@yourdomain.com, 而要在自己的服务器上配置邮件服务是相当麻烦的,麻烦不说,还多半是吃力不讨好,配置好邮箱后,测试发送邮件,很大可能被gmail, hotmail 这些国外大邮件服务器直接放入垃圾邮箱,这是因为自己的域名一般比较新,极大可能被误判为垃圾邮件服务器,即使你不是自己配置服务器,而是购买了Cpanel, DirectAdmin 这些控制面板并安装到自己的服务器,添加邮件后,还是可能被判定为垃圾邮件。(很多共享空间的cpanel里面添加的邮件账户却没有这种困惑,因为出售共享空间的公司已经长期运营,他们的邮件服务器域名已经积累了足够的名声,而不会判定为垃圾邮件服务)

所以,我们并不建议在自己的服务器上配置邮件服务器,而是去购买大的公司的企业邮箱,比如 google, zoho 等的服务,这些公司的企业邮箱是支持使用你自己的域名作为邮箱别名的,这些企业邮箱完全没有被判定为垃圾邮件的可能,可以完全放心的使用。