LNAMP源码安装整合加论坛及动静分离

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

LNAMP(Linux+Nginx+Apache+Mysql+PHP)架构受到很多IT企业的青睐,取代了原来认为很好的LNMP(Linux+Nginx+Mysql+PHP)架构,那我们说LNAMP到底有什么优点呢,还得从Nginx和apache的优缺点说起。

Nginx处理静态文件能力很强,Apache处理动态文件很强而且很稳定,把二者综合在一块,性能提升很多倍。可能很多Linux SA在从事LNMP运维中,会发现PHP(FastCGI)模式会出现一些502错误的现象,这是因为Nginx+PHP(FastCGI)组合不稳定的原因造成的。

  实验机:

1
2
3
4
5
[root@192_168_77_189 ~] # uname -a
Linux 192_168_77_189 2.6.32-504.el6.x86_64  #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@192_168_77_189 ~] # cat /etc/issue
CentOS release 6.6 (Final)
Kernel \r on an \m
  • 源码安装LNAMP之Nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@192_168_77_189 ~] # yum install pcre pcre-devel -y      #依赖包
 
[root@192_168_77_189 autolamp] # tar -xzvf nginx-1.8.0.tar.gz 
 
[root@192_168_77_189 nginx-1.8.0] # ./configure  --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
 
[root@192_168_77_189 nginx-1.8.0] # make && make install
 
[root@192_168_77_189 nginx-1.8.0] # /usr/local/nginx/sbin/nginx
 
[root@192_168_77_189 nginx-1.8.0] # ps -ef | grep nginx    
root      9982     1  0 19:38 ?        00:00:00 nginx: master process  /usr/local/nginx/sbin/nginx
nobody    9983  9982  0 19:38 ?        00:00:00 nginx: worker process      
root      9987  7577  0 19:38 pts /1     00:00:00  grep  nginx
  • 源码安装LNAMP之Apache

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@192_168_77_189 autolamp] # yum -y install epel-release 
 
[root@192_168_77_189 apr-1.5.2] # ./configure --prefix=/usr/local/apr
 
[root@192_168_77_189 apr-1.5.2] # make && make install
 
[root@192_168_77_189 apr-util-1.5.2] # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
 
[root@192_168_77_189 apr-util-1.5.2] # make && make install
 
 
 
[root@192_168_77_189 httpd-2.4.16] # ./configure --prefix=/usr/local/apache  --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=event
 
[root@192_168_77_189 httpd-2.4.16] # make && make install
  • 源码安装LNAMP之MySQL

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
  yum  install  gcc gcc-c++  make  cmake  ncurses-devel bison perl
  
  [root@192_168_77_189 mysql-5.5.44] # cmake -DCMAKE_INSTALL_PREFIX=/data/app/mysql3306 -DMYSQL_DATADIR=/data/mysql3306  -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_DEBUG=0 -DMYSQL_USER=mysql -DMYSQL_UNIX_ADDR=/data/mysql3306/mysql3306.sock
  
  [root@192_168_77_189 mysql-5.5.44] #  make && make install
  
  
  [root@192_168_77_189 mysql-5.5.44] # cp -a support-files/my-large.cnf /data/mysql3306/my.cnf
  
  [root@192_168_77_189 data] # chown mysql.mysql app/ -R
[root@192_168_77_189 data] # chown mysql.mysql mysql3306/ -R 
 
[root@192_168_77_189 mysql3306] # cp -a support-files/mysql.server /etc/init.d/mysqld
 
 
[root@192_168_77_189 mysql3306] # cd /data/app/mysql3306/ 
 
 
[root@192_168_77_189 mysql3306] # ./scripts/mysql_install_db --basedir=/data/app/mysql3306/ --datadir=/data/mysql3306/ --user=mysql
 
[root@192_168_77_189 mysql3306] #  echo "export PATH="\$PATH":/data/app/mysql3306/bin/" >>/root/.bash_profile && source /root/.bash_profile 
 
[root@192_168_77_189 mysql3306] # /etc/init.d/mysqld restart
Shutting down MySQL. SUCCESS! 
Starting MySQL.. SUCCESS!
  • 源码安装LNAMP之PHP

1
2
3
4
5
6
7
yum  install  libxml2-devel  libmcrypt-devel  bzip2 -devel 
libxml2-devel openssl-devel   bzip2  bzip2 -devel
 
[root@192_168_77_189 php-5.4.42] # ./configure --prefix=/usr/local/php --with-mysql=/data/app/mysql3306 --with-openssl --with-mysqli=/data/app/mysql3306/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-mcrypt --with-bz2 --with-config-file-path=/etc/php/php.ini --with-config-file-scan-dir=/etc/php/php.d/ --with-apxs2=/usr/local/apache/bin/apxs
 
 
[root@192_168_77_189 php-5.4.42] # make && make install
  • 源码安装Apache+PHP整合

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
[root@192_168_77_189 php-5.4.42] # echo "Addtype application/x-httpd-php  .php" >> /usr/local/apache/conf/httpd.conf
 
[root@192_168_77_189 php-5.4.42] # sed -i 's/DirectoryIndex index.html/DirectoryIndex index.php index.html/g' /usr/local/apache/conf/httpd.conf
 
 
[root@192_168_77_189 php-5.4.42] # /usr/local/apache/bin/apachectl -t
   00557: httpd: apr_sockaddr_info_get() failed  for  192_168_77_189
AH00558: httpd: Could not reliably determine the server 's fully qualified domain name, using 127.0.0.1. Set the ' ServerName' directive globally to suppress this message
Syntax OK
 
 
ServerName www.example.com:80改成ServerName localhost:80即可
 
[root@192_168_77_189 conf] # /usr/local/apache/bin/apachectl -t
Syntax OK
 
