设为首页 收藏本站
查看: 1631|回复: 0

LNMP环境的搭建

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-4-15 08:42:05 | 显示全部楼层 |阅读模式
一.环境和软件:
linux Redhat 6.4 +Nginx-1.0.8 + mysql-5.1.55 + php-5.3.6
ZendGuardLoader-php-5.3-linux-glibc23
系统分区建议
/boot 100M        (大约100左右)
SWAP          物理内存的2倍(如果你的物理内存大于4G,分配4G即可)
/           分区15~20G
/usr/local 20G    (用于安装软件)
/data            剩余所有空间.

软件源代码包存放位置      /usr/local/src
源码包编译安装位置(prefix)    /usr/local/software_name
脚本以及维护程序存放位置   /usr/local/sbin
MySQL 数据库位置     /data/mysql/3306/data(可按情况设置)
网站根目录                /data/htdocs(可按情况设置)
虚拟主机日志根目录    /data/logs(可按情况设置)
Nginx运行账户           nginx:nginx
二.编译安装Nginx
  • 1.      Nginx的配置需要有pcre,zlib等软件包支持,先安装必备软件包

yum install pcre-devel zlib-devel –y
    2.创建Nginx用户
useradd  -M -s/sbin/nologin nginx
3.解压Nginx安装包,编译安装(确保开发环境,否则yum –yinstall gcc*)
tar zxf nginx-1.0.8.tar.gz
cd nginx-1.0.8
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx--with-http_stub_status_module
make && make install
     4.配置Nginx
       ln –s  /usr/local/nginx/sbin/nginx/usr/local/sbin  
       做Nginx启动脚本,使Nginx 作为系统服务启动
脚本内容:vim/etc/init.d/nginx
==================================
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/bin/bash
#chkconfig: - 85 15
#description: this is a script to control nginx

#Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx=/usr/local/nginx/sbin/nginx
pid=/usr/local/nginx/logs/nginx.pid
start() {
if  [ -e $pid ]
   then
    action "Nginxalready running..." /bin/false && exit 1
  else
   $nginx
  [ $? -eq 0 ] &&{
        action "Nginxstart is  OK..." /bin/true
} || action "Nginxstart is error..." /bin/false
fi
}
stop() {
  if [ ! -e $pid ]
   then
   action "Nginx isnot  running..." /bin/false&& exit 1
  else
   kill -s QUIT $(cat$pid)
  [ $? -eq 0 ] &&action "Nginx stop is  OK..."/bin/true || action "Nginx stop is error..." /bin/false
  fi
}
restart() {
    $0 stop
    $0 start
}
reload() {
  if [ ! -e $pid ]
   then
   action "Nginx isnot  running..." /bin/false&& exit 1
  else
   kill -s HUP $(cat $pid)
  [ $? -eq 0 ] &&action "Nginx reload is  OK..."/bin/true || action "Nginx reload is error..." /bin/false
  fi
}
usage() {
echo "Usage: $0 {start|stop|status|restart|reload"
}
status() {
if [ -e $pid ]
   then
   echo  "Nginx is running..."
else
   echo "Nginx isstop..."
fi
}
case $1 in
start)
  start
;;
stop)
   stop
;;
reload)
   reload
;;
restart)
   restart
;;
status)
   status
;;
*)
usage
;;
esac




===============================================

chmod +x /etc/init.d/nginx



三.编译安装mysql
  • 1.解压包  tar zxf mysql-5.1.55.tar.gz
  • 2.若系统是32位的可直接编译安装,若系统是64位的,需要安装一些组件

yum install ncurses-devel
  • 2.      编译安装mysql

cdmysql-5.1.55
./configure  --prefix=/usr/local/mysql-5.1.56 --with-unix-socket-path=/usr/local/mysql-5.1.56/tmp/mysql.sock--with-charset=utf8 --with-collation=utf8_general_ci  --with-extra-charsets=gbk,gb2312 --localstatedir=/usr/local/mysql-5.1.56/data --enable-assembler --with-mysqld-ldflags=-all-static--with-client-ldflags=-all-static  --enable-thread-safe-client --with-mysqld-user=mysql  --with-big-table          --without-debug  --with-pthread
make && make install
  • 3.      配置mysql

