nginx ,php,MySQL 版本选择和安装

搭建web服务器,我一直选择的LNMP环境:

  • centos7.2
  • Nginx
  • Mysql
  • PHP

Centos就不用叙述了,以下主要从Nginx,Mysql ,PHP的的版本选择,不同版之间的差异,安装,以及安装所遇到的问题进行汇总。

Nginx

版本

nginx

nginx 主要分为mainline和stable两种version,后者是稳定版本,一般生产环境中采用稳定版本。现在最新的稳定版本是1.10.2。

安装

安装方式有两种,一种是直接yum安装,一种是源码安装。推荐后者,安装过程和配置可控

1、yum安装
要想快,直接yum,首先安装epel,epel是centos等衍生发行版,用来弥补centos内容更新有时比较滞后或是一些扩展的源没有。

1
2
3
4
5
6
7
yum install epel-release
yum install nginx (坏处是无法控制安装版本(一般是最新版)和自定义配置模块)
systemctl enable nginx.service 加入到自动启动
systemctl start nginx.service 启动服务
rpm -qa | grep nginx//可查看安装了nginx哪些包
nginx -V 查看编译选项

2、nginx源码安装

PHP安装

版本选择

Composer 作者 Jordi Boggiano 对 packagist.org 今年 5 月份的 composer install 和 require 的数据做了统计,发现 PHP 开发者,至少使用 Composer 的 PHP 开发者对 PHP 7 的接受度蛮高的。

Composer 在服务器通讯过程中把 PHP 版本号通过 User-Agent 一并发送,通过这个数据,得出以下:
2015年11月
2016年5月
占比对比

可以看出php5.5,5.6,7.0逐渐占据很大部分的市场份额,其中最新出来的php7.0发展迅速,其他版本逐渐被淘汰。
由于还没有跟上php发展的速度,我这里选择php5.6版本。

php安装

1、检查当前安装的PHP包

1
2
3
yum list installed | grep php
如果有安装的PHP包,先删除他们
yum remove ...

2、安装php的一个安装源

centos的软件安装源更新的有点慢,如果直接用yum安装,会导致安装的php版本过低,可能是5.4版,因此需要安装php的一个安装源。

1
2
3
CentOs 7.X
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

3、安装php5.6版

1
2
3
4
5
6
7
8
yum -y install php56w php56w-fpm php-opcode
会自动的安装php56w-common,php56w-cli
安装一些php扩展包
yum -y install php56w-mysql php56w-mcrypt php56w-mbstring php56w-gd php56w-devel php56w-pdo php56w-soap
systemctl enable php-fpm.service 开机启动
systemctl start php-fpm.service 启动服务
rpm -qa | grep php//可查看安装了php哪些包

安装指南
php可以选择源码安装和编译,但是比较费时和可能出现未知的错误,因此先采用yum安装,后续有时间再试下源码编译安装。
如果要升级php版本,最后先卸载之前的然后重新装,省去很多麻烦

MySql

版本选择

自从mysql归于oracle之后,就要闭源的倾向。它的开发者在mysql的基础上又创建了mariadb这个和mysql绝大多数兼容的数据库,现在centos上默认安装的是mariadb,不是mysql。我这里还是选择安装mysql,之前学习的就是这个。

mysql主要的版本有:

  1. MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
  2. MySQL Enterprise Edition 企业版本,需付费,可以试用30天。
  3. MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。
  4. MySQL Cluster CGE 高级集群版,需付费。
  5. MySQL Workbench(GUI TOOL)一款专为MySQL设计的ER/数据库建模工具。它是著名的数据库设计工具DBDesigner4的继任者。MySQL Workbench又分为两个版本,分别是社区版(MySQL Workbench OSS)、商用版(MySQL Workbench SE)

这里选择安装mysql的社区版本。

mysql安装

1、安装mysql的repo源

1
2
3
4
5
6
7
8
9
10
11
如果存在mariadb。就先卸载
yum remove mariadb
下载mysql源
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
安装
rpm -ivh 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
yum install mysql-server
安装完后启动
systemctl start mysql.service

2、安全设置

这是必需的,不然谁都可以访问你的mysql

1
mysql_secure_installation

然后一路Y下去

3、错误解决
安装mysql之后一般有点小麻烦。。。这些基本上都是权限不对造成的。

1
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

这是mysql的用户和用户组不对
解决方法

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

防火墙配置

安装完之后,需要重新测试一下是否搞定了。之前还需求进行防火墙的配置

1
2
3
4
5
firewall-cmd --list-all //查看开启的端口
//打开80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
//重启一下防火墙,生效
firewall-cmd --reload

此时访问就能看的nginx的欢迎页面了。

后续目标:
每次都这么配置,很累,下一步就写个shell脚本自动解决。