[root@192_168_77_189 conf] # ps -ef | grep http
root     23847     1  0 21:05 ?        00:00:00  /usr/local/apache/bin/httpd  -k restart
daemon   23849 23847  0 21:05 ?        00:00:00  /usr/local/apache/bin/httpd  -k restart
daemon   23850 23847  0 21:05 ?        00:00:00  /usr/local/apache/bin/httpd  -k restart
daemon   23851 23847  0 21:05 ?        00:00:00  /usr/local/apache/bin/httpd  -k restart
daemon   23937 23847  0 21:06 ?        00:00:00  /usr/local/apache/bin/httpd  -k restart
root     23973 22611  0 21:10 pts /1     00:00:00  grep  http
 
[root@192_168_77_189 ~] # cd /usr/local/apache/htdocs/
 
在index.php里添加
<?php
phpinfo();
?>
~  在客户端输入http: //192 .168.77.189/ 测试得到以下页面

wKiom1XMm_Lg5430AAMujtnCFLI513.jpg


  • 源码安装DISCUZ论坛

下载discuz源码包文件

1
2
3
4
5
6
7
8
9
10
[root@192_168_77_189 ~] # wget 
 
[root@192_168_77_189 autolamp] # unzip Discuz_X3.1_SC_UTF8.zip -d /usr/local/apache/htdocs/
 
[root@192_168_77_189 autolamp] # cd /usr/local/apache/htdocs/;mv upload/* .
 
[root@192_168_77_189 htdocs] # chmod 777 -R data/ uc_server/ config/ uc_client/
 
 
然后访问http: //192 .168.77.189/安装discuz论坛,如下图,选择“我同意”

wKioL1XMn4yQ0ngfAAQc0AQNcxo275.jpg

wKiom1XMnfyywpiqAAH_gr_v1HU013.jpg

数据库授权:

1
2
3
4
5
6
7
[root@192_168_77_189 ~] # /data/app/mysql3306/bin/mysql   登录,这里数据库没有设置密码
 
 
mysql> create database discuz charset=utf8;
 
 
grant all on discuz.* to  identified by  "123456" ;   授权

然后在论坛页面输入账号信息一路下一步就安装成功了。。。。。。。。。。

wKioL1XMoeziRHm9AAJw-arhG04871.jpg

自此LAMP环境整合并搭建成功,那如何使用Nginx来整合LAMP呢?


  • 源码安装Nginx+LAMP整合

先修改apache访问端口为8080,Nginx端口默认为80

然后修改nginx配置文件: vi/usr/local/nginx/conf/nginx.conf,server配置段内容如下:

(定义upstream均衡模块,配置动静分离,动态转发至apache,静态文件直接本地响应),这里配置的有动静分离,,动态走app_lamp;模块静态走本地目录,,由于一台机器上实现,有点局限性,理解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
upstreamapp_lamp {
     server  127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s;
     }
     server {
         listen       80;
         server_name  localhost;
  
         location / {
             root    /usr/local/apache/htdocs ;
             index index.php index.html index.htm;
         }
         location ~ .*\.(php|jsp|cgi)?$
     {
          proxy_set_header Host  $host;
          proxy_set_header X-Real-IP$remote_addr;
          proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;
          proxy_pass http: //app_lamp ;
     }
         location ~.*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
        {
         root  /usr/local/apache/htdocs ;
         expires      3d;
       }
     }

在客户端输入http://192.168.77.189可以直接访问,,动态图片图片程序走app_lamp模块里面的主机,当然可以是另外的机器,静态网页走的是本地





自此,LNAMP源码全部整合完毕



软件包太大无法上传。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。



本文转自 Anonymous123 51CTO博客,原文链接:http://blog.51cto.com/woshitieren/1684485

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
应用服务中间件 Linux PHP
百度搜索:蓝易云【在centos中配置nginx+php的环境教程。】
请注意,上述步骤是基本的配置指南,实际操作中可能会有特定的需求和配置。建议参考Nginx和PHP官方文档或其他详细教程以获得更全面和准确的信息。
33 0
|
2月前
|
关系型数据库 MySQL 应用服务中间件
LNMT与动静分离
LNMT(Linux + Nginx + MySQL + Tomcat)是一种常见的Web应用架构,它由Linux操作系统作为基础,使用Nginx作为反向代理服务器和静态资源服务器,MySQL作为数据库,Tomcat作为应用服务器。
31 0
|
5月前
|
关系型数据库 MySQL PHP
LAMP架构及搭建LAMP+Discuz论坛
LAMP架构及搭建LAMP+Discuz论坛
81 0
|
5月前
|
关系型数据库 MySQL 应用服务中间件
Nginx__高级进阶篇之LNMP动态网站环境部署
Nginx__高级进阶篇之LNMP动态网站环境部署
|
5月前
|
存储 Linux
百度搜索:蓝易云【Cnetos7编译安装Pure-Ftpd教程。】
现在,您已经成功在CentOS 7上通过编译安装了Pure-FTPd,并配置了基本的FTP用户和目录。请注意,以上步骤提供了基本的指导,实际操作可能会有所差异。
50 0
|
5月前
|
应用服务中间件 Linux 网络安全
百度搜索:蓝易云【Cnetos7编译安装Nginx教程。】
现在,您已经成功在CentOS 7上通过编译安装了Nginx。请注意,以上步骤提供了基本的指导,实际操作可能会有所差异。如有需要,您可以参考Nginx官方文档或社区资源获取更详细的信息和帮助。
58 0
|
Web App开发 关系型数据库 应用服务中间件
|
关系型数据库 MySQL Apache
|
Web App开发 关系型数据库 应用服务中间件

相关产品

  • 云迁移中心