文档章节

编译安装lnmp

lee_ypp
 lee_ypp
发布于 2014/07/16 11:26
字数 1480
阅读 375
收藏 6

 

1.nginx安装配置

#yum install  -y gcc gcc-c++ make pcre-devel openssl-devel

 

#tar zxf nginx-1.4.2.tar.gz
#cd nginx-1.4.2
#./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module
#make && make install

#vim nginx-1.4.2/src/core/nginx.h
define NGINX-VER    "westos"                   修改版本号,避免被攻击
#vim  nginx-1.4.2/auto/cc/gcc
注释    #CFLAGS="$CFLAGS  -g"                注释debug功能,可以减少编译占用资源

#vim /usr/local/lnmp/nginx/conf/nginx.conf
 woker_processes 2;
   events {
        use epoll;     高效模式
    worker_connections 1024;
    }
创建软链接#ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin
启动服务

#nginx

#nginx -t            检查nginx配置是否错误

访问测试页面--http://127.0.0.1  是否报错 
 /usr/local/lnmp/nginx/html     默认发布目录

 

2、mysql支持源码安装

#yum install -y gcc gcc-c++ make ncurses-devel bison openssl-devel zlib-devel cmake

 

下载mysql-5.5.12.tar.gz文件
#tar zxf mysql-5.5.12.tar.gz
#cd mysql-5.5.12
#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 存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \                           #安装 archive 存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \                         #安装 blackhole 存储引擎
-DWITH_PARTITION_STORAGE_ENGINE=1 \                         #安装数据库分区
-DENABLED_LOCAL_INFILE=1 \                                  #允许从本地导入数据
-DWITH_READLINE=1 \                                         #快捷键功能
-DWITH_SSL=yes \                                            #支持ssl
-DDEFAULT_CHARSET=utf8 \                                    使用 utf8 字符
-DDEFAULT_COLLATION=utf8_general_ci \                       #校验字符
-DEXTRA_CHARSETS=all \                                      #安装所有扩展字符集
-DMYSQL_TCP_PORT=3306 \                                     #MySQL 监听端口
#rm -fr CMakeCache.txt   重新编译时,需要清除旧的对象文件和缓存信息,再进行重新编译
#make && make install

#useradd -M -d /usr/local/lnmp/mysql/data/ -s /sbin/nologin mysql
#cd /usr/local/lnmp/mysql
#chown -R mysql.mysql .
#cd /usr/local/lnmp/mysql/support-files
#cp mysql.server /etc/init.d/mysql
#cp my-medium.cnf /etc/my.cnf
#cd ..
#cd scripts/
#./mysql_install_db --user=mysql --basedir=/usr/local/lnmp/mysql --datadir=/usr/local/lnmp/mysql/data/
#vi ~/.bash_profile
PATH=$PATH:/usr/local/lnmp/mysql/bin
#source ~/.bash_profile 使之生效

#cd /usr/local/lnmp/mysql/
#chown root * -R
#chown -R mysql data/
#service mysql start
 

3、模块构建

#yum install net-snmp-devel curl-devel libxml2-devel libpng-devel libjpeg-devel freetype-devel gmp-devel openldap-devel -y  软件包的依赖性

 

#cd
#tar zxf libiconv-1.13.1.tar.gz 加强系统对支持字符编码转换的功能
#cd libiconv-1.13.1/
#./configure --prefix=/usr/local/lnmp/modules/libiconv/ 
#make && make install

 

#cd
#tar jxf libmcrypt-2.5.8.tar.bz2 mcrypt mhash 是php加密算法扩展库
#cd libmcrypt-2.5.8
#./configure --prefix=/usr/local/lnmp/modules/libmcrypt/ 
#make && make install
#cd libltdl
#./configure --libdir=/usr/local/lnmp/modules/libmcrypt --enable-ltdl-install
#make && make install

 

 

#cd
#tar jxf mhash-0.9.9.9.tar.bz2
#cd mhash-0.9.9.9
#./configure --prefix=/usr/local/lnmp/modules/mhsh/ 
#make && make install

创建软链接

 

