web 平台搭建-LNMP-源码包(CentOS-6)

一、准备工作

1.1 环境要求:

操作系统:CentOS 6.X 64 位
关闭 SELinuxiptables 防火墙
此次试验环境使用网络 yum 源,保证系统能正常连接互联网

防火墙

[root@localhost ~]$ iptables -F  &&  service iptables save 
[root@localhost ~]$ iptables -L

SELinux

[root@localhost ~]$ setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
[root@localhost ~]$ getenforce

1.2 配置yum源

可参考之前的文章设置yum源
Linux配置yum源

1.3 安装编译工具和依赖软件包

[root@localhost ~]$ yum -y install gcc* pcre-devel openssl openssl-devel zlib-devel ncurses-devel cmake bison libxml2-devel libpng-devel

1.4 Nginx、MySQL、PHP 三大软件的源码包下载地址

Nginx:http://nginx.org/en/download.html
MySQL:https://dev.mysql.com/downloads/mysql/
PHP:http://www.php.net/

版本选用:

Nginx: 1.12.*  #选用软件的稳定版即可
Mysql: 5.5.*   #5.5 以上版本需要 1G 以上的内存,否则无法安装
PHP: 5.6.*   #LAMP 中我们使用的是 php7,此次使用 php5

注意:每次安装 LNMP 时,软件包的小版本都不一样,官方会对其大版本下的小版本进行覆盖式更新,本文内部分链接会失效,切记按照下载版本进行安装。

二、源码软件包安装

2.1 Nginx

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强(同时处理的用户请求量)

2.1.1 下载 Nginx 源码包
[root@localhost ~]$ mkdir /lnmp
[root@localhost ~]$ wget http://nginx.org/download/nginx-1.12.2.tar.gz -P /lnmp
[root@localhost ~]$ tar -zxvf nginx-1.12.2.tar.gz
2.1.2 创建用于运行 Nginx 的用户
[root@localhost ~]$ useradd -r -s /sbin/nologin nginx
2.1.3 解压缩 Nginx 并安装
[root@localhost ~]$ cd /lnmp/nginx-1.12.2
[root@localhost ~]$ ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
[root@localhost ~]$ make && make install

[root@localhost ~]$ /usr/local/nginx/sbin/nginx #启动nginx
[root@localhost ~]$ ps -ef | grep nginx
2.1.4 上传编写好的 nginx 启动管理脚本
[root@localhost ~]$ vim /etc/init.d/nginx
#!/bin/bash
#description(说明): nginx server control tools
#################################Nginx 启动管理脚本##################################


ngxc="/usr/local/nginx/sbin/nginx"  #nginx启动命令
pidf="usr/local/nginx/logs/nginx.pid"
ngxc_fpm="/usr/local/php/sbin/php-fpm" #fpm启动命令
pidf_fpm="/usr/local/php/var/run/php-fpm.pid"

case "$1" in
#$1,输入的第一个参数
	start)  #输入的参数为start,启动nginx和fpm
		 $ngxc -t &> /dev/null
		 if [ $? -eq 0 ];then
			 $ngxc
			 $ngxc_fpm
			 echo "nginx service start success!"
		 else
		 	 $ngxc -t
		 fi
		 ;;
	stop)
		 kill -s QUIT $(cat $pidf)
		 kill -s QUIT $(cat $pidf_fpm)
		 	echo "nginx service stop success!"
		 ;;
	restart)
		 $0 stop
		 $0 start
		 ;;
	reload)
		 $ngxc -t &> /dev/null
		 if [ $? -eq 0 ];then
			 kill -s HUP $(cat $pidf)
			 kill -s HUP $(cat $pidf_fpm)
			 echo "reload nginx config success!"
		 else
			$ngxc -t
		 fi
		 ;;
	*)
		 echo "please input stop|start|restart|reload."
		 exit 1
esac



[root@localhost ~]$ chmod +x /etc/init.d/nginx

2.2 MySQL

2.2.1 下载 MySQL 源码包

格式: mysql-N.N.NN.tar.gz

