CentOS7 下配置 Nginx + PHP7 + MariaDB + ThinkPHP5.1
最近突然想学习一下使用一些比较成熟的后台框架,考虑到之前帮大佬打下手的时候用过 ThinkPHP 所以就暂定了以 ThinkPHP 为主要学习目标。
下面是我在服务器端配置 Thinkphp 所需环境而踩的一些坑(且有很多已经是老坑了):
- 本次配置选择的服务器系统为 Centos7 环境是 Nginx + PHP7 + MariaDB + ThinkPHP5.1
- 我会按照我个人认为合适的顺序分别介绍他们的安装与配置过程
1. MariaDB 的安装与初始配置
# yum 安装 yum -y install mariadb mariadb-server # 安装完成MariaDB,首先启动MariaDB systemctl start mariadb # 设置开机启动 systemctl enable mariadb # 接下来进行MariaDB的相关简单配置 mysql_secure_installation #首先是设置密码,会提示先输入密码 Enter current password for root (enter for none):# 初次运行直接回车 #设置密码 Set root password? [Y/n] # 是否设置root用户密码,输入y并回车或直接回车 New password: # 设置root用户的密码 Re-enter new password: # 再输入一次你设置的密码 #其他配置 Remove anonymous users? [Y/n] # 是否删除匿名用户 Disallow root login remotely? [Y/n] #是否禁止root远程登录 Remove test database and access to it? [Y/n] # 是否删除test数据库 Reload privilege tables now? [Y/n] # 是否重新加载权限表 #初始化MariaDB完成,接下来测试登录 mysql -uroot -ppassword
2. PHP7 + PHP-FPM 安装
# 在centos7通过yum安装PHP7,首先在终端运行: rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm # 提示错误: error: Failed dependencies: epel-release >= 7 is needed by webtatic-release-7-3.noarch # 需要先安装epel-release。 yum -y install epel-release # 再安装PHP7 rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm # 获取PHP7的yum源 yum install php70w php70w-fpm # 验证安装 PHP -v, # 显示当前PHP版本,信息如下: [root@Ryoma /]# php -v PHP 7.0.18 (cli) (built: Apr 15 2017 07:09:11) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies # 这样就在CentOS 7下通过yum安装成功PHP7.
3. 编译安装 Nginx 并配置 PHP
# [必须]安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装: yum install gcc-c++ # [必须]PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令: yum install -y pcre pcre-devel # [自选]zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。 yum install -y zlib zlib-devel # [自选]nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。 yum install -y openssl openssl-devel # 官网下载 Ngxin # 直接下载.tar.gz安装包,地址:https://nginx.org/en/download.html # 推荐选择稳定版下载 : 当前版本 1.12.2 # 下载链接: https://nginx.org/download/nginx-1.12.2.tar.gz wget -c https://nginx.org/download/nginx-1.12.2.tar.gz # 解压 用到了之前下载的zlib库 若没下载可选择其他方式解压 tar -zxvf nginx-1.12.2.tar.gz # 编译前初始化配置 cd nginx-1.12.2 # 进入nginx目录 ./configure # 使用默认配置 # 编译安装 make make install # 查找安装路径 [root@Ryoma nginx-1.12.2]#whereis nginx nginx: /usr/local/nginx # 启动、停止 nginx cd /usr/local/nginx/sbin/ # 进入 nginx sbin 目录 ./nginx # 启动 nginx ./nginx -s quit # 此方式停止步骤是待 nginx 进程处理任务完毕进行停止 ./nginx -s stop # 此方式相当于先查出 nginx 进程id再使用kill命令强制杀掉进程 ./nginx -s reload # 重新加载 #查询 nginx 进程: ps aux|grep nginx # 配置 nginx vim /usr/local/nginx/conf/nginx.conf # 个人配置图如下
4. 安装 ThinkPHP5
# 全局安装 composer curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer # tp5 5.1 版本安装 composer create-project topthink/think tp5 --prefer-dist # PHP版本低于5.6的话 将仍然安装5.0版本
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
关于java web restful api文档的重新探索
谁说生成api文档就必须要定义注解? 谁说生成接口请求和返回示例必须要在线? 用代码去探路,不断尝试更多文档交付的可能性。 如果代码有生命,为什么不换种方式和它对话! 一、背景 没有背景、就自己做自己的背景 在当今各种盛行的前后端分离、restful service开发过程中,接口文档是必不可少的。对于前后端分离的开发中,后端开发需要将接口写好后需要告诉前端工程师接口的请求参数、响应示例等重要信息,而对于对外暴露的restful接口服务,我们提供接口也是需要具备相同的接口文档的。 但是对于后端工程师来讲,写接口文档将变成一个很大的工作量,虽然现在有类似apidoc、swagger这样的主流接口文档生成工具,但是如果实际用过,会发现这些工具不能满足实际需求,这里拿swagger为例,这个工具最大的优点能是提供在线的api文档,但是它天生就有很强的代码侵入性,要得到一个基本满足需求的api接口文档,必须在代码中使用swagger自定义的注解。这其实给开发人员增加学习成本和工作量,并且就算你使用大量的注解,有许多接口还是无法满足。因此不得不去做一次接口文档工具重新启航探索,api-doc应允...
- 下一篇
解决 ThinkPHP5 无法接收 客户端 Post 传递的 Json 参数
ThinkPHP5 版本: 5.0.16 这段时间在学习 API 开发,从网上搞了一个课程在跟着做,就在昨天我又一次碰到了讲师一路畅通我半天调试的情况,遇到的问题是我用 Postman 测试 API 某 Post 接口的时候无论怎么发送请求总是提示我参数验证失败,在我调试的过程中某次采用通过 Body 表传递参数的方法,API 神奇地通了,于是我判断是之前 Json 传递出了问题,就各种在网上搜,然而并没有解决方法[不过 Get 了两个知识点放在文章结尾处]。 关于 TP5 的问题度娘不行就只能查源代码了,于是乎我就跟着错误一点一点的打断点终于被我发现了问题所在: 原来 TP5 是通过 strpos 函数在 Header 的 content-type 值中查找 app/json 字符串,也就是说你必须设置 Header 的 content-type 值为 app/json 才行,否则 TP5 不会认为你传入的是 Json 参数并给 Request::post 设值为空。 以上就解决了 TP5 无法接收 客户端 Post 传递的 Json 参数的问题。 两个知识点: content-ty...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8编译安装MySQL8.0.19
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装Nodejs环境