lnmp php7 搭建线上服务器 三
2020-12-24 07:27
标签:教你 ann crt inf 访问 运行 ref ora roo 上次完成了基本的配置,我们的代码也可以正常运行了,在测试的时候,也发现了一些问题(是我的网站的一些问题),比如上传文件的路径写的是在Windows开发时的虚拟站点的域名,上线后导致上传出现问题,因为线上的域名与写代码时候的域名不一样,导致出来的问题,所以在平常的开发时,一定要确认好这些小问题,不然上线后就会有各种问题,还好是我自己的项目,不然铁定少不了一顿骂。 类似上面的情况,最好的解决办法就是,这些可能会改变的东西,分离出来是最好的,就laravel来说,配置文件是最好的选择。.config或者.env,当然这两者还是有些区别的,具体请看 https://www.cnblogs.com/zqblog1314/p/12822490.html 下载源码包 http://www.memcached.org/
下载源码
下载好后解压 tar xvzf memcached-1.6.7.tar.gz 查看,configure 有了它我们就可以编译了,使用 ./configure --prefix=你指定的目录 报错了。。。。。
需要libevent依赖,那我们就装上它,有些人可能会有疑问,咋不早点装它,这样就看不到错误了,其实吧,,我早知道需要这个依赖,这是教学篇,所以报错是好的,再说我们怎么知道有没有装过那个依赖,,他缺少啥,咱们就装啥,搞起。 使用 yum install -y libevent libevent-devel.x86_64 装完之后,再次执行 ./configure --prefix=你指定的目录
然后就OK了,就编译好了 接下来,安装它 使用make && make install 等待一会就装好了,进入目录看看 接下来是启动,这里有些参数,根据需要指定 /usr/local/memcached/bin/memcached -d -u root -m 16m -p 11211 -m 启动16兆内存 一个原则,指定的内存大小比物理内存在小 -p 默认端口11211 -d 启动守护进程 -u 指定用户 -c 指定连接数(并发数) -l是监听的服务器IP地址 127.0.0.1 0.0.0.0 谁都可以访问 注:memcached默认的端口号为:11211 ### 关闭memcached pkill memcached 启动成功 接下来,安装Telnet,Telnet是用来连接memcached的,也可以操作。 安装成功,q表示退出Telnet。
语法 telnet ip port 回车 连接成功 按下 crtl+] 在linux中执行telnet命令连接memcached服务 完全正常,继续往下。 这个咱们还不涉及memcached的具体应用,所以先了解这些常用命令,至于实战运用,会在后面的教程中进行讲解。 但这就像单机游戏一样,自己玩没啥意思,所以php他来了 ,上次我么整合php+nginx,这次我们整合php+memcached PHP Memcache 扩展包下载地址:http://pecl.php.net/package-search.php?pkg_name=memcache,你可以下载最新稳定包(stable)。 同样,进入网站,复制链接,使用wget 下载,解压,这些操作是相同的所以,这里不再赘述,若有不明白的,可以看之前的,刚开始讲解的详细点,熟悉了之后就不装了,摊牌了。我是京城一哥--张大炮是也。。。 开个玩笑,咱们继续。。。。 这次先装依赖,上次是不装了,摊牌了,这次咱先装上依赖。(装最新的稳定版的就行,不必和我的版本一样,你可能十年后看到这篇文章,你难道装十年前的扩展吗?所以的注意时差) 我们来看看那个报错 PHP Warning: PHP Startup: Unable to load dynamic library ‘memcached.so‘ (tried: /usr/lib64/php/modules/memcached.so (/usr/lib64/php/modules/memcached.so: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/memcached.so.so (/usr/lib64/php/modules/memcached.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 好家伙,挺长的报错,这是什么原因造成的?百度看看,会有人跟你说,是centos的系统导致的,或者是PHP本身导致的。。。。。 其实都不是,这是因为我们使用yum安装的,yum安装时给我们做了很多的规范,所以,当我们不遵从这些规范的时候理所应当的就报错了。 作为良心博主,不进告诉你错误的原因,还教你怎么解决(*^▽^*) 如果是源码安装的php,那么可以使用修改php.ini文件来发现扩展,毕竟我们Windows中开启扩展页是修改php.ini文件。 解决办法: 1、cd /etc/php.d 目录下 随意复制一份配置文件 比如 cp bz2.ini memcached.ini //这里的memcached.ini 是带 d 的 注意 后面有个不带d 的 2、复制完后 ,vim memcached.ini 进行如图修改 3、wq保存退出 使用 php -m |grep 扩展名 可以查找扩展是否安装 显而易见,我们的memcached扩展已经安装好了 这里跟上面操作基本一样,我写伪代码解释一下。 1、赋值链接,wget下载,tar zxvf redis。。。gz 解压 2、进入解压后的目录,然后直接执行 make 3、执行完make后,执行 make PREFIX=/usr/local/redis install 这里记得 指定安装目录 还有 就是 PREFIX 得是大写的 小写不行 这样就安装好了 4、赋值 解压后的目录中的redis.conf 到 /usr/local/redis/bin 5、修改 redis.conf 这个修改是允许redis 在后台运行。 语法:命令 配置文件 redis-server(写路径) redis.conf(写路径) 注意:此处命令与配置文件,可以写相对路径或绝对路径。 比如使用绝对路径写法: /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf 查看是否启动成功:启动成功后,默认的端口是6379 netstat –tunpl | grep 6379 语法: redis-cli -h 主机ip -p端口号 如果是连接到本地,则直接输入连接命令即可。 redis-cli是客户端连接服务器的命令 测试能用不 OK~ 停止Redis实例 我们可以使用/usr/local/redis/bin/redis-cli shutdown 也可以使用pkill redis-server killall redis-server pkill -9 redis http://pecl.php.net/package/redis 下载,解压,进入解压目录,执行phpize 生成config 然后执行 ./configure --with-php-config=/usr/bin/php-config 指定一会生成的.so扩展放到哪个目录,我们指定了,就会放到那个目录 然后执行 make && make install 之后,进入/etc/php.d 然后随便复制一个.ini文件改为 redis.ini 然后 和 安装 memcached扩展的操作是一样的。 这样就OK了。 至此,今日份快乐已经完成了。后续会继续推出新的文章,比如 php操作 memcached redis swoole 学会了,php操作这些之后,我们进行项目实战,敬请期待。 lnmp php7 搭建线上服务器 三 标签:教你 ann crt inf 访问 运行 ref ora roo 原文地址:https://www.cnblogs.com/zqblog1314/p/13764576.html好了,闲谈结束,来看看今天的任务吧(依旧是搭建环境,后续会出实战的)
1、安装memcached
2、安装php的memcached扩展
3、安装redis
4、安装php的redis扩展
至于swoole,暂不考虑,后续会再详细介绍的。
1、memcached
这里注释下:本教程尽可能不考虑Windows下环境,尽可能以Linux为准,所以接下来不会演示在Windows安装memcached以及Telnet,不过我会再出相关的教程的,只不过不在这一系列中,望周知。
使用telnet连接memcached
使用memcached
获取、添加、设置数据
# 获取存储在 key(键) 中的 value(数据值) ,如果 key 不存在,则返回空。
get key
# 添加 add 只能添加不存在的key或过期了的key,存在的key添加则报错
add key flags exptime bytes\n
value\n
# 设置 set key存在则修改,不存在则添加
set key flags exptime bytes\n
value\n
参数说明如下:
key:结构中的 key,用于查找缓存值。
flags:客户机使用它存储关于键值对的额外信息(0|1|2)
exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)[时间长度(最长30天),时间戳(时间戳可以设置很久的时间超过30天的限制)]
bytes:在缓存中存储的字节数
value:存储的值长度和bytes长度设置的一样的
输出信息说明:
STORED:保存成功后输出。
ERROR:在保存失败后输出。
自增和自减
# incr 与 decr 命令用于对已存在的 key(键) 的数字值进行自增或自减操作
# incr 与 decr 命令操作的数据必须是十进制的32位无符号整数
# 自增
# 统计
set key 0 3600 1
value
incr key increment_value(可以想写多少就写多少,且必须是正数)
自增和自减,一般用于统计
注:使用自增或自减第1步,要用set或add创建一个key值,后才可以使用incr或decr
删除数据
# delete 命令用于删除已存在的 key(键)
delete key
# 清除所有 尽量不要去使用
flush_all
输出信息说明:
DELETED:删除成功。
ERROR:语法错误或删除失败。
NOT_FOUND:key 不存在。
查看状态
# 用于返回统计信息例如 PID(进程号)、版本号、连接数等
stats
pid: memcache服务器进程ID
uptime:服务器已运行秒数
curr_connections:当前连接数量
cmd_get:get命令请求次数
cmd_set:set命令请求次数
get_hits:get命令命中次数
get_misses:get命令未命中次数
命中率 get_hits/cmd_get 60% – 90%上面我们完成了memcached的安装以及使用Telnet连接及操作memcached。
2、安装扩展
linux下安装扩展
# 安装依赖 安装安装安装
yum install -y libmemcached.x86_64 libmemcached-devel.x86_64
# 安装memcached扩展
wget http://pecl.php.net/get/memcache-4.0.5.2.tgz
tar zxvf memcache-4.0.5.2.tgz
cd memcache-4.0.5.2
phpize 命令 (在扩展文件所解压目录中去执行)
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
配置php.ini 注意这里可能会报错
extension = memcached.so
注:windows中的扩展后缀名叫.dll linux中的扩展的后缀名为.so
但,yum安装php的看过来吧
这样的方法我们也用来安装swoole,所以要确保自己熟练运用
接下来,我们来安装redis
启动redis服务
客户端连接redis服务
关闭redis的服务
4、安装php的redis扩展
文章标题:lnmp php7 搭建线上服务器 三
文章链接:http://soscw.com/index.php/essay/37866.html