CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)


Posted in PHP onSeptember 01, 2016

一、安装前的准备工作

1、yum update #更新系统

2、yum install gcc gcc-c++ autoconf automake cmake bison m4 libxml2 libxml2-devel libcurl-devel libjpeg-devel libpng-devel libicu-devel #安装php、MySQL、Nngix所依赖的包

3、下载以下包 #我把所有源文件都下载在root目录,读者可自行修改源文件存放目录

3.1 libmcrypt-2.5.8.tar.gz

3.2 mcrypt-2.6.8.tar.gz

3.3 mhash-0.9.9.9.tar.gz

3.4 zlib-1.2.8.tar.gz

解压并安装如:

#tar -zvxf libmcrypt-2.5.8.tar.gz
#cd libmcrypt-2.5.8
#./configure
#make && make insatll

4、在安装软件时如果提示有什么依赖包没有安装的可以再执行yum install * -y (*表示相关包)

二、编译安装Nginx

1、去官网http://nginx.org/en/download.html下载最nginx-1.10.1.tar.gz的稳定版本

2、编译步骤如下

1、通过winSCP上传nginx-1.10.1.tar.gz到/root目录下

1.1 groupadd -r nginx #新建nginx组

1.2 useradd -r -g nginx -s /bin/false nginx #新建无登录权限的nginx用户

1.3 id nginx #查看nginx组及用户

2、tar -zvxf nginx-1.10.1.tar.gz

3、cd nginx-1.10.1

4、可通过./configure --help查看编译配置参数,也可参考http://nginx.org/en/docs/configure.html,下列参数要写在一行中

./configure
--prefix=/usr/local/nginx
--modules-path=/usr/local/nginx/modules
--with-http_ssl_module
--pid-path=/usr/local/nginx/nginx.pid
--user=nginx
--group=nginx

5、make && make install #编译并安装

6、启动nginx

6.1 cd /usr/local/nginx

6.2 sbin/nginx #启动,可使用sbin/nginx -?查看nginx相关操作命令