ln -s /usr/local/lnmp/modules/libmcrypt/include/* /usr/local/

ln -s /usr/local/lnmp/modules/libmcrypt/lib/* /usr/local/lib/

ln -s /usr/local/lnmp/modules/mhash/lib/* /usr/local/lib /

ln -s /usr/local/lnmp/modules/mhash/include/* /usr/local/include/ 

#vi /etc/ld.so.conf
/usr/local/lnmp/modules/limbcrypt/lib/
/usr/local/lnmp/modules/mhash/lib/
/usr/local/lib

#ldconfig /usr/local/lnmp/modules    重新加载模块(这一步很重要哦!!)

 

#cd
#tar zxvf mcrypt-2.6.8.tar.gz
#cd mcrypt-2.6.8/
#./configure --prefix=/usr/local/lnmp/modules/mcrypt/ --with-libmcrypt-perfix=/usr/local/lnmp/modules/libmcrypt/ --with-libmhash-perfix=/usr/local/lnmp/modules/mhash/
#make && make install

4.php搭建
(1)php基本配置

#yum install net-snmp-devel curl-devel libxml2-devel libpng-devel libjpeg-devel freetype-devel gmp-devel

#useradd -M -d /usr/local/lnmp/nginx -s /sbin/nologin nginx

#vi /etc/ld.so.conf
/usr/local/lnmp/modules/libiconv/lib/(保留之前添加的)
#ldconfig /usr/local/lnmp/modules/libiconv/lib/

 

#tar jxf php-5.4.12.tar.bz2
#cd php-5.4.12
#./configure --prefix=/usr/local/lnmp/php 
--with-config-file-path=/usr/local/lnmp/etc 
--with-mysql=/usr/local/lnmp/mysql/ 
--with-openssl 
--with-snmp 
--with-gd
--with-zlib --with-curl --with-libxml-dir --with-png-dir 
--with-jpeg-dir --with-freetype-dir --with-pear --with-gettext 
--with-gmp --enable-inline-optimization --enable-soap --enable-ftp 
--enable-sockets --enable-mbstring 
--with-mysqli=/usr/local/lnmp/mysql/bin/mysql_config --enable-fpm 
--with-fpm-user=nginx 
--with-fpm-group=nginx--with-mhash=/usr/local/lnmp/modules/mhash/ 
--with-mcrypt=/usr/local/lnmp/modules/libmcrypt  
#make ZEND_EXTRA_LIBS='-liconv'
#make install

#cd php-5.4.12
#cp php.ini-production /usr/local/lnmp/php/etc/php.ini
#cd php-5.4.12/sapi/fpm
#cp init.d.php-fpm /etc/init.d/php-fpm
#chmod +x /etc/init.d/php-fpm
#cd /usr/local/lnmp/php/etc/
#vi php.ini
cgi.fix_pathinfo=0     #防止 Nginx 文件类型错误解析漏洞
extension=mysql.so
#cd /usr/local/lnmp/php/etc
#cp php-fpm.conf.default php-fpm.conf
#vi php-fpm.conf #去掉以下几行的注释
pid = run/php-fpm.pid
pm.max_children = 50
pm.start_servers = 20
#在生产环境中一定要做压力测试,找到最合适的进程数组合
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
#service php-fpm start
#chkconfig php-fpm on
#vi ~/.bash_profile
PATH=$PATH:/usr/local/lnmp/mysql/bin:/usr/local/lnmp/php/bin
#source ~/.bash_profile
#cd /usr/local/lnmp/nginx/conf
#vi nginx.conf
user  nginx;
location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }
#nginx -t
#nginx -s reload
#cd /usr/local/lnmp/nginx/html
#vi index.html
<?
phpinfo()
?>
#这是通过firefox访问192.168.0.133(本机ip)就会有php功能模块的拓展
wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6.tar.bz2
wget http://pecl.php.net/get/memcache-2.2.5.tgz
Memcache 是 danga.com 的一个开源项目,它是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的 Hash 表,能够用来存储各种格式的数据。可以类比于 MySQL 这样的服务,而 PHP 扩展的 Memcache 实际上是连接 Memcache 的方式。
#yum install libevent libevent-devel autoconf -y

 

#tar zxf memcache-2.2.5.tgz
#cd memcache-2.2.5
#phpize#./configure --with-php-config=/usr/local/lnmp/php/bin/php-config --enable-memcache
#make && make install

#cd /usr/local/lnmp/php/etc
#vim php.ini
extension=memcache.so
#service php-fpm reload
这是通过网页访问192.168.0.~(自己ip)/index.php就有memcache模块
#cd memcache-2.2.5
#cp memcache.php /usr/local/nginx/html
#vi /usr/local/nginx/html/memcache.php
define('ADMIN_USERNAME','admin');// Admin Username
define('ADMIN_PASSWORD','westos'); // Admin Password
$MEMCACHE_SERVERS[] = '192.168.0.25:11211'; // add more as an array
访问 website: http://192.168.0.~/memcache.php可以通过身份密码登录
#vi /usr/local/nginx/html/test.php
<?php
$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server's version: ".$version."\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the
server");
echo "Store data in the cache (data will expire in 10 seconds)\n";
$get_result = $memcache->get('key');
echo "Data from the cache:\n";
var_dump($get_result);
?>

5、Discuz论坛搭建
#tar zxf Discuz_x2.5_sc_uft8.zip
#yum install -y unzip

# unzip Discuz_x2.5_sc_uft8.zip

#mv /upload /usr/local/lnmp/nginx/html/bbs
#cd /usr/local/lnmp/nginx/conf
#vi nginx.conf
#access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.php index.html index.htm;
        }

        #error_page  404              /404.html;

#nginx -t
#nginx -s reload
解决不可写问题
#cd /usr/local/lnmp/nginx/html/bbs
#chmod 777 config/
#chmod 777 data/
#chmod 777 data/ -R
#chmod 777 uc_* -R
mysql支持
#cd /root/php-5.4.12/ext/mysql
#phpize
# ./configure --with-php-config=/usr/local/lnmp/php/bin/php-config --with-mysql=/usr/local/lnmp/mysql/ --with-mysql-sock=/usr/local/lnmp/mysql/data/mysql.sock
#make && make install
这时登录192.168.0.133/bbs/install,按步骤进行创建数据库,创建成功后
登录数据库#mysql -pwestos
>show databases;
>use discuz
>show tables;就有discuz的数据库
#cd /usr/local/lnmp/nginx/html/bbs
#chmod 755 .
#chown nginx . -R

                                      ——leeypp@foxmail.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
lee_ypp
粉丝 65
博文 46
码字总数 67139
作品 0
程序员
私信 提问
拓展版的LNMP安装包(适合批量部署)

最近的一个任务是写个一键安装LNMP的脚本,运行的平台是Ubuntu12.04,命令那些跟之前的RHEL和Centos 有一点点区别,这里做个记录。 #!/bin/bash Configuration Arguments workpath="/usr/loc...

10730
2018/06/29
0
0
LNMP 一键安装包 V1.5 正式版发布,增加 PHP 7.2 支持

LNMP 1.5正式版一如既往的于6.1发布了,本版主要增加PHP7.2支持、增加Maria DB 10.2、增加无人值守安装、增加多核编译安装、替换问题较多的certbot使用acme.sh不需要过多的依赖生成SSL更丝滑...

局长
2018/06/03
1K
9
nginx php动态编译加载模块.

#Nginx动态编译加载模块步骤 #查看目前Nginx版本及编译模块 #[root@centos7 ~]# /opt/app/lnmp/nginx-1.12.0/sbin/nginx -V #nginx version: nginx/1.12.0 #built by gcc 4.8.5 20150623 (R......

一招拜师
2017/07/12
0
0
ansible自动化安装lnmp

今天尝试用ansible自动化编译安装了lnmp环境,是以把自己的见解和大家分享,不足之处还望大家指正。 lnmp的构成 lnmp = linux + nginx + mysql + php/python/perl 下面给大家介绍下我的安装步...

笨鸟晚
2018/06/26
0
0
LNMP环境中WordPress程序伪静态解决方案

LNMP环境是目前我们国内站长使用的Linux VPS配置环境中使用较多的。作为新手我们很可能会看到老左类似的"LNMP安装教程"然后依葫芦画瓢的去安装VPS。我们是否有发现环境中我们较为常用的wordp...

云栖希望。
2018/01/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

开始看《Java学习笔记》

虽然书买了很久,但一直没看。这其中也写过一些Java程序,但都是基于IDE的帮助和对C#的理解来写的,感觉不踏实。 林信良的书写得蛮好的,能够帮助打好基础,看得出作者是比较用心的。 第1章概...

max佩恩
昨天
11
0
Redux 三大原则

1.单一数据源 在传统的MVC架构中,我们可以根据需要创建无数个Model,而Model之间可以互相监听、触发事件甚至循环或嵌套触发事件,这些在Redux中都是不被允许的。 因为在Redux的思想里,一个...

wenxingjun
昨天
7
0
跟我学Spring Cloud(Finchley版)-12-微服务容错三板斧

至此,我们已实现服务发现、负载均衡,同时,使用Feign也实现了良好的远程调用——我们的代码是可读、可维护的。理论上,我们现在已经能构建一个不错的分布式应用了,但微服务之间是通过网络...

周立_ITMuch
昨天
4
0
XML

学习目标  能够说出XML的作用  能够编写XML文档声明  能够编写符合语法的XML  能够通过DTD约束编写XML文档  能够通过Schema约束编写XML文档  能够通过Dom4j解析XML文档 第1章 xm...

stars永恒
昨天
2
0
RabbitMQ学习(2)

1. 生产者客户端 void basicPublish(String exchange, String routingKey, boolean mandatory, boolean immediate, BasicProperties props, byte[] body) 1. 在生产者客户端发送消息时,首先......

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部