[root@localhost ~]$ wget https://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.62.tar.gz -P /lnmp
[root@localhost ~]$ tar -zxvf mysql-5.5.62.tar.gz
2.2.2 创建用于运行 Mysql 的用户:
[root@localhost ~]$ useradd -r -s /sbin/nologin mysql
2.2.3 解压缩 Mysql 并安装:
[root@localhost ~]$ cd /lnmp/mysql-5.5.62
[root@localhost ~]$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306
[root@localhost ~]$ make && make install
[root@localhost ~]$ ln -s /usr/local/mysql/bin/* /usr/local/bin  #方便执行命令
2.2.4 修改安装后的目录权限
[root@localhost ~]$ cd /usr/local/mysql
[root@localhost ~]$ chown -R root .
[root@localhost ~]$ chown -R mysql data
2.2.5 生成 Mysql 配置文件
[root@localhost ~]$ cp -a /lnmp/mysql-5.5.62/support-files/my-medium.cnf /etc/my.cnf
2.2.6 初始化,生成授权表
[root@localhost ~]$ cd /usr/local/mysql 
#一定要先切换到此目录下,然后再执行下一步。 
[root@localhost ~]$ ./scripts/mysql_install_db --user=mysql

初始化成功标志:两个 ok

2.2.7 生成 Mysql 的启动和自启动管理脚本
[root@localhost ~]$ cd /lnmp/mysql-5.5.62/support-files
#切换到 mysql 的源码解压缩目录下的 support-files
[root@localhost ~]$ cp -a mysql.server /etc/init.d/mysqld
[root@localhost ~]$ chmod +x /etc/init.d/mysqld
[root@localhost ~]$ chkconfig --add mysqld
[root@localhost ~]$ chkconfig mysqld on
[root@localhost ~]$ service mysqld start|stop|restart
2.2.8 给 mysql 的 root 用户设置密码
[root@localhost ~]$ mysqladmin -uroot password 123456
[root@localhost ~]$ mysql -uroot -p123456
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.62-log Source distribution

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

2.3 PHP

下载:http://www.php.net/


[root@localhost ~]$ wget http://tw2.php.net/distributions/php-5.6.38.tar.gz -P /lnmp

[root@localhost ~]$ cd /lnmp && tar -zxvf php-5.6.38.tar.gz
2.3.1 解压缩 PHP 并安装:
[root@localhost ~]$ cd /lnmp/php-5.6.38
[root@localhost ~]$ ./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets --with-pdo-mysql=/usr/local/mysql --with-gd --without-pear --enable-fpm

[root@localhost ~]$ make && make install

报错提示: 若遇到 libpng.so not found .报错(老版本的 PHP 会出现此问题)
解决方案:

[root@localhost ~]$ ln –s /usr/lib64/libpng.so /usr/lib
2.3.2 生成 php 配置文件

复制源码包内的配置文件到安装目录下,并改名即可

[root@localhost ~]$ cp -a /lnmp/php-5.6.38/php.ini-production /usr/local/php/etc/php.ini
2.3.3 创建软连接,使用 php 相关命令是更方便
[root@localhost ~]$ ln -s /usr/local/php/bin/* /usr/local/bin/
[root@localhost ~]$ ln -s /usr/local/php/sbin/* /usr/local/sbin/

2.4 配置 Nginx 连接 PHP(重难点)

在这里插入图片描述

2.4.1 nginx 连接 php 需要启动 php-fpm 服务
[root@localhost ~]$ cd /usr/local/php/etc/
[root@localhost ~]$ cp -a php-fpm.conf.default php-fpm.conf
#生成 php-fpm 的配置文件,并修改指定参数


[root@localhost ~]$ vim php-fpm.conf
#修改指定条目的参数:
pid = run/php-fpm.pid
user = nginx
group = nginx
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
#启动时开启的进程数、最少空闲进程数、最多空闲进程数(默认值,未修改)
#修改 Nginx 启动管理脚本:将 php-fpm 的注释取消掉即可
2.4.2 修改 Nginx 的配置文件,使其识别.php 后缀的文件
root@localhost ~]$ vim /usr/local/nginx/conf/nginx.conf
#取消下列行的注释,并修改 include 选项的后缀为 fastcgi.conf,并注意每一行结尾的分号和大括号
#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_params; #修改为 fsatcgi.conf
#}

测试:
重启 Nginx 服务,创建 php 测试文件,访问并查看是否解析

启动nginx脚本在 本目录2.1.4

[root@localhost ~]$ service nginx start
[root@localhost ~]$ service nginx restart
[root@localhost ~]$ cd /usr/local/nginx/html
[root@localhost ~]$ echo "<?php phpinfo();" > test.php

浏览器输入192.168.88.10/test.php访问

2.4.3 修改 Nginx 配置文件,使其默认自动加载 php 文件
[root@localhost ~]$ vim /usr/local/nginx/conf/nginx.conf
location / {
root html; #Nginx 的默认网页路径:PREFIX/html
index index.php index.html; #设置默认加载的页面,以及优先级
}
SpaceBuilder v2.3+SP1源码 SpaceBuilder是一款基于asp.net业内领先的Web2.0社区平台。结合博客、相册、文件、迷你博客、论坛、活动、圈子、资讯等应用模块,可以快速的搭建具有SNS特征的在线社区。借助SpaceBuilder平台的服务(用户、朋友、私信、邀请、权限、审核、隐私、积分、通知、动态、标签、分类、附件…),二次开发者可以快速的增加新的应用模块或者对现有的应用模块进行修改。SpaceBuilder采用世界领先的技术体系架构、优异的缓存技术、基于Lucene的全文检索技术,可以承载千万级的数据,并提供良好的安全性及用户体验,表现层采用asp.net mvc及jQuery开发,是迄今为止基于asp.net技术领域最强大的社会化社区产品。   SpaceBuilder v2.3 面向高端重新优化并新增投票、分享两个应用模块   SpaceBuilder v2.3根据多个客户千万级站点的考验并结合性能测试数据,为了应对大数据量高并发站点对底层重新做了优化,使SpaceBuilder可以更好的实现分布式部署,为面向高端做好了准备。本次优化主要体现在以下几个方面:   1.实现数据库读写分离,便于部署多台数据库服务器实现数据库负载均衡;   2.针对所有数据库查询语句进行优化,重写数据分页的存储过程,为大数据量及超大数据库做好准备;   3.缓存设计为Provider模式,可以很方便的替换成分布式缓存;重新设计缓存职能及缓存策略,提高缓存使用效率,降低内存占用率;   4.重新检查附件与全文检索的索引文件,确保所有附件及索引文件可以独立放置到多台文件服务器中。   这次优化不仅可以使SpaceBuilder轻松的部署到几十台服务器,而且对于用单台服务器部署SpaceBuilder的站点也同样可以明显感觉到页面响应速度的提升及内存占用的减少。 本次补丁只适用于v2.3正式版,解决的问题如下: 1.修复IE6下模式框自动变大问题 SpaceBuilder/Web/Utility/jquery/plugin/jquery.nyroModal-1.5.2.js 2.解决IE下幻灯片切换至第二张后,就不再切换问题 SpaceBuilder/Web/Themes/Channels/Default/Controls/Photos/RecommendPhotoSlideBlock.ascx SpaceBuilder/Web/Themes/Channels/Default/Controls/News/ListNewsSildeBlock.ascx SpaceBuilder/Web/Themes/SharedStyles/common.css SpaceBuilder/Web/Utility/jquery/plugin/jquery.slideshow.lite-0.5.3.js 3.修复编辑内容时,编辑器滚动条自动跳至顶部问题 SpaceBuilder\Web\Utility\jquery\plugin\jquery.validate-1.5.5.js 4.修复Email问题 SpaceBuilder.Core/Framework/Configuration/SiteSettings.cs Service/Service/Email/Emails.cs Themes/Manages/Default/Pages/Settings/ManageSiteSetting.aspx Common.Web/Controllers/ManageSettingsController.cs 5.修复验证码 SpaceBuilder.Core\Utility\VerificationCode\VerificationCodeManager.cs SpaceBuilder.Core\framework\Globals.cs SpaceBuilder\Common.Web\Handlers\VerifyCodeHttpHandler.cs SpaceBuilder\Common.Web\Web\Html\SPBHtmlHelper.VerificationCode.cs 6.解决圈子话题可以在论坛中恶意构造显示的问题 Forum.Web\Controllers\ForumController.cs Web\Themes\Channels\Default\Pages\Forums\Search.aspx Forum.Web\SearchSupport\ForumSearchManager.cs Common.Web\SearchSupport\PostSearchItem.cs Common.Web\SearchSupport\PostIndexFields.cs Common.Web\SearchSupport\PostSearchManager.cs 7.复资讯标签ie下乱码问题 Controllers\ChannelNewsController.cs Themes\Channels\Default\Controls\News\TagMapBlock.ascx Themes\Channels\Default\Pages\News\TagMap.aspx 8.修复字典类型多线程问题:"已添加了具有相同键的项。 SpaceBuilder.Core/Framework/Common/User/UserID2UserNameDictionary.cs 9.修复ApplicationTag获取时报错 SpaceBuilder.Core/Service/SqlProvider/SqlApplicationTagDataProvider.cs 10.解决分享标签的问题:中文标签在英文服务器上无效 SpaceBuilder.Share.dll 11.修复了站点首页友情链接被禁用时依然显示问题 SpaceBuilder.Core/Service/SqlProvider/SqlSiteLinkDataProvider.cs 12.修改开心皮肤下面我的朋友分页报错 SpaceBuilder/Web/Themes/UserDomains/Kaixin/Pages/Friends/Home.aspx 13.修复IE下开心皮肤中的我的首页,发布迷你博客有js错误 SpaceBuilder/Web/Themes/UserDomains/Kaixin/Controls/MiniBlogs/ShowMiniBlog.ascx 14.修复第一次读取共同好友的时报错 SpaceBuilder.Core/Service/Friend/Friends.cs 15.修改读取共同好友的时获取的用户id SpaceBuilder/Web/Themes/UserDomains/Default/Controls/Friends/ListMutualFriends.ascx 16.解决空间圈子下可能出现论坛板块组的BUG Club\SqlProviders\SqlClubDataProvider.cs 17.修改分享活动的时候取得活动缩略图地址不对 SpaceBuilder/Web/Themes/Channels/Default/Controls/Events/EventAction.ascx 18.修改后台读取个人用户、企业用户的分页数据不正确 SpaceBuilder.Core/Framework/SqlProvider/SqlUserDataProvider.cs 19.修改编辑时删除推荐类型出现的乱码问题(对itemName参数添加了WebUtils.UrlEncode()方法) SpaceBuilder/Web/Themes/Channels/Default/Controls/RecommendItem.ascx 20.修改分享浏览数一直不变 SpaceBuilder/Web/Themes/UserDomains/Default/Pages/Shares/ShowUserShareThread.aspx SpaceBuilder/Web/Themes/Channels/Default/Pages/Shares/ShowShareThread.aspx 21.解决迷你博客动态图标超过5个第六个显示不了 MiniBlog.Web\Modules\DisposeActivityForMiniBlog.cs 22.修复六间房视频能自动播放 SpaceBuilder/Share.Web/SiteHtmlParsers/SixRoomHtmlParser.cs 23.修改了激动网视频url的正则表达式 SpaceBuilder/Web/SpaceBuilder.config 24.修改优酷专辑视频的播放器地址和缩略图不能解析 SpaceBuilder/Share.Web/SiteHtmlParsers/YoukuPlayListHtmlParser.cs 25.修改新浪视频分享的正则表达式 SpaceBuilder/Web/SpaceBuilder.config 26.修改新浪视频分享的正则表达式,需要手动修改配置文件,补丁中有说明 SpaceBuilder/Share.Web/SiteHtmlParsers/SinaHtmlParser.cs 27.修改了点击站点分享页面点击分享视频地址链接连接到站内分享视频的详细显示页面 SpaceBuilder/Web/Themes/Channels/Default/Controls/Shares/ListShareThreads.ascx SpaceBuilder/Web/Themes/UserDomains/Default/Controls/Shares/ListUserShareThreads.ascx 28.为分享网址的详细页面添加编辑和删除功能 SpaceBuilder/Web/Themes/UserDomains/Default/Pages/Shares/ShowShareLink.aspx SpaceBuilder/Web/Themes/Channels/Default/Pages/Shares/ShowShareLink.aspx 29.修复发布问答设为匿名动态也提示有 Reward.Web\Modules\DisposeActivityForReward.cs 30.问答回复的时候上传图片然后采纳 页面布局会出现错误 Web\Themes\Channels\Default\Controls\Reward\BestAnswer.ascx 31删除文件后加载页面不正确 File.Web\Handlers\UploadFilesHandler.cs Themes\UserDomains\Default\Pages\Files\SummaryFilesByUserTag.aspx Themes\UserDomains\Default\Pages\Files\SummaryFilesByCategory.aspx SpaceBuilder\File.Web\Controllers\FileController.cs 32.修复我的文件中点击文件夹管理中的文件夹名字 弹出找不到文件页面 Themes\UserDomains\Default\Pages\Files\ManageFileCategories.aspx 33.解决圈子首页的圈友分享中“查看”链接,如果用户名中含中文,则链接地址是错的。 Web\Themes\Channels\Default\Controls\Clubs\ShareToMyClubs.ascx 34.解决后台圈子留言 点击进去 不是根据未审核选择的 Club.Web\Controllers\ManageClubController.cs 35.对ShareDialog方法的参数contentAuthor添加了WebUtils.UrlEncode方法 SpaceBuilder/Share.Web/SiteUrlsExtensions.cs 36.修改后台推荐页面,编辑完推荐信息后页面没有信息 SpaceBuilder/Web/Themes/Manages/Default/Controls/Recommends/ManageRecommendedItems.ascx 37.修改频道相册排行显示的个数 SpaceBuilder/Web/Themes/Channels/Default/Pages/Photos/GalleryRanks.aspx 38.更新档案页,增加显示UserID SpaceBuilder/Web/Themes/UserDomains/Default/Pages/Settings/PersonUsers/EditProfile.aspx 39.修改后台管理分享评论页排序方式为倒序 SpaceBuilder.Share.dll 40.修改后台管理投票评论页排序方式为倒序 SpaceBuilder.Vote.dll 41.后台查看资讯评论,改为倒序 SpaceBuilder.Core\News\SqlProviders\SqlNewsDataProvider.cs 42.修复首页最新活动模块开始时间排序问题 SpaceBuilder.Core/Event/EventThreads.cs 43.修复了截字时出现二个… SpaceBuilder/Common.Web/Web/BreadCrumb.cs 44.修复没有内容不显示该内容模块 SpaceBuilder/Web/Themes/Channels/Default/Controls/Shares/ListThumbnailShareThreadsBlock.ascx 45.修复开心皮肤下的空间左侧导航,登录用户点击其他用户的资讯导航时,报没有管理权限问题 Web/Themes/UserDomains/Kaixin/Controls/PersonUsers/ApplicationMenu.ascx 46.修复在IE下点击主题标签,跳转至搜索主题页,标签显示乱码问题 Web/Themes/Channels/Default/Pages/Forums/ShowForumThread.aspx 47.为资讯幻灯片加入链接 Web/Themes/Channels/Default/Controls/News/ListNewsSildeBlock.ascx 48.修复幻灯片问题 Web/Themes/Channels/Default/Controls/Blogs/ListStickyBlogThreads.ascx Web/Themes/Channels/Default/Pages/Photos/Home.aspx Blog.Web/Controllers/ChannelBlogController.cs Web/Themes/Channels/Default/Controls/Photos/RecommendPhotoSlideBlock.ascx Web/Themes/Channels/Default/Controls/Blogs/ListStickyBlogThreads.ascx Blog.Web/Controllers/ChannelBlogController.cs Web/Themes/Channels/Default/Appearances/Default/style.css Web/Themes/SharedStyles/common.css
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值