Linux Story纯正开源之美,体验搭建LAMP开发/测试环境,从AWS服务器准备开始
Linux Story

纯正开源之美 有趣、有料、有意思
最近公司新增了一台用于测试的服务器。由于只是用于测试,所以决定将所有东西都安装在这一台服务器上,以便我们自己编写代码、发布测试版功能以及进行一些小实验等。总之,就是为了使用方便。因此,自己尝试搭建了一台完整的 LAMP 开发/测试环境,当然也不可避免地遇到了无数的问题。
准备开始吧!
Step.1 准备服务器
第一步,我们先准备一个服务器。要准备什么样的服务器呢?因为是用于测试,所以可以准备一些免费的或者方便的服务器。这里推荐大家尝试使用 AWS 或者在自己的机器上搭建虚拟机,像 Vagrant 这样的开发平台也是可以的。在这里,我们选择使用 AWS ,因为它可以免费使用一年。AWS 的优点是访问国外网站的速度非常快,缺点则是在国内访问速度很慢。当然,大家可以使用任何自己喜欢的服务器。这里假设我们已经拥有一台 CentOS7 的服务器,并且假设可以通过远程链接(比如 ssh )连接到这台服务器。
Setp.2 安装配置LAMP
安装Apache很简单,只需要通过yum安装就可以了。
yum install httpd
安装完毕之后,通过 systemctl 命令来启动它,并且将其设置为开机时自动启动。
systemctl start httpd.service
使用 systemctl 命令来启用 httpd.service 服务。
出现问题时,能够通过 systemctl status 查看服务是否正确启动。同时,也可以前往 /var/log/httpd 路径,查看访问日志和错误日志,以此来排查问题。
新的 CentOS 已经安装了 FirewallD 。因此,如果安装了它,我们就需要告知 FirewallD 打开防火墙。
使用 firewall-cmd 进行设置,设置为永久性的,区域为 public,添加的服务为 http
使用 firewall-cmd 进行永久设置,将区域设置为 public,然后添加服务 https 。
firewall-cmd--reload
首先,我们要明确,MySQL 不在 CentOS 7 的软件源库中。CentOS 7 有对应的替代品 MariaDB。因为龟壳公司收购了 MySQL,大家担心若 MySQL 将来闭源,后果不堪设想,所以就开启了一个分支自行开始制作 MariaDB。在此情况下,我们仍可通过手工添加 MySQL 的软件源来安装 MySQL,以确保能得到原本的体验。
首先添加 MySQL 的软件源。
使用 yum 命令来安装 http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 这个文件。
接下来安装 MySQL 的客户端和服务端。
使用 yum 命令来安装 mysql-server 和 mysql-client 。
安装完毕之后,通过 mysql_secure_installation 这一方式来完成 MySQL 的安装配置工作。
同样需要为 MySQL 配置防火墙。
使用 firewall-cmd 命令设置永久规则,将区域设置为 public,添加服务为 mysql。
firewall-cmd--reload
与 MySQL 相似,目前发行包的软件源中不包含 PHP 7 ,仅包含 PHP 5.x 。因此,为了安装 PHP 7 ,我们需要添加 PHP 7 的软件源。从这几天的实验情况来看,Remi 的 PHP 7 软件包和插件较为完善,所以我们先添加 Remi 的软件源。
yum install scl-utils
使用 yum 命令来安装 https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 这个软件包。
使用 yum 命令来安装 http://rpms.remirepo.net/enterprise/remi-release-7.rpm 这个文件。
添加完软件源之后,我们便能够安装 PHP 7 了。同时,也可以安装各种常用的包。
使用 yum 命令安装 php70 以及它的相关扩展,包括 php70-php-mysqlnd、php70-php-curl 和 php70-php-simplexml。
使用 yum 命令安装以下软件包:php70-php-devel、php70-php-gd、php70-php-json、php70-php-mcrypt。
使用 yum 安装 php70-php-pear 。
使用 yum 安装 php70-php-pecl-imagick 。
使用 yum 命令来安装以下 PHP 扩展:php70-php-pecl-json-post、php70-php-pecl-memcache、php70-php-pecl-memcached。
使用 yum 安装以下软件:php70-php-pecl-xmldiff、php70-php-pecl-zip、php70-php-pspell、php70-php-soap
使用 yum 安装 php70-php-xmlrpc 。
这里还没装完。最初是为了升级服务器 PHP 5.x 而装的 PHP 7 。如果你的服务器已装 PHP 5.x 且需要简单升级,那么在此安装完成 PHP 7 的软件包后,删除 PHP 5.x ,接着安装 php70-php 这个包。
yum remove php php-common
然后
yum install php70-php
修改配置文件后重启 Apache 即可。需注意,PHP 7 的配置文件位于 /etc/opt/remi/php70 路径下,PHP 7 的相关文件位于 /opt/remi/php70/root/lib64/php 路径下。
好,这样一来,我们就把一个带有 PHP 7 的服务器安装好了,大家能够在这个服务器上自由地进行玩耍,尽情享受 PHP 7 所带来的性能。
Setp.3 安装 SASL 和 Memcached
大家都知道 Memcached 是什么东西了。接下来,我来讲讲 SASL 是什么。SASL 的全称是 Simple Authentication and Security Layer,它是用于做安全机制验证的。简单来说,通过使用这个东西,我们能够让 Memcached 在访问之前需要验证用户名和密码。此外,Memcached 的 Binary 接口需要使用 SASL 进行验证,否则就会输出“Writing an error: Unknown command”的错误。不过在 PHP 5.x 下,这种情况却是正常的。。。所以这个问题研究了好会儿)。
我们先安装 SASL 。
yum install cyrus-sasl-plain
yum install cyrus-sasl-devel
yum install cyrus-sasl
yum install cyrus-sasl-lib
yum install cyrus-sasl-gssapi
yum install cyrus-sasl-md5
安装完成后,启动这个服务可使用 systemctl start saslauthd.service 命令。接着,我们要创建一个用户,让其通过 SASL 验证来访问 Memcached 。
我们首先要对 SASL 进行配置修改,以便使用当前 /etc/shadow 中的用户账户及密码来进行验证。接着,我们修改 /etc/sysconfig/saslauthd 中的 MECH=shadow,以此告知 SASL 使用系统的账户密码进行验证。修改完成后,通过 systemctl restart saslauthd.service 来重启 SASL 的进程。
可以通过下面的命令来验证用户是否可以正确的被验证了。
使用 /usr/sbin/testsaslauthd 命令,以 username 为用户,password 为密码进行相关操作。
成功会显示 0: OK “Success.”。需要注意的是,这里的 username 和 password 是能够正常登录系统的用户名和密码,即需要记录在 /etc/shadow 文件中。
我们接下来要安装 Memcached 所需要的 libevent 。
使用 yum 命令来安装 libevent 和 libevent-devel 。
接下来,我们要进行 Memcached 的源代码编译安装。因为在 yum 中默认的 Memcached 没有开启 SASL 验证。