• LNMP源码编译


    LNMP源码编译

    编译安装之前把开发包组安装了

    [root@tiandong63 ~]# yum groupinstall "Development Tools" "Development Libraries" -y

    [root@tiandong63 ~]# yum install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre* -y

     Zlib:Nginx提供gzip模块,需要zlib的支持

    Openssl:Nginx提供SSL的功能

    [root@tiandong63 ~]# tar -xf pcre-8.37.tar.bz2 -C /usr/local/src/

    pcre不需要安装,把他解压一下就可以了,等会编译nginx的时候指定目录就可以读到

    [root@tiandong63 ~]# tar xf nginx-1.8.0.tar.gz -C /usr/local/src/

    [root@tiandong63 ~]# cd !$

    cd /usr/local/src/

    [root@tiandong63 src]# cd nginx-1.8.0/

    [root@tiandong63 nginx-1.8.0]# ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre=/usr/local/src/pcre-8.37

    参数解释:

    --with-http_dav_module                  #启用支持(增加PUT,DELETE,MKCOL:创建集合,COPY和MOVE方法)

                                        默认关闭,需要编译开启

    --with-http_stub_status_module    #启用支持(获取Nginx上次启动以来的工作状态)

    --with-http_addition_module         #启用支持(作为一个输出过滤器,支持不完全缓冲,分部分相应请求)

    --with-http_sub_module                 #启用支持(允许一些其他文本替换Nginx相应中的一些文本)

    --with-http_flv_module                   #启用支持(提供支持flv视频文件支持)

    --with-http_mp4_module                      #启用支持(提供支持mp4视频文件支持,提供伪流媒体服务端支持)

    --with-pcre=/usr/local/src/pcre-8.37   #需要注意,这里指的是源码,用#./configure --help |grep pcre查看帮助

    [root@tiandong63 nginx-1.8.0]# make -j 3 && make install

    [root@tiandong63 ~]# useradd -M -u 8001 -s /sbin/nologin nginx  添加用于运行nginx的用户

    [root@tiandong63 ~]# ll /usr/local/nginx/    nginx目录结构

    total 16

    drwxr-xr-x. 2 root root 4096 Jan  9 03:26 conf    nginx相关配置文件

    drwxr-xr-x. 2 root root 4096 Jan  9 03:26 html    网站根目录

    drwxr-xr-x. 2 root root 4096 Jan  9 03:26 logs     日志文件

    drwxr-xr-x. 2 root root 4096 Jan  9 03:26 sbin     nginx启动脚本

    [root@tiandong63 ~]# vim /usr/local/nginx/conf/nginx.conf

     

    [root@tiandong63 ~]# /usr/local/nginx/sbin/nginx    启动nginx服务

     [root@tiandong63 ~]# netstat -tlunp |grep nginx     查看服务是否启动

    tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      31599/nginx        

    测试一下:

     

    nginx相关维护命令:

    [root@tiandong63 ~]# /usr/local/nginx/sbin/nginx -t   检查配置文件语法是否有错误

    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

    [root@tiandong63 ~]# /usr/local/nginx/sbin/nginx -s reload  重新加载配置文件

    [root@tiandong63 ~]# ln -s /usr/local/nginx/sbin/nginx /bin/  加上此软连接在根目录下也可 以执行nginx的相关命令。

    编译安装MySQL

    安装之前使用 yum remove mysql  确保没有安装MySQL

    [root@tiandong63 ~]# yum install -y cmake  ncurses-devel

    [root@tiandong63 ~]# tar xf mysql-5.6.26.tar.gz -C /usr/local/src/

    [root@ tiandong63 mysql-5.6.26]# useradd -M -s /sbin/nologin mysql           创建mysql运行用户

    [root@ tiandong63 mysql-5.6.26]# cmake 

     -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 

     -DMYSQL_UNIX_ADDR=/tmp/mysql.sock 

     -DDEFAULT_CHARSET=utf8 

     -DDEFAULT_COLLATION=utf8_general_ci 

     -DWITH_EXTRA_CHARSETS=all 

     -DWITH_MYISAM_STORAGE_ENGINE=1

     -DWITH_INNOBASE_STORAGE_ENGINE=1

     -DWITH_MEMORY_STORAGE_ENGINE=1

     -DWITH_READLINE=1

     -DENABLED_LOCAL_INFILE=1

     -DMYSQL_DATADIR=/usr/local/mysql/data 

     -DMYSQL-USER=mysql

    ***********************************参数解释******************************************************************************

    DCMAKE_INSTALL_PREFIX                                      #制定mysql的安装根目录,目录在安装的时候会自动创建,这个值也可以在服务器启动时,用--basedir来设置

    DMYSQL_UNIX_ADDR                                           #服务器与本地客户端进行通信的Unix套接字文件,必须是绝对路径,默认位置/tmp/mysql.sock,可以在服务器启动时,用--socket改变

    DDEFAULT_CHARSET                        #mysql默认使用的字符集,不指定将默认使用Latin1西欧字符集

    DDEFAULT_COLLATION                           #默认字符校对

    DWITH_EXTRA_CHARSETS                  #制定mysql拓展字符集,默认值也是all支持所有的字符集

    DWITH_MYISAM_STORAGE_ENGINE 

    DWITH_INNOBASE_STORAGE_ENGINE

    DWITH_MEMORY_STORAGE_ENGINE

    #静态编译MYISAM,INNOBASE,MEMORY存储引擎到MYSQL服务 器,这样MYSQL就支持这三种存储引擎

    DWITH_READLINE                    #支持readline库

    DENABLED_LOCAL_INFILE                    #允许本地倒入数据,启用加载本地数据

    DMYSQL_DATADIR                                #mysql数据库存放路径

    DMYSQL-USER                                    #运行mysql的用户

    [root@xuegod63 mysql-5.6.26]# make -j 4 && make install

    [root@tiandong63 mysql-5.6.26]# chown -R mysql.mysql /usr/local/mysql/

    [root@tiandong63 mysql-5.6.26]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

    cp: overwrite `/etc/my.cnf'? y

    [root@tiandong63-mysql-5.6.26]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

    [root@tiandong63 mysql-5.6.26]# vim /etc/init.d/mysqld

    basedir= /usr/local/mysql

    datadir= /usr/local/mysql/data

    [root@tiandong63 mysql-5.6.26]# chkconfig mysqld on

    初始化数据库:

    [root@tiandong63 mysql-5.6.26]# /usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql

    [root@tiandong63 ~]# ll /usr/local/mysql/data/

    total 110604

    -rw-rw----. 1 mysql mysql 12582912 Jan  9 03:26 ibdata1

    -rw-rw----. 1 mysql mysql 50331648 Jan  9 03:26 ib_logfile0

    -rw-rw----. 1 mysql mysql 50331648 Jan  9 03:26 ib_logfile1

    drwx------. 2 mysql mysql     4096 Jan  9 03:26 mysql

    drwx------. 2 mysql mysql     4096 Jan  9 03:26 performance_schema

    drwxr-xr-x. 2 mysql mysql     4096 Jan  9 03:13 test

    [root@tiandong63 ~]# ln -s /usr/local/mysql/bin/* /bin/

    [root@tiandong63 ~]# /etc/init.d/mysqld start

    [root@tiandong63 ~]# mysql_secure_installation

    PHP:

    首先解决依赖关系:

    [root@tiandong63 ~]# yum install php-pear -y

    //pear按照一定的分类来管理pear应用代码库,你

    的pear代码可以组织到其中适当的目录中,其他人可以方便的检索并分享到你的成果;pear不仅仅是一个代码仓库,它同时也是一个标准,使用这个标准来书写你的php代码,将会增强你的程序的可读性,复用性,减少出错的几率;Pear通过两个类为你搭建了一个框架,实现了诸如析构函数,错误捕获功能,你通过继承就可以使用这些功能

    [root@tiandong63 ~]# tar -xf libmcrypt-2.5.8.tar.bz2 -C /usr/local/src/

    [root@tiandong63 libmcrypt-2.5.8]# pwd

    /usr/local/src/libmcrypt-2.5.8

    [root@tiandong63 libmcrypt-2.5.8]# ./configure --prefix=/usr/local/libmcrypt && make && make install     

    除开上面的依赖解决之外,还需要安装图片,xml,字体支持基本库,使用yum去安装,安装的时候,这些软件包自

    身也有依赖!

    [root@tiandong63 ~]# yum install -y libxml2-devel libcurl-devel libjpeg-devel libpng-devel freetype freetype-devel

    需要添加到库文件路径,由于系统默认规定只在/lib、/lib64、/lib/lib64下面找库文件,所以我们需要手动添加进去。

    [root@tiandong63 ~]# vim /etc/ld.so.conf

    1 include ld.so.conf.d/*.conf

      2 /usr/local/libmcrypt/lib

      3 /usr/local/mysql/lib

    [root@tiandong63 ~]# ldconfig

    [root@tiandong63 ~]# echo 'ldconfig' >> /etc/rc.local   设为开机自启动

    [root@tiandong63 php-5.6.13]# pwd

    /usr/local/src/php-5.6.13

    [root@tiandong63 ~]# tar xf php-5.6.13.tar.bz2 -C /usr/local/src/

    [root@tiandong63 php-5.6.13]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-mcrypt=/usr/local/libmcrypt

    参数解释:

    --with-config-file-path                         #设置 php.ini 的搜索路径。默认为 PREFIX/lib

    --with-mysql                        #mysql安装目录,对mysql的支持

    --with-mysqli                         #mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定。是一个数据库驱动

    --with-iconv-dir                      #种字符集间的转换

    --with-freetype-dir                  #打开对freetype字体库的支持

    --with-jpeg-dir                      #打开对jpeg图片的支持

    --with-png-dir                          #打开对png图片的支持

    --with-zlib                        #打开zlib库的支持,实现GZIP压缩输出     

    --with-libxml-dir=/usr                     #打开libxml2库的支持,libxml是一个用来解析XML文档的函数库

    --enable-xml                        #支持xml文档

    --disable-rpath                         #关闭额外的运行库文件

    --enable-bcmath                      #打开图片大小调整,用到zabbix监控的时候用到了这个模块

    --enable-shmop                       #shmop共享内存操作函数,可以与c/c++通讯

    --enable-sysvsem  #加上上面shmop,这样就使得你的PHP系统可以处理相关的IPC函数(活动在内核级别)。

    --enable-inline-optimization       #优化线程

    --with-curl                            #打开curl浏览工具的支持 

    --with-curlwrappers                    #运用curl工具打开url流 ,新版PHP5.6已弃用

    --enable-mbregex                    #支持多字节正则表达式

    --enable-fpm                       #CGI方式安装的启动程序,PHP-FPM服务

    --enable-mbstring                     #多字节,字符串的支持

    --with-gd                             #打开gd库的支持,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。

    --enable-gd-native-ttf                    #支持TrueType字符串函数库

    --with-openssl                          #打开ssl支持

    --with-mhash                       #支持mhash算法扩展

    --enable-pcntl                          #freeTDS需要用到的,pcntl扩展可以支持php的多线程操作

    --enable-sockets                       #打开 sockets 支持

    --with-xmlrpc                       #打开xml-rpc的c语言

    --enable-zip                         #打开对zip的支持

    --enable-soap                          #扩展库通过soap协议实现了客服端与服务器端的数据交互操作

    --with-mcrypt                       #mcrypt算法扩展

    [root@tiandong63 php-5.6.13]# make -j 3 && make install

    配置php和php-fpm

    php配置文件:

    [root@tiandong63 php-5.6.13]# cp /usr/local/src/php-5.6.13/php.ini-production /usr/local/php/php.ini

    php-fpm配置文件:

    [root@tiandong63 php-5.6.13]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

    [root@tiandong63 php-5.6.13]# vim /usr/local/php/etc/php-fpm.conf

     

    [root@tiandong63 php-5.6.13]# cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

    [root@tiandong63 php-5.6.13]# chmod +x /etc/init.d/php-fpm

    [root@tiandong63 php-5.6.13]# chkconfig php-fpm on

    [root@tiandong63 php-5.6.13]# /etc/init.d/php-fpm start

    Starting php-fpm  done

    [root@tiandong63 php-5.6.13]# netstat -tlunp|grep 9000

    tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      77366/php-fpm   

    [root@tiandong63 ~]# vim /usr/local/nginx/html/index.php

       <?php

       phpinfo();

       ?>

     测试:

     

  • 相关阅读:
    BZOJ 3205 [Apio2013]机器人 ——斯坦纳树
    BZOJ 3782 上学路线 ——动态规划 Lucas定理 中国剩余定理
    HDU 1423 Greatest Common Increasing Subsequence ——动态规划
    BZOJ 3309 DZY Loves Math ——莫比乌斯反演
    POJ 1038 Bugs Integrated, Inc. ——状压DP
    POJ 3693 Maximum repetition substring ——后缀数组
    POJ 2699 The Maximum Number of Strong Kings ——网络流
    POJ 2396 Budget ——有上下界的网络流
    BZOJ 4650 [Noi2016]优秀的拆分 ——后缀数组
    源码安装python
  • 原文地址:https://www.cnblogs.com/winter1519/p/7523441.html
Copyright © 2020-2023  润新知