centos 7.2下搭建LNMP环境教程


Posted in PHP onNovember 20, 2016

本机环境:服务器是阿里云ECS;使用的镜像是:公共镜像 CENTOS 7.2 

一.nginx安装

1.下载对应当前系统版本的nginx包(package)

​ wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

2.建立nginx的yum仓库(默认yum是没有nginx的)

​ rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm

3.下载并安装nginx

​ yum install nginx

4.nginx启动(nginx安装目录下-/usr/sbin/)

systemctl start nginx.service

ps:一些其它nginx相关命令:

nginx相关配置文件:

​ 默认的配置文件在 /etc/nginx 路径下,使用该配置已经可以正确地运行nginx;

​ 如需要自定义,修改其下的 nginx.conf 等文件即可;

在浏览器地址栏中输入部署nginx环境的机器的IP,如果一切正常,应该能看到如下字样的内容。

Welcome to nginx!

If you see this page, the nginx web server is successfully installed andworking. Further configuration is required.

For online documentation and support please refer tonginx.org.Commercial support is available atnginx.com.

Thank you for using nginx.

第二步:MYSQL安装

1.先下载mysql的repo源;相关命令:

​ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

2.安装mysql-community-release-el7-5.noarch.rpm包

(安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo)

​ rpm -ivh mysql-community-release-el7-5.noarch.rpm

3.安装MYSQL

​ sudo yum install mysql-server

4.重置密码

​ 更改用户权限:

sudo chown -R root:root /var/lib/mysql

​ 重启服务:

systemctl restart mysql.service

​ 登录,并修改密码:

mysql -u root

​ mysql > use mysql;

​ mysql > update user set password=password(‘123456‘) where user=‘root‘;

​ mysql > exit;

第三步:安装php

1.查看当前安装的php版本( yum list installed | grep php)

​ 如果存在php安装包先删除之前版本  用yum remove 移除 php相关的包

2.rpm 安装 Php7 相应的 yum源

​ rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm

​ rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

3.安装php7.0

yum install php70w

4.安装php扩展

​ php70w-mysql.x8664  mysql扩展(作为依赖同时安装 php70w-pdo.x8664)

​ php70w-gd.x86_64  GD库,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。

​ php70w-ldap.x86_64 "轻量级目录访问协议",是一个用于访问"目录服务器"(Directory Servers)的协议;

php70w-mbstring.x86_64 mbstring扩展库用于处理多字节字符串,PHP内置的字符串长度函数strlen无法正确处理中文字符串,它得到的只是字符串所占的字节数。对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是1~3倍的差异了。采用mb_strlen函数可以较好地解决这个问题。

php70w-mcrypt.x86_64 Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。

5.安装PHP FPM

​ yum install php70w-fpm

关于 php-fpm

​ PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。

​ 现在我们可以在最新的PHP 5.3.2的源码树里下载得到直接整合了PHP-FPM的分支,据说下个版本会融合进PHP的主分支去。相对Spawn-FCGI,PHP-FPM在CPU和内存方面的控制都更胜一筹,而且前者很容易崩溃,必须用crontab进行监控,而PHP-FPM则没有这种烦恼。

​ PHP5.3.3已经集成php-fpm了,不再是第三方的包了。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多优点,所以被PHP官方收录了。在./configure的时候带 ?enable-fpm参数即可开启PHP-FPM。

使用PHP-FPM来控制PHP-CGI的FastCGI进程

第四步:配置nginx

修改配置文件之前记得备份

1.nginx配置文件位置:(/etc/nginx/conf.d/default.conf)

​ 修改web root目录(如果没有需求也可以不用修改,使用默认即可):

root /wwwdata/html;

​ 配置php解析,修改 下面代码中黑色加粗部分:

​ location ~.php$ {

​ fastcgi_pass 127.0.0.1:9000;

​ fastcgi_index index.php;

​fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

​ include    fastcgi_params;

​ }

2.php-fpm配置文件位置:(/etc/php-fpm.d/www.conf)

​ 修改

user =nginx

​ group=nginx

3.启动nginx服务:

systemctl start nginx.service

​ 如需设置开机自启使用以下命令:

sudo systemctl enable nginx.service

​ 查看启动状态:

systemctl status nginx 

看到以下字眼说明启动成功!

​Active: active (running) since 六 2016-11-19 13:40:04 CST; 50min ago

4.启动PHP-FPM:

systemctl start php-fpm.service

 如需设置开机自启试用以下命令:

sudo systemctl enable php-fpm.service

​ 查看启动状态:

systemctl status php-fpm.service

看到以下字眼说明启动成功!

​Active: active (running) since 六 2016-11-19 14:14:33 CST; 18min ago

至此,php+mysql+nginx 环境搭建完成!

最后,在web根目录下下一个php文件测试下;呼呼~~

为了更方便的访问修改数据库,需要安装mysql管理工具 phpMyAdmin

