在 Cent OS 7 上搭建带着 PHP 7 和 Memcached 的 LAMP

简介: start最近公司增加了一台测试用的服务器,当然因为只是测试用,所以决定所有东西都装到一个服务器上,用来我们自己撸代码,发测试版功能,做点小实验神码的,等等等等……反正就是方便用吧,所以自己来试了下搭建一台完全的 LAMP 开发\测试环境,当然同样踩到了无数的坑那我们来开始吧Step.

start

最近公司增加了一台测试用的服务器,当然因为只是测试用,所以决定所有东西都装到一个服务器上,用来我们自己撸代码,发测试版功能,做点小实验神码的,等等等等……反正就是方便用吧,所以自己来试了下搭建一台完全的 LAMP 开发\测试环境,当然同样踩到了无数的坑

那我们来开始吧

Step.1 先搞个服务器

那第一步,我们先搞个服务器吧,搞啥服务器呢,既然是测试用那就搞点不要钱的,或者方便的吧,这里就推荐大家试试用 AWS 或者自己机器上搭建虚拟机,比如 Vagrant 这样的开发平台也是可以的,这里,我们就用 AWS 了,反正可以免费一年,AWS 的优点是访问国外网站超快,缺点自然是国内访问超慢,当然大家用啥都可以的啦,这里假设我们已经有一台 Cent OS 7 的服务器了,并且假设你可以远程链接到这台服务器(比如 ssh)

Setp.2 安装配置 LAMP

  • 首先我们安装 Apache

安装 Apache 很简单,只需要通过 yum 安装就可以了

yum install httpd

安装完成后,使用 systemctl 命令启动他,并设置为开机自动启动

systemctl start httpd.service
systemctl enable httpd.service

也可以通过 systemctl status 来查看服务是否正确的启动了,也可以到 /var/log/httpd 路径下看访问日志和错误日志来排查问题

新的 Cent OS 已经装了 FirewallD 了,所以如果装了这个,我们还需要告诉 FirewallD 打开防火墙

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
  • 接下来装 MySQL

首先,我们要知道的是,MySQL 没有在 Cent OS 7 的软件源库里面,Cent OS 7 里面有对应的替代品 MariaDB,因为龟壳公司收购了 MySQL,大家怕万一将来 MySQL 闭源了,那不都跪了,于是就开了个分支自己开始做起 MariaDB 来了,这里一步我们还是手工添加 MySQL 的软件源来安装 MySQL 保证还是那个味道

首先添加 MySQL 的软件源

yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

接下来分别安装 MySQL 的客户端和服务端

yum install mysql-server mysql-client

安装完成后,使用 mysql_secure_installation 来完成 MySQL 的安装配置

同样需要为 MySQL 配置防火墙

firewall-cmd --permanent --zone=public --add-service=mysql
firewall-cmd --reload
  • 接下来我们安装 PHP 7

跟 MySQL 类似,目前发行包的软件源里面是不包含 PHP 7 的,只包含了 PHP 5.x 的版本,所以为了安装 PHP 7 我们同样需要添加 PHP 7 的软件源,根据这几天的实验情况看,Remi 的 PHP 7 的软件包和插件比较完善,所以我们就先添加 Remi 的软件源

yum install scl-utils
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

添加完成软件源后,我们就可以安装 PHP 7 和各种常用的东西了

yum install php70 php70-php-mysqlnd php70-php-curl php70-php-simplexml
yum install php70-php-devel php70-php-gd php70-php-json php70-php-mcrypt php70-php-mbstring php70-php-opcache php70-php-pear php70-php-pecl-apcu php70-php-pecl-geoip php70-php-pecl-imagick php70-php-pecl-json-post php70-php-pecl-memcache php70-php-pecl-memcached php70-php-pecl-xmldiff php70-php-pecl-zip php70-php-pspell php70-php-soap php70-php-tidy php70-php-xml 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 -u username -p password

成功将会显示 0: OK "Success.",要注意的是这里的 username 和 password 是需要能够正常登录系统的用户名和密码,也就是需要记录在 /etc/shadow 文件中

接下来我们安装 Memcached 需要的 libevent

yum install libevent libevent-devel

再接下来,我们需要通过源代码编译安装 Memcached,因为默认在 yum 中的 Memcached 是没有开启 SASL 验证的

wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
tar zxvf memcached-1.4.15.tgz
cd memcached-1.4.15
./configure --enable-sasl --with-php-config=/opt/remi/php70/root/bin/php-config
make
make install

这样我们的 Memcached 也编译并安装完成了,接下来为 Memcached 的服务添加 SASL 验证和防火墙规则

saslpasswd2 -a memcached -c 用来访问 memcached 的用户
firewall-cmd --permanent --zone=public --add-port=11211/tcp
firewall-cmd --reload

接下来我们启动 Memcached

/usr/local/bin/memcached -d -u 用来访问 memcached 的用户 -p 11211 -m 512 -c 1024 -S

上面参数中 -S 就是告诉 memcached 需要开启 SASL 验证了

end

到此,开发环境的配置就结束了,大家愉快的玩耍吧,欢迎掷砖>_<

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
运维 JavaScript 应用服务中间件
os-copilot安装与多项功能测评,帮助开发人员PHP环境排查问题
本文介绍了OS Copilot在ECS上 Alibaba Cloud Linux的安装与使用,并对其多项参数进行了功能测评。OS Copilot是为操作系统提供智能化辅助的工具,支持自动化任务、智能推荐、故障排查等功能。安装时需检查是否已安装(`rpm -q os-copilot`),若未安装则用`yum install os-copilot`命令安装,并配置AccessKey信息连接阿里云服务。通过测试不同参数命令,如`-t`参数,展示了其自动化执行和智能生成回答的能力,显著提升运维效率。
os-copilot安装与多项功能测评,帮助开发人员PHP环境排查问题
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
734 20
|
关系型数据库 MySQL Linux
Linux(CentOS7)搭建LAMP服务环境
本文介绍了在Linux (CentOS 7) 上搭建LAMP服务环境的详细步骤,包括安装Apache HTTPd、解决编译时依赖问题、配置Apache服务、安装PHP以及处理PHP与Apache集成时遇到的问题。同时,还涉及了防火墙设置和SELinux权限调整,确保Web服务能够正常运行。
622 2
|
PHP
php对memcached简单的操作
php对memcached简单的操作
227 0
|
缓存 监控 PHP
【PHP开发专栏】Memcached在PHP中的缓存应用
【4月更文挑战第29天】Memcached是高性能分布式内存缓存系统,常用于加速动态Web应用,减轻数据库负担。在PHP中,通过官方扩展模块与Memcached服务器交互,涉及安装扩展、创建实例、设置/获取缓存、删除缓存及其它操作。使用Memcached可减少数据库负载、缓存查询结果、实现页面缓存,支持分布式缓存,并需注意避免缓存击穿、穿透和雪崩。监控和调优缓存策略能优化性能。了解和掌握Memcached有助于提升PHP应用的效率和扩展性。
385 0
|
小程序 JavaScript Shell
centos编译安装PHP(2)
Php编译安装成功之后,是没有php.ini文件的,需要我们从源码包中复制过去。
364 1
|
前端开发 JavaScript Shell
centos编译安装PHP(1)
当然,我是直接在服务器上下载的: bash 复制代码
529 1
|
关系型数据库 MySQL Linux
centos如何搭建lamp环境
centos如何搭建lamp环境
476 0
CentOS6.5自动化安装LAMP脚本
CentOS6.5自动化安装LAMP脚本

热门文章

最新文章