LNMP源码搭建过程

实验准备:

此次搭建使用rhel6.5版本的镜像

注意:创建的快照至少20G

172.25.58.1           Lnmp服务器

172.25.58.250      客户端

安装包已经在官网上下载好

mysql源码编译时要求虚拟机的硬盘大小不能小于20G,否则后边的编译过程可能会出问题
而且会很漫长,为了提升速度我们增加CPU核数和内存大小。

一、mysql的源码安装

尽行安装:

1、解压安装mysql

tar zxf mysql-boost-5.7.17.tar.gz

2、安装cmake(相当于configure),用来编译mysql比较简洁

yum install -y cmake-2.8.12.2-2.el7.x86_64.rpm

创建安装目录:

mkdir /usr/local/lnmp

3、用cmake来编译和安装必备的东西(mysql5.5之后就可以用cmake来编译)

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql \     #安装目录 
     -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data \        #数据库存放目录
	 -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock \  #Unix socket 文件路径
	 -DWITH_MYISAM_STORAGE_ENGINE=1 \                     #安装 myisam 存储引擎
	 -DWITH_INNOBASE_STORAGE_ENGINE=1 \                   #安装 innodb 存储引擎
	 -DDEFAULT_CHARSET=utf8 \                             #使用 utf8 字符
	 -DDEFAULT_COLLATION=utf8_general_ci \                #校验字符
	 -DEXTRA_CHARSETS=all \                               #安装所有扩展字符集
	 -DWITH_BOOST=boost/boost_1_59_0/     
 

4、此时解析错误:

不用慌张,按照提示来就行

根据编译的结果提示解决依赖性问题
需要安装包:

yum install -y gcc gcc-c++ ncurses-devel

6、下载好这些,需要进行重新编译解析,要进行:清除缓存和删除 产生的.txt文件

make clean
rm -fr CmakeCache.txt

目的:要清楚原来的对象文件和缓存信息。

7、此时编译还会报错,缺少 -DWITH_BOOST=<directory> 参数

-DWITH_BOOST=boost/boost_1_59_0/   

8、所以目前完整的编译参数是

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=boost/boost_1_59_0/

9、但此时编译还会有一个问题:

后面编译会有一个warning:
CMake Warning at cmake/bison.cmake:20 (MESSAGE):
  Bison executable not found in PATH
Call Stack (most recent call first):
  sql/CMakeLists.txt:514 (INCLUDE)

解决:  yum install bison  -y  即可

 10、make && make install (过程较长)    如果make还有问题,删除原来的目录,重新解压编译

 注意:需要查看自己的虚拟机的内存大小,一般我们定为20G,如果你的内存过于小的话,在安装mysql时会出现问题。

11、检测是否安装成功:

cd /usr/local/lnmp  即安装路径下查看是否由mysql软件

安装完毕的后续操作:

1、复制启动脚本

cp /root/lnmp/mysql_5.7.l7/support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld   赋予脚本执行权限

2、将之前的备份

cp my.cnf my.cnf.bak

/root/lnmp/mysql_5.7.l7/support-files/my-default.cnf /etc/my.cnf

vim /etc/my.cnf     然后修改配置:

basedir = /usr/local/lnmp/mysql
datadir = /usr/local/lnmp/mysql/data
socket = /usr/local/lnmp/mysql/data/mysql.sock

3、添加用户和组:  

groupadd -g 27 mysql

useradd -u 27 -g 27 mysql (id=27是因为rpm默认安装时mysql用户的id为27,并非强制)

chown mysql.mysql /usr/local/lnmp/mysql -R (修改mysql目录的权限,使其对mysql用户可写)

4、将mysql命令添加到环境变量
 

vim ~/.bash_profile
添加:PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin
生效:source ~/.bash_profile

5、初始化mysql:

mysqld --user=mysql --initialize

以mysql用户进行初始化,此时会生成一个密码,在出现字符的最下方,用户登录mysql

6、安全起见,将mysql目录的所有者改为root

chown root /usr/local/lnmp/mysql -R
chown mysql /usr/local/lnmp/mysql/data -R  ##数据目录所有者必须是mysql,不然mysql用户不能写

7、此时,启动mysqld   /etc/init.d/mysqld start

8、mysql -uroot -pYyz234..

此时使用刚才生成的临时密码,但是此时查看不了数据库,原因就是要修改密码,然后才能登陆

9、mysql_secure_installation  进行密码初始化,然后进行修改密码

注意:密码应该为字母大小写的组合

10、此时进行登陆,可以查看数据库mysql -uroot -p


二、PHP的源码安装

tar jxf php-5.6.35.tar.bz2   解压

cd php-5.6.35

./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-gmp --with-gettext --with-pear --enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash

进行解析