cp support-files/my-medium.cnf /etc/my.cnf   #创建mysql主配置文件
cp support-files/mysql.server /etc/init.d/mysqld #创建mysql启动脚本
chmod a+x /etc/init.d/mysqld
chkconfig  --add mysqld
ln -s /usr/local/mysql-5.1.56/ /usr/local/mysql
ln  -s /usr/local/mysql/bin/* /usr/local/bin
ln  -s/usr/local/mysql/lib/mysql/*  /usr/lib
ln  -s/usr/local/mysql/include/mysql  /usr/include
useradd  -M  -s /sbin/nologin mysql
cd /usr/local/mysql/bin
./mysql_install_db  --user=mysql  #初始化数据库
chown -R root:mysql /usr/local/mysql
chown -R mysql /usr/local/mysql/var
四.编译安装php
安装php所需的组件(libiconv,libmcrypt,mhash,mcrypt-install)

1) 安装libiconv

cd/usr/src

wgethttp://down1.chinaunix.net/distfiles/libiconv-1.14.tar.gz

tarzxf libiconv-1.14.tar.gz

cdlibiconv-1.14

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

make&& make install

2) 安装libmcrypt

cd/usr/src

wgethttp://down1.chinaunix.net/distfiles/libmcrypt-2.5.7.tar.gz

tarzxf libmcrypt-2.5.7.tar.gz

cdlibmcrypt-2.5.7

./configure
make
make install

2) 安装mhash

cd/usr/src

wgethttp://down1.chinaunix.net/distfiles/mhash-0.9.3.tar.gz

tarzxf mhash-0.9.3.tar.gz

cdmhash-0.9.3

./configure

make
make install

4)安装mcrypt

cd/usr/src

wgethttp://down1.chinaunix.net/distfiles/mcrypt-2.6.4.tar.gz

tarzxf mcrypt-2.6.4.tar.gz

cdmcrypt-2.6.4

echo"/usr/local/lib" >>/etc/ld.so.conf

/sbin/ldconfig

./configure

make
make install

补充:如果在make过程中报:/usr/local/include/mutils.h:27:26:error: mhash_config.h: No such file or directory

请执行下面命令,然后重新make编译

find/ -name mhash_config.h -exec cp -f {} /usr/local/include/   \;

安装PHP

1)安装所需组件包

yuminstall zlib libxml2 libjpeg freetype libpng gd curl   zlib-devel libxml2-devellibjpeg-devel freetype-devel libpng-devel gd-devel openssl openssl-develcurl-devel -y

2)下载PHP包进行编译安装

cd/usr/src

wgethttp://down1.chinaunix.net/distfiles/php-5.3.6.tar.bz2

tarjxf php-5.3.6.tar.bz2

cdphp-5.3.6

./configure--prefix=/usr/local/php --with-mcrypt --with-mysql=/usr/local/mysql --enable-fpm--with-config-file-path=/usr/local/php --enable-mbstring-with-iconv=/usr/local/libiconv --enable-static --with-xmlrpc --with-openssl --with-zlib --with-freetype-dir --with-gd--with-jpeg-dir --enable-short-tags --enable-sockets --enable-zend-multibyte--enable-soap --enable-gd-native-ttf --enable-curl --enable-xsl--with-libxml-dir

make

makeinstall


补充:

报错:configure: error: libpng.(a|so) not found.

原因:在/usr/lib下没有libpng.so这个文件,需要从/usr/lib64/下做软连接

解决:ln -s /usr/lib64/libpng.so /usr/lib/libpng.so


配置
cp php.ini-production /usr/local/php/php.ini#建立主配置文件
ln -sf /usr/local/php/bin/* /usr/local/bin
ln -sf /usr/local/php/sbin/* /usr/local/sbin
五.配置Nginx支持php环境
方法一,充当介质。将访问php页面的请求转交给其他服务器处理
方法二。通过本身自带的fpm模块来调用本机的php环境
  • 1.      启用php-fpm进程

cd  /usr/local/php5/etc
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf  启用以下参数
pid = run/php-fpm.pid         确定pid的位置
user = nginx                  运行用户
group = nginx               运行组
pm.start_servers = 20        启动时开启的进程数
pm.min_spare_servers = 5      最少空闲进程数
pm.max_spare_servers = 35    最多空闲进程数
  • 2.      添加php-fpm启动脚本,使php-fpm开机自动启动

cp /usr/src/php-5.3.6/sapi/fpm/init.d.php-fpm/etc/init.d/php-fpm
chmod o+x /etc/init.d/php-fpm
service php-fpm start
chkconfig --add php-fpm
chkconfig php-fpm on
  • 3.      修改Nginx配置文件

实现方法一.
在server选项中添加
location  ~  \.php$ {
proxy_pass   http://另一台服务器ip
}
实现方法二。
在server选项中添加
location  ~ \.php${
root  /var/www/benet;          php网页文档根目录
fastcgi_pass 127.0.0.1:9000;       php-fpm的监听地址
fastcgi_index  index.php ;        php首页文件
include   fastcgi.conf;         包括fastcgi.conf样本配置
}
4.重启Nginx服务
    service nginxrestart

六.测试。
在Nginx网站根目录里编写测试文件index.php
echo"<?php phpinfo(); ?>" >>/usr/local/nginx/html/test.php



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-57243-1-1.html 上篇帖子: 搭建LAMP的两种方式 下篇帖子: 在CentOS 7系统上搭建LAMP
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表