跳转web根目录:(根据之前设置跳转自己的网站根目录)

cd /wwwdata/html/

下载pma安装包:

wget https://files.phpmyadmin.net/phpMyAdmin/4.4.12/phpMyAdmin-4.4.12-all-languages.zip

解压安装包:

unzip phpMyAdmin-4.4.12-all-languages.zip

这里如果缺少 unzip 需要先安装unzip;

yum install unzip zip

重命名安装文件夹

mv phpMyAdmin-4.4.12-all-languages phpmyadmin

修改session存放目录权限:

chown -R nginx.nginx /var/lib/php/session

如果需要修改session根目录位置 需要修改位置:

/etc/php.ini 中修改 session.save_path

由于 /etc/php-fpm.d/www.conf中 的 session.save_path  比php.ini优先级更高所以如果 存在  /etc/php-fpm.d/www.conf中 的 session.save_path 只需修改这个即可

访问http://youipaddress/phpmyadin,如果能访问上,那么就成功了!

以为这样就可以了 但是登录又出现问题!登陆不上 !

做了一下修改:

   1.修改/var/lib/php/session文件夹权限 770以上

​   2.在phpmyadmin目录下 config.sample.inc.php 中修改 $cfg'Servers'['user'] = 'root';$cfg'Servers'['password'] = '123456'; 为自己设置的用户名密码;

PHP 相关文章推荐
xml+php动态载入与分页
Oct 09 PHP
PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
Jul 01 PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
Dec 19 PHP
PHP5权威编程阅读学习笔记 附电子书下载
Jul 05 PHP
php读取图片内容并输出到浏览器的实现代码
Aug 08 PHP
PHP Switch 语句之学习笔记
Sep 21 PHP
PHP实现将textarea的值根据回车换行拆分至数组
Jun 10 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
Jan 07 PHP
thinkphp修改配置进入默认首页的方法
Feb 07 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
Nov 06 PHP
php的RSA加密解密算法原理与用法分析
Jan 23 PHP
使用Rancher在K8S上部署高性能PHP应用程序的教程
Jul 10 PHP
浅析php中array_map和array_walk的使用对比
Nov 20 #PHP
php解决DOM乱码的方法示例代码
Nov 20 #PHP
使用Yii2实现主从数据库设置
Nov 20 #PHP
php 二维数组时间排序实现代码
Nov 19 #PHP
php原生导出excel文件的两种方法(推荐)
Nov 19 #PHP
php socket通信简单实现
Nov 18 #PHP
php微信开发之自定义菜单实现
Nov 18 #PHP
You might like
用PHP将数据导入到Foxmail
2006/10/09 PHP
PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
2011/07/23 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
2019/07/20 PHP
Jquery选择器 $实现原理
2009/12/02 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
2014/01/09 Javascript
总结几道关于Node.js的面试问题
2017/01/11 Javascript
jQuery插件zTree实现的多选树效果示例
2017/03/08 Javascript
angular4 如何在全局设置路由跳转动画的方法
2017/08/30 Javascript
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
2017/09/19 NodeJs
JavaScript callback回调函数用法实例分析
2018/05/08 Javascript
利用Vue实现一个markdown编辑器实例代码
2019/05/19 Javascript
Vue项目实现换肤功能的一种方案分析
2019/08/28 Javascript
Vue插件之滑动验证码用法详解
2020/04/05 Javascript
javascript 数组(list)添加/删除的实现
2020/12/17 Javascript
[56:35]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第二局
2016/02/27 DOTA
[03:05]《我与DAC》之xiao8:DAC与BG
2018/03/27 DOTA
对Python3中列表乘以某一个数的示例详解
2019/07/20 Python
Python坐标线性插值应用实现
2019/11/13 Python
python实现快递价格查询系统
2020/03/03 Python
python的链表基础知识点
2020/09/13 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
对Pytorch 中的contiguous理解说明
2021/03/03 Python
canvas实现滑动验证的实现示例
2020/08/11 HTML / CSS
UGG雪地靴德国官网:UGG德国
2016/11/19 全球购物
Stefania Mode英国:奢华设计师和时尚服装
2017/10/23 全球购物
ghd澳大利亚官方网站:英国最受欢迎的美发工具品牌
2018/05/21 全球购物
澳大利亚购买健身器材网站:Gym Direct
2019/12/19 全球购物
同步和异步有何异同,在什么情况下分别使用他们?举例说明
2014/02/27 面试题
幼师自荐信
2013/10/26 职场文书
房产委托公证书样本
2014/04/04 职场文书
婚纱摄影师求职信范文
2014/04/17 职场文书
文案策划岗位个人自我评价(范文)
2019/08/08 职场文书
关于html选择框创建占位符的问题
2021/06/09 HTML / CSS
使用pd.merge表连接出现多余行的问题解决
2022/06/16 Python
Go 内联优化让程序员爱不释手
2022/06/21 Golang