此时解析完会出现以下错误:

checking libxml2 install dir... yes
checking for xml2-config path... 
configure: error: xml2-config not found. Please check your libxml2 installation.

根据提示来即可,即缺少libxm12,那就:

yum install -y libxml2-devel 

然后继续编译,接下来遇到什么报错,继续按照步骤来就行,缺什么yum whatprovides */名字  来寻找安装包的完整名字以及型号。

然后进行安装即可~~~

yum 源里有的,大概就得下这些:

yum install -y openssl-devel
yum install -y libcurl-devel
yum install -y libjpeg-turbo-devel-1.2.1-1.el6.x86_64
yum install -y libpng-devel-1.2.49-1.el6_2.x86_64
yum install freetype-devel-2.3.11-14.el6_3.1.x86_64 -y
yum install gmp-devel-4.3.1-7.el6_2.2.x86_64 -y
yum install -y net-snmp-devel-5.5-49.el6.x86_64

 yum源里没有的就得自己在官网上下载:

注意:rhel7可以向下兼容rhel6.x的包:

yum install -y  
libmcrypt-2.5.8-9.el6.x86_64.rpm 
libmcrypt-devel-2.5.8-9.el6.x86_64.rpm

如下图,则编译成功~~~

 make && make install   进行安装

安装完毕后,进行后期配置

编译时添加了
--with-fpm-user=nginx --with-fpm-group=nginx 参数
所以添加 nginx 用户
useradd nginx
cp /usr/local/lnmp/php/etc/php-fpm.conf.default php-fpm.conf

vim php-fpm.conf

查看配置文件中以下几项是否开启:
 149 user = nginx
 149 group = nginx
 25  pid = run/php-fpm.pid

拷贝更改php主配置文件

cd /root/php-5.6.35
cp php.ini-production /usr/local/lnmp/php/etc/php.ini 
vim /usr/local/lnmp/php/etc/php.ini
936 date.timezone = Asia/Shanghai

拷贝php启动脚本至/etc/init.d/ 

cd /root/lnmp/php-5.6.35/sapi/fpm 
cp init.d.php-fpm /etc/init.d/php-fpm 
添加执行权限:
       chmod +x /etc/init.d/php-fpm 
启动php
       /etc/init.d/php-fpm start
useradd nginx
id nginx
uid=500(nginx) gid=500(nginx) groups=500(nginx)
[root@server1 fpm]# /etc/init.d/php-fpm start
Starting php-fpm  done
[root@server1 fpm]# netstat -antuple | grep 9000
tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      0          186164     12437/php-fpm  

 

三、Nginx的源码安装

官网上下载好安装包~

1、解压nginx:tar zxf nginx-1.14.0.tar.gz

2、进入nginx解压包,注释掉版本号()

vim src/core/nginx.h
 14 #define NGINX_VER          "nginx/" 


修改gcc文件,关闭debug模式

vim auto/cc/gcc
# debug
#CFLAGS="$CFLAGS -g" (将这2行注释调,关闭debug)

3、编译安装nginx:
./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --user=nginx --group=nginx

根据提示解决依赖性    ##此处应该还需要安装pcre-devel

yum install pcre-devel -y

4、make && make install

判断是否安装好了,进安装路径下找,看是否存在nginx软件。

5、修改nginx配置文件,开启php模块
 

vim /usr/local/lnmp/nginx/conf/nginx.conf

43  location / {
44             root   html;
45             index  index.php index.html index.htm; (添加php页面)
46         }


65  location ~ \.php$ {
66             root           html;
67             fastcgi_pass   127.0.0.1:9000;
68             fastcgi_index  index.php;
69             #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
70             include        fastcgi.conf;
71         }


6、将nginx启动脚本链接到/usr/local/sbin/

ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/
[root@server1 ~]# nginx -t    ##检测语法
[root@server1 ~]# nginx        ##开启nginx

7、尝试访问:http://172.25.58.1   ##是nginx默认页面
在nginx默认发布目录添加 index.php

vim /usr/local/lnmp/nginx/html/index.php
<?php
phpinfo()
?>

#可以看到php的默认页面

8、启动nginx并访问:http://172.25.58.1

nginx安装配置完成

Lnmp架构搭配完成。

刚才在Nginx的配置文件中,将php和Nginx关联起来,那么如何将mysql和php结合起来,使其可以访问到数据库呢?

刚才没有进行说明。

vim test_mysql.php (放在站点目录下面/html/www)
<?php
//$link_id=mysql_connect('主机名','用户','密码');
//mysql -u用户 -p密码 -h 主机
$link_id=mysql_connect('localhost','root','123456') or mysql_error();
if($link_id){
echo "mysql successful by oldboy !\n";
}else{
echo mysql_error();
}
?>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值