7、在/usr/lib/systemd/system目录下新建nginx.service文件,这样就可以通过systemctl stop|start|reload nginx.service来操作nginx,也可参考https://www.nginx.com/resources/wiki/start/topics/examples/systemd/,内容如下:

 [Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target

三、编译安装MySQL

1、去官网http://dev.mysql.com/Downloads/MySQL-5.7/mysql-boost-5.7.14.tar.gz下载带boost的5.7.14版本

2、编译步骤如下

1、用winSCP上传mysql-boost-5.7.14.tar.gz到/root目录下

2、groupadd mysql

3、useradd -r -g mysql -s /bin/false mysql

4、用cmake编译mysql, 相关参数可以参考https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html,下列参数要写在一行

cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock
-DSYSCONFDIR=/usr/local/mysql/etc
-DSYSTEMD_PID_DIR=/usr/local/mysql
-DDEFAULT_CHARSET=utf8 
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 
-DMYSQL_DATADIR=/usr/local/mysql/data 
-DWITH_BOOST=boost
-DWITH_SYSTEMD=1

 5、make && make install

6、配置mysql并初始化数据库

6.1 cd /usr/local/mysql #进入编译目录

6.2 chown -R mysql . #修改目录所有者

6.3 chgrp -R mysql . #修改目录组

6.4 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld #配置mysqld服务

6.5 cp /usr/local/mysql/support-files/my-default.cnf /usr/local/mysql/my.cnf #配置my.cnf

6.5.1 复制以下内容到my.cnf文件中的[mysqld]下

 

user = mysql
 basedir = /usr/local/mysql
 datadir = /usr/local/mysql/data
 port = 3306
 server_id = /usr/local/mysql/mysqld.pid
 socket = /usr/local/mysql/mysql.sock

6.5 chkconfig mysqld on #设置mysqld开机自启

6.6 bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data #初始化数据库

6.7 bin/mysqld --user=mysql & #启动mysql, 如果报Please read "Security" section of the manual to find out how to run mysqld as root!,就在my.cnf中加入user=root, 表示以root用户启动

7、修改root用户登录密码并允许root用户远程登录

7.1 mysql -u root --skip-password

7.2 ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

7.3 允许root用户远程登录

7.3.1 use mysql;

7.3.2 update user set host='%' where user='root' and host='localhost'; #允许

(update user set host='localhost' where user='root'; #禁用)

7.3.3 flush privileges;

7.3.4 service mysqld restart

8、解决service mysqld start|stop报MySQL server PID file could not be found!或者Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe), 其实可通过阅读此文件解决相关错误

8.1 chmod 777 /usr/local/mysql #因我设置mysqld.pid文件保存在/usr/local/mysql目录,所以保证其有可写权限

8.2 通过winSCP修改/etc/init.d/mysqld文件

8.2.1 basedir=/usr/local/mysql #手动指定

8.2.2 datadir=/usr/local/mysql/data #手动指定

8.2.3 mysqld_pid_file_path=/usr/local/mysql/mysqld.pid #手动指定

8.2.4 把此文件中所有未注释的含有mysqld_safe的字符替换成mysqld

四、编译安装php

1、去官网http://php.net/downloads.php下载php7.0.10版本

2、编译步骤如下

1、用winSCP上传php-7.0.10.tar.gz到/root目录下

2、tar -zvxf php-7.0.10.tar.gz #解压

3、配置编译php参数, 可使用./configure --help命令查看所有编译配置项目, 下列参数要写在一行中

 ./configure 
--prefix=/usr/local/php
--exec-prefix=/usr/local/php
--datadir=/usr/local/php
--with-config-file-path=/usr/local/php/etc
--with-mysqli=mysqlnd
--with-pdo-mysql=mysqlnd
--with-fpm-user=nginx
--with-fpm-group=nginx
--with-gd
--with-iconv
--enable-mbstring
--enable-fpm
--enable-mysqlnd

4、make && make install #编译并安装

5、cd /usr/local/php #进入编译目录

6、修改相关配置文件

6.1 cp /usr/local/php/etc/php.ini.default /usr/local/php/etc/php.ini #php.ini中相关配置依项目需要自行修改,配置nginx支持php参考http://php.net/manual/zh/install.unix.nginx.php

6.2 cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf #去掉[global]项下pid前的;

6.3 cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf #大致在23、24行修改user和group如:user = nginx,group = nginx

7、chmod 777 /usr/local/php/var/run #默认PID文件是写在/usr/local/php/var/run这个目录中,所以修改目录权限

8、sbin/php-fpm #启动php, 可通过sbin/php-fpm -h 查看相关操作命令列表

9、在/usr/lib/systemd/system目录下新建php-fpm.service文件,这样就可以通过systemctl stop|start|reload php-fpm.service来操作php-fpm,内容如下:

 [Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target
Before=nginx.service
[Service]
Type=forking
PIDFile=/usr/local/php/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm
ExecStop=/bin/kill -QUIT `cat /usr/local/php/var/run/php-fpm.pid`
ExecReload=/bin/kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
PrivateTmp=true
[Install]
WantedBy=multi-user.target

五、至此在我的VirturBox中CentOS7.2下成功搭建了LNMP环境

CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)

以上所述是小编给大家介绍的CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
php和js交互一例-PHP教程,PHP应用
Jan 03 PHP
NOD32 v2.70.32 简体中文封装版 提供下载了
Feb 27 PHP
PHP下通过系统信号量加锁方式获取递增序列ID
Sep 25 PHP
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
Oct 12 PHP
PHP判断变量是否为0的方法
Feb 08 PHP
在PHP中使用X-SendFile头让文件下载更快
Jun 01 PHP
用 Composer构建自己的 PHP 框架之构建路由
Oct 30 PHP
调试WordPress中定时任务的相关PHP脚本示例
Dec 10 PHP
thinkphp3.x中变量的获取和过滤方法详解
May 20 PHP
PHP mysqli事务操作常用方法分析
Jul 22 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
Apr 10 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
Jul 22 PHP
PHP数组编码gbk与utf8互相转换的两种方法
Sep 01 #PHP
Yii2框架数据库简单的增删改查语法小结
Aug 31 #PHP
深入浅析Yii admin的权限控制
Aug 31 #PHP
php解决和避免form表单重复提交的几种方法
Aug 31 #PHP
PHP Callable强制指定回调类型的方法
Aug 30 #PHP
thinkphp配置文件路径的实现方法
Aug 30 #PHP
总结PHP删除字符串最后一个字符的三种方法
Aug 30 #PHP
You might like
桌面中心(四)数据显示
2006/10/09 PHP
php include,include_once,require,require_once
2008/09/05 PHP
php通过array_unshift函数添加多个变量到数组前端的方法
2015/03/18 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
2016/08/17 PHP
JavaScript 异步方法队列链实现代码分析
2010/06/05 Javascript
DOM2非标准但却支持很好的几个属性小结
2012/01/21 Javascript
表单元素的submit()方法和onsubmit事件应用概述
2013/02/01 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
javascript中apply、call和bind的使用区别
2016/04/05 Javascript
值得分享的JavaScript实现图片轮播组件
2016/11/21 Javascript
JavaScript获取键盘按键的键码(参照表)
2017/01/10 Javascript
javascript中递归的两种写法
2017/01/17 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
2017/05/03 Javascript
详解Vue.js搭建路由报错 router.map is not a function
2017/06/27 Javascript
JavaScript中Array方法你该知道的正确打开方法
2018/09/11 Javascript
vue 兄弟组件的信息传递的方法实例详解
2019/08/30 Javascript
通过滑动翻页效果实现和移动端click事件问题
2021/01/26 Javascript
[01:01:25]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第三局
2016/02/27 DOTA
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
2017/06/21 Python
MAC中PyCharm设置python3解释器
2017/12/15 Python
python web.py开发httpserver解决跨域问题实例解析
2018/02/12 Python
解决pyecharts在jupyter notebook中使用报错问题
2020/04/23 Python
python修改字典键(key)的方法
2019/08/05 Python
python tornado修改log输出方式
2019/11/18 Python
Tensorflow训练MNIST手写数字识别模型
2020/02/13 Python
Numpy 多维数据数组的实现
2020/06/18 Python
美国汽车交易网站:Edmunds
2016/08/17 全球购物
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
运动鞋、足球鞋和慕尼黑球衣:Sport Münzinger
2019/08/26 全球购物
.NET程序员的几道面试题
2012/06/01 面试题
小学标准化建设汇报材料
2014/08/16 职场文书
师德师风剖析材料
2014/09/30 职场文书
作息时间调整通知
2015/04/22 职场文书
求职信:求职应该注意的问题
2019/04/24 职场文书
2019企业给员工的慰问信
2019/06/24 职场文书