编译安装lnmp
博客专区 > lee_ypp 的博客 > 博客详情
编译安装lnmp
lee_ypp 发表于3年前
编译安装lnmp
  • 发表于 3年前
  • 阅读 358
  • 收藏 5
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: Linux系统下Nginx+MySQL+PHP网站服务器架构 discuz论坛的简单搭建

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

共有 人打赏支持
粉丝 65
博文 43
码字总数 58692
×
lee_ypp
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: