CentOS 上搭建 PHP7 开发测试环境
最近公司增加了一台测试用的服务器,当然因为只是测试用,所以决定所有东西都装到一个服务器上,用来我们自己撸代码,发测试版功能,做点小实验神码的,等等等等……反正就是方便用吧,所以自己来试了下搭建一台完全的LAMP开发/测试环境,当然同样踩到了无数的坑。
准备开始吧!
Step.1准备服务器
那第一步,我们先搞个服务器吧,搞啥服务器呢,既然是测试用那就搞点不要钱的,或者方便的吧,这里就推荐大家试试用AWS或者自己机器上搭建虚拟机,比如Vagrant这样的开发平台也是可以的,这里,我们就用AWS了,反正可以免费一年,AWS的优点是访问国外网站超快,缺点自然是国内访问超慢,当然大家用啥都可以的啦,这里假设我们已经有一台CentOS7的服务器了,并且假设你可以远程链接到这台服务器(比如ssh)。
Setp.2安装配置LAMP
首先我们安装Apache
安装Apache很简单,只需要通过yum安装就可以了。
yuminstallhttpd
安装完成后,使用systemctl命令启动,并设置为开机自动启动。
systemctlstarthttpd.service systemctlenablehttpd.service
出现问题时可以通过systemctlstatus来查看服务是否正确的启动了,也可以到/var/log/httpd路径下看访问日志和错误日志来排查问题。
新的CentOS已经装了FirewallD了,所以如果装了这个,我们还需要告诉FirewallD打开防火墙。
firewall-cmd--permanent--zone=public--add-service=http firewall-cmd--permanent--zone=public--add-service=https firewall-cmd--reload
接下来装MySQL
首先,我们要知道的是,MySQL没有在CentOS7的软件源库里面,CentOS7里面有对应的替代品MariaDB,因为龟壳公司收购了MySQL,大家怕万一将来MySQL闭源了,那不都跪了,于是就开了个分支自己开始做起MariaDB来了,这里我们还是手工添加MySQL的软件源来安装MySQL保证还是那个味道。
首先添加MySQL的软件源。
yuminstallhttp://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
接下来安装MySQL的客户端和服务端。
yuminstallmysql-servermysql-client
安装完成后,使用mysql_secure_installation来完成MySQL的安装配置。
同样需要为MySQL配置防火墙。
firewall-cmd--permanent--zone=public--add-service=mysql firewall-cmd--reload
接下来我们安装PHP7
跟MySQL类似,目前发行包的软件源里面是不包含PHP7,只包含了PHP5.x,所以为了安装PHP7我们同样需要添加PHP7的软件源,根据这几天的实验情况看,Remi的PHP7的软件包和插件比较完善,所以我们就先添加Remi的软件源。
yuminstallscl-utils yuminstallhttps://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm yuminstallhttp://rpms.remirepo.net/enterprise/remi-release-7.rpm
添加完成软件源后,我们就可以安装PHP7和各种常用的包了。
yuminstallphp70php70-php-mysqlndphp70-php-curlphp70-php-simplexml yuminstallphp70-php-develphp70-php-gdphp70-php-jsonphp70-php-mcrypt yuminstallphp70-php-mbstringphp70-php-opcachephp70-php-pear yuminstallphp70-php-pecl-apcuphp70-php-pecl-geoipphp70-php-pecl-imagick yuminstallphp70-php-pecl-json-postphp70-php-pecl-memcachephp70-php-pecl-memcached yuminstallphp70-php-pecl-xmldiffphp70-php-pecl-zipphp70-php-pspellphp70-php-soap yuminstallphp70-php-tidyphp70-php-xmlphp70-php-xmlrpc
接下来呢,这里其实还没装完,因为最初我是为了升级服务器PHP5.x而装的PHP7,所以如果你的服务器已经装了PHP5.x需要简单的升级下,那么在这里安装完成PHP7的软件包以后删除PHP5.x然后在安装php70-php这个包。
yumremovephpphp-common
然后
yuminstallphp70-php
之后修改配置文件重启Apache就可以了,要注意的是,PHP7的配置文件放到了/etc/opt/remi/php70路径下,PHP7的相关文件放到了/opt/remi/php70/root/lib64/php路径下。
好,这样,我们一个带着PHP7的服务器就装好了,大家可以在上面自由玩耍享受PHP7带来的性能。
Setp.3安装SASL和Memcached
首先Memcached大家都知道是什么东西了,那么我来说说SASL是什么鬼。SASL全称SimpleAuthenticationandSecurityLayer用来做安全机制验证的,说简单点,就是用这个东西,我们可以让我们的Memcached在访问前需要验证下用户名密码,另外Memcached的Binary接口比需要使用SASL验证,否则就会输出Writinganerror:Unknowncommand的错误(然而在PHP5.x下,却正常。。。所以这个问题研究了好会儿)。
我们先安装SASL。
yuminstallcyrus-sasl-plain yuminstallcyrus-sasl-devel yuminstallcyrus-sasl yuminstallcyrus-sasl-lib yuminstallcyrus-sasl-gssapi yuminstallcyrus-sasl-md5
安装完成后,通过systemctlstartsaslauthd.service命令启动这个服务,接下来,我们需要创建一个用户通过SASL验证来访问Memcached。
首先我们要修改SASL的配置来使用当前/etc/shadow中的用户账户以及密码来进行验证,所以我们修改/etc/sysconfig/saslauthd中的MECH=shadow告诉SASL使用系统的账户密码来验证,修改完后通过systemctlrestartsaslauthd.service重启SASL的进程。
可以通过下面的命令来验证用户是否可以正确的被验证了。
/usr/sbin/testsaslauthd-uusername-ppassword
成功将会显示0:OK“Success.”,要注意的是这里的username和password是需要能够正常登录系统的用户名和密码,也就是需要记录在/etc/shadow文件中。
接下来我们安装Memcached需要的libevent。
yuminstalllibeventlibevent-devel
再接下来,我们需要通过源代码编译安装Memcached,因为默认在yum中的Memcached是没有开启SASL验证。
wgethttp://memcached.googlecode.com/files/memcached-1.4.15.tar.gz tarzxvfmemcached-1.4.15.tgz cdmemcached-1.4.15 ./configure--enable-sasl--with-php-config=/opt/remi/php70/root/bin/php-config make makeinstall
这样我们的Memcached也编译并安装完成了,接下来为Memcached的服务添加SASL验证和防火墙规则。
saslpasswd2-amemcached-c[用来访问memcached用户] firewall-cmd--permanent--zone=public--add-port=11211/tcp firewall-cmd--reload
接下来我们启动Memcached。
/usr/local/bin/memcached-d-u[用来访问memcached的用户]-p11211-m512-c1024-S
上面参数中-S就是告诉memcached需要开启SASL验证。
Step.End
到此,开发环境的配置就结束了,大家愉快的玩耍吧,欢迎掷砖>_<