lnmp 的简单搭建

lnmp架构的搭建

lnmp=linux + nginx + mysql +php

1.nginx安装

先下载这个包nginx-1.4.2.tar.gz,tar zxf nginx-1.4.2.tar.gz解压压缩包。


cd nginx-1.4.2 

vi auto/cc/gcc 

#CFLAGS=”$CFLAGS -g”# 注释掉这行,去掉debug模式编译,编译以后程序只有几百K

vi src/core/nginx.h 

#define NGINX_VER          "redhat" #修改此行,为了安全去掉后面的版本信息。

在 nginx-1.4.2一级目录下

./configure  --prefix=/usr/local/lnmp/nginx --with-http_ssl_module –with-http_stub_status_module 

指定路径在/usr/local/lnmp/nginx下,(默认第三方软件都在/usr/local下,把lnmp所有程序放在/usr/local/lnmp下,方便到时侯直接把这个目录考走,一锅端,可是也有风险,黑客也可能会一锅端)。执行这个命令时可能会出错,需要yum install -y pcre-devel   gcc  openssl-devel

      make && make install    编译,如果没有make,还需安装make

ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin  建立软链接,启动脚本为nginx

编译成功后,就会生成/usr/local/lnmp/nginx目录,cd /usr/local/lnmp/nginx

vim conf/nginx.conf

worker_processes  2; 

events { 

        use epoll;      epoll是处理连接的一种方法。

    worker_connections  1024; 

}


nginx   开启nginx,若已经开启,再执行这个脚本,就会报错。

nginx  -t 测试nginx有无语法错误。

nginx -s stop/restart  关闭/重启nginx。

测试:curl -I localhost 查看server为我们自己设置的了。

nginx的默认发布目录在 /usr/local/lnmp/nginx/html

vi test.html

hello nginx!

客户端测试192.168.0.101/test.html


2.mysql安装

下载一个包mysql-5.5.12.tar.gz ,tar zxf mysql-5.5.12.tar.gz

cd mysql-5.5.12 

用的是cmake编译器

yum install -y 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_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 监听端口

回车之后可能会有报错,需要安装这些yum install -y  ncurses-devel  gcc-c++  bison

如果之前忘记装这些软件,cmake报错之后再安装,安装好后需要删掉缓存 

rm -fr   CMakeCache.txt,重新执行一长串cmake指令。

cmake通过之后,make && make install 这个过程比较慢。

编译成功后,生成 /usr/local/lnmp/mysql 目录。

创建一个mysql用户  useradd  -M  -s  /sbin/nologin  -d  /usr/local/lnmp/mysql/data  mysql

cd  /usr/local/lnmp/mysql

chown  mysql.mysql   *

cp support-files/my-medium.cnf  /etc/my.cnf  #根据主机内存复制mysql配置文件

cp support-files/mysql.server   /etc/init.d/mysqld 

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  #使文件生效

chown -R root  /usr/local/lnmp/mysql/* 

chown  -R  mysql  /usr/local/lnmp/mysql/data/   #mysql用户对data目录有写权限

/etc/init.d/mysqld   start

mysql_secure_installation 给mysql加密


3.php安装

先下载这几个模块包libiconv-1.13.1.tar.gz,libmcrypt-2.5.8.tar.bz2,mhash-0.9.9.9.tar.bz2,mcrypt-2.6.8.tar.gz


tar zxf   libiconv-1.13.1.tar.gz #加强系统对支持字符编码转换的功能 

cd  libiconv-1.13.1

./configure --prefix=/usr/local/lnmp/modules/libiconv

make && make install


tar jxf   libmcrypt-2.5.8.tar.bz2 # mcrypt mhash 是 php 加密算法扩展库 

cd  libmcrypt-2.5.8

./configure  --prefix=/usr/local/lnmp/modules/libmcrypt   -enable-ltdl-install

make && make install


tar jxf  mhash-0.9.9.9.tar.bz2

cd   mhash-0.9.9.9

./configure  --prefix=/usr/local/lnmp/modules/mhash 

make && make install


tar  zxf  mcrypt-2.6.8.tar.gz

cd  mcrypt-2.6.8

先建立软链接:

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

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

./configure  --prefix=/usr/local/lnmp/modules/mcrypt  --with-libmcrypt-prefix=/usr/local/lnmp/modules/libmcrypt

make && make install

模块编译完成之后,下载php包 php-5.4.12.tar.bz2

tar  jxf  php-5.4.12.tar.bz2

php程序的用户应是nginx,useradd -M -d  /usr/local/lnmp/nginx  -s  /sbin/nologin  nginx


cd   php-5.4.12

./configure --prefix=/usr/local/lnmp/php –with-config-file-path=/usr/local/lnmp/php/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 --without-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-mcrypt=/usr/local/lnmp/modules/libmcrypt –with-mhash =/usr/local/lnmp/modules/mhash

软件包依赖性: 

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

make ZEND_EXTRA_LIBS='-liconv'   #加速php代码执行效率

make install 


php启动:

cd  ~/php-5.4.12

cp php.ini-production   /usr/local/lnmp/php/etc/php.ini 

cp sapi/fpm/init.d.php-fpm   /etc/init.d/php-fpm 

chmod  +x    /etc/init.d/php-fpm 

vim  /usr/local/lnmp/php/etc/php.ini 

cgi.fix_pathinfo=0     #防止 Nginx 文件类型错误解析漏洞

date.timezone=Asia/Shanghai

mv  php-fpm.conf.default php-fpm.conf 

vim  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 

开启php:/etc/init.d/php-fpm  start

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

user   nginx;

location ~ \.php$ { 

            root           html; 

            fastcgi_pass   127.0.0.1:9000; 

            fastcgi_index  index.php; 

            include        fastcgi.conf; 

        } 


nginx

nginx  -s  reload

vim  /usr/local/lnmp/nginx/html/index.php

<?php

phpinfo()

?>

客户端测试浏览器输入192.168.0.101/index.php


转载于:https://my.oschina.net/19940429/blog/266658

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值