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 仿Comsenz安装效果代码打包提供下载
May 09 PHP
PHP 小心urldecode引发的SQL注入漏洞
Oct 27 PHP
Yii框架中memcache用法实例
Dec 03 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
Feb 12 PHP
php去除字符串中空字符的常用方法小结
Mar 17 PHP
PHP闭包函数详解
Feb 13 PHP
实现PHP框架系列文章(6)mysql数据库方法
Mar 04 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
Nov 08 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
Sep 15 PHP
浅析PHP类的反射来实现依赖注入过程
Feb 06 PHP
PHP命名空间用法实例分析
Sep 04 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
php  单例模式详细介绍及实现源码
2016/11/05 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
2016/11/05 PHP
PHP语言对接抖音快手小红书视频/图片去水印API接口源码
2020/08/11 PHP
vs2003 js文件编码问题的解决方法
2010/03/20 Javascript
Checbox的操作含已选、未选及判断代码
2013/11/07 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
2014/04/23 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
2016/03/25 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
2016/05/30 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
2016/08/01 Javascript
JS动态遍历json中所有键值对的方法(不知道属性名的情况)
2016/12/28 Javascript
bootstrap日期插件daterangepicker使用详解
2017/10/19 Javascript
Vue 项目中遇到的跨域问题及解决方法(后台php)
2018/03/28 Javascript
JavaScript防止全局变量污染的方法总结
2018/08/02 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
微信小程序 冒泡事件原理解析
2019/09/27 Javascript
关于vue-cli3打包代码后白屏的解决方案
2020/09/02 Javascript
使用Python的Zato发送AMQP消息的教程
2015/04/16 Python
使用Python制作获取网站目录的图形化程序
2015/05/04 Python
Python利用前序和中序遍历结果重建二叉树的方法
2016/04/27 Python
使用Python的Tornado框架实现一个Web端图书展示页面
2016/07/11 Python
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
python中字符串变二维数组的实例讲解
2018/04/03 Python
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
正宗的澳大利亚Ugg靴子零售商:UGG Express
2020/04/19 全球购物
Weblogic和WebSphere不同特点
2012/05/09 面试题
文秘自荐信
2013/10/20 职场文书
医学生自荐信
2013/12/03 职场文书
教师队伍管理制度
2014/01/14 职场文书
大学生军训自我鉴定
2014/02/12 职场文书
英语自我介绍演讲稿
2014/09/01 职场文书
公司委托书格式范文
2014/10/09 职场文书
2014年绩效考核工作总结
2014/12/11 职场文书
JVM之方法返回地址详解
2022/02/28 Java/Android
在ubuntu下安装go开发环境的全过程
2022/08/05 Golang