LNMP架构下的nginx、mysql、php的源码安装
一、LNMP的介绍
LNMP就是Linux+Nginx+Mysql+Php这种网站服务架构。Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统,常见版本有:centos、ubuntu、debain、fedora、gentoo等。Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Mysql是一个小型关系型数据库管理系统。PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。这四种软件均为开源软件,组合在一起成为免费、高校、扩展性强的网站服务系统。
二、mysql的源码编译及配置
(一) 源码编译
1) 安装源码编译工具cmake(cmake在软件包中有,但版本低于2.8,所以需要自己下载一个2.8以上的rpm包)
---> yum install -y cmake-2.8.12.2-4.e16.x86_64.rpm
2)从官网中下载mysql源码包,并解压
---> tar zxf mysql-boost-5.7.17.tar.gz
---> cd mysql-5.7.17
3)创建预编译环境,添加自己所需要的安装条件
---> cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql # 指定mysql安装路径
-DMYSQL_DATADIR=/usr/local/lnmp/mysql/data # 数据存储位置
-DWITH_INNOBASE_STORAGE_ENGINE=1 # 安装inmodb的存储引擎
-DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock # socket文件存储路径
-DWITH_MYISAM_STORAGE_ENGINE=1 # 安装myisam存储引擎
-DDEFAULT_CHARSET=utf8 # 使用编码格式为utf-8
-DDEFAULT_COLLATION=utf8_general_ci # 校验字符
-DEXTRA_CHARSETS=all # 安装所有扩展字符集
-DWITH_BOOST=boost/boost_1_59_0/ # boost路径
# 该命令会出现如下错误:(一)没有安装c语言编译器和c++编译器
解决方法:--- > yum install gcc gcc-c++ -y
# 安装编译器之后,再次编译,还会出现如下问题:(二)没有ncurses-devel包
解决方法:---> yum install -y ncurses-devel
---> rm -f CMakeCache.txt
# 此时再次进行预编译,我们可以看到已经顺利通过了。 (在此过程中,缺什么依赖包,我们下什么就行。有时也有可能会使用openssl-devel包)
4)编译汇编
---> make && make install # 该过程需要几十分钟
(二)mysql的配置
1)进入mysql安装目录,把默认配置文件放在/etc下
---> rpm -qa | grep mysql # 查看mysql的版本
---> cd /etc
---> mv my.cnf my.cnf.bak # 先将/etc下的mysql配置文件重命名
---> cd support-files
---> cp my-default.cnf /etc/my.cnf # 将配置文件拷贝到/etc(系统默认配置文件目录下 )
2)修改/etc下的配置文件
---> vim /etc/my.cnf # 修改如下内容。
basedir = /usr/local/lnmp/mysql # mysql的安装路径
datadir = /usr/local/lnmp/mysql/data # 数据存放目录
port = 3306 # 端口号
# server_id = .....
socket = /usr/local/lnmp/mysql/data/mysql.sock # socket文件存放目录
3)将编译完成的mysql执行脚本复制到/etc/init.d/目录
---> cp /usr/local/lnmp/mysql/support-files/mysql.server /etc/init.d/mysqld #若mysqld无执行权限,使用:chmod +x /etc/init.d/mysqld
4) 将编译生成的mysql二进制命令放进系统变量中。(方便直接使用mysql使用数据库)
---> vim ~/.bash_profile
---> source ~/.bash_profile # 加载.bash_profile,是配置生效
5) 对mysql服务进行限制
---> groupadd -g 27 mysql # 生成uid和gid均为27的mysql用户
---> useradd -u 27 -g 27 mysql
---> id mysql # 进行用户信息的查看
# 当前目录在/usr/local/lnmp/mysql下
---> chown root.mysql . -R # 为了保证数据的安全性,进行目录执行权限的设定
---> chown mysql.mysql . -R
(三)mysql的安全初始化
1)mysql密码的设置
---> bin/mysqld --initialize --user=mysql # 生称随机密码
---> /etc/init.d/mysqld start # 启动mysql服务
---> mysql_secure_installation # 自己设置密码,首密码为上面的随机密码(两个回车,四个y)
2)设置完成之后,我们试着登陆以下mysql。
---> mysql -p
三、PHP的源码安装
1)首先对php源码包进行解压
---> tar jxf php-5.6.35.tar.bz2
---> cd php-5.6.35
2)预编译及所需环境的安装(后面加了什么参数,就需要安装相应的依赖包)
---> ./configure --prefix=/usr/local/lnmp/php # php安装目录
--with-config-file-path=/usr/local/lnmp/php/etc # 配置文件所在位置
--enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd
--with-pdo-mysql=mysqldnd # 支持与mysql建立连接
--with-openssl # 支持openssl的加密
--with-snmp --with-gd --with-zlib --with-curl
--with-libxml-dir # 支持libxml函数
--with-png-dir --with-jpeg-dir --with-freetype-dir # 支持php处理图片
--with-pear --with-gettext --with-gmp --enable-inline-optimization --enable-soap
--enable-ftp --enable-sockets --enable-mbstring
--enable-fpm --with-mcrypt --with-mhash # 开启fpm模式(nginx服务使用);mcrypt提供加密算法;mhash使用hash加密
3) 解决依赖性锁需要的包
---> yum install libxml2-devel openssl-devel curl-devel gmp-devel net-snmp-devel gcc -y # 这些包,可以直接安装
# 之后,再次预编译,就可以成功了
4)编译和安装
---> make && make install
5) 创建nginx用户
---> useradd nginx
6) 修改php的配置文件
---> cd /usr/local/lnmp/php/etc # 进入配置文件所在目录
---> cp php-fpm.conf.default php-fpm.conf # 配置文件重命名
---> vim php-fpm.conf # 取消pid的注释,并添加nginx用户
---> cp /root/php-5.6.35/php.ini-production /usr/local/lnmp/php/etc/php.ini
---> vim php.ini # 修改数据的时区。
7)把php执行脚本复制到/etc/init.d/目录下
---> cd /root/php-5.6.35/sapi/fpm
---> cp init.d.php-fpm /etc/init.d/php-fpm
---> chmod +x /etc/init.d/php-fpm
8) 启动php-fpm服务,并查看端口是否开启
---> /etc/init.d/php-fpm start # 启动php服务,默认在9000端口
---> netstat -antlp
四、Nginx的源码编译
1)下载源码包,并解压(带有sticky模块的nginx)
---> tar zxf nginx-1.14.0.tar.gz
---> yum install unzip -y
---> unzip nginx-goodies-nginx-sticky-module-ng-08a395c66e42.zip
2)去掉nginx的版本号
---> cd /root/nginx-1.14.0
---> vim src/core/nginx.h
3) 注释掉debug(可以减少安装内容)
---> cd /root/nginx-1.14.0
---> vim auto/cc/gcc
4) 预编译
---> ./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --add-module=/root/nginx-goodies-nginx-sticky-module-ng-08a395c66e42
5) 依赖包的安装(按照提示,少什么包安装什么包即可)
---> yum install -y pcre-devel -y
6) 编译安装
---> make && make install
7) 配置nginx服务
---> cd /usr/local/lnmp/nginx/conf
---> vim nginx.conf # 修改用户,最大文件数,cpu,发布首页面,php信息
---> sysctl -a | grep file # 查看系统最大文件数
---> vim /etc/security/limits.conf # 修改nginx用户做限制
8)为了方便使用nginx二进制命令,我们可以做一个软连接
---> ln -s /usr/local/lnmp/nginx/sbin/nginx /sbin
9) 编写nginx默认发布文件
---> cd /usr/local/lnmp/nginx/html
---> vim index.php
10)启动nginx服务,并在浏览器中进行测试。
---> nginx # nginx的其他命令: nginx -s reload|stop # 重新加载配置文件|关闭服务;
# 在浏览器中结果如下
到此,所有软件的安装就完成了。接下来,我们就可以进行论坛的部署了。
LNMP架构下的nginx、mysql、php的源码安装的更多相关文章
- linux下MySQL 5.6源码安装
linux下MySQL 5.6源码安装 1.下载:当前mysql版本到了5.6.20 http://dev.mysql.com/downloads/mysql 选择Source Code 2.必要软件 ...
- nginx使用-1(源码安装nginx)
Nginx概述 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Ramb ...
- nginx + mysql + php相关源码包及安装
nginx + mysql + php安装 引言 完整的搭建一个nginx+php-fpm+mysql的服务器,一直是我向做的,不过一致没有完成过,这次工作需要,终于安装成功了 我列出了我遇到的一些问 ...
- MySQL入门01-MySQL源码安装
操作系统:CentOS 6.7 MySQL版本:5.6.30 1.前期准备 2.系统配置 3.CMake编译配置 4.make && make install 5.后期配置和测试 Re ...
- CentOS 6.3下MySQL 5.6源码安装
Linux操作系统:CentOS 6.3 1:下载:当前mysql版本到了5.6.10 下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downl ...
- Linux MySQL 5.1源码安装
安装必备的软件 yum install ncurses-devel -y yum install pcre pcre-devel -y yum install gcc* -y 解压缩 tar -z ...
- Ubuntu下Ruby的下载和编译源码安装
1.Ruby的下载 Ruby可以在Ruby 官网上下载,如果想获取更多的Ruby版本,可以到淘宝镜像网站下载. 2.Ruby的编译源码安装 解压 首先把下载下来的源码压缩包解压到自己指定的目录 编译安 ...
- mysql 5.7源码安装
http://blog.itpub.net/29733787/viewspace-1590891/
- 关于nginx的源码安装方式
Nginx(engine x)是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器, 也是一个 IMAP/POP3/SMTP 代理服务器.在高连接并发的情况下, ...
随机推荐
- xutil3 post 和 get请求
https://i.cnblogs.com/EditPosts.aspx?postid=7001253 compile 'org.xutils:xutils:3.3.36' 注册xutil3 < ...
- 国内比特币bitcoin交易平台
火币网: www.huobi.com 比特币中国: www.btcchina.com okcoin: www.okcoin.cn 中国比特币: www.chbtc.com 比特币交易 ...
- Windows mysql默认字符集修改
一.通过MySQL命令行修改: set character_set_client=utf8; set character_set_connection=utf8; set character_set_ ...
- CentOS7下的YUM源服务器搭建详解,过程写的很详细(转)
因为近期公司需要搭建一个YUM源服务器给大量的linux(mini)使用,所以因此在网上找了很多的教程,却没有一个特别详细的,很多都有遗漏,参差不齐.所以,打算自己做完之后方便以后查阅,特出此文档. ...
- Python Web开发之路
Flask相关 1.DBUtils数据库连接池 2.Flask之初体验 3.Flask之WTForms 4.Flask之信号 5.Flask之flask-session 6.Flask之flask-s ...
- CCPC-Wannafly Winter Camp Day5 (Div2, onsite)
Replay: Dup4: 时间复杂度算不对? 一点点思路不经过验证就激动的要死? 浪费自己一个小时还浪费别人一个小时? 对1e3不敏感? 1e3 * 1e3是多少? 模拟建边跑dp不写非要写个大模拟 ...
- Flume环境安装
源码包下载: http://archive.apache.org/dist/flume/1.8.0/ 集群环境: master 192.168.1.99 slave1 192.168.1.100 sl ...
- Thinkphp在Lnmp环境下部署项目先后报错问题解决:_STORAGE_WRITE_ERROR_:./Application/Runtime/Cache/Home/...Access denied.
首先报错:_STORAGE_WRITE_ERROR_:./Application/Runtime/Cache/Home/769e70f2e46f34ceb60619bbda5e4691.php 解决此 ...
- eclipse 项目svn忽略不需要提交的文件
1.eclipse选择window–>Prenference 2.选择Team–> Git下面的Ignoreed Resources –>Add Pattern –>一个一个的 ...
- about SpringBoot学习后记
<SpringBoot实战>第一章节入门的名称为Spring风云再起 看起来Spring的功能确实受Java开发者喜爱 在SpringBoot中,继续将Spring框架做了另一次的封装使框 ...