LNMP环境搭建(discuz论坛)
一、操作系统级环境及软件版本
操作系统:CentOS release 6.5 (Final)minimal
内核版本:2.6.32-431.el6.x86_64
MySQL版本:MySQL-5.6.28
nginx版本:nginx-1.8.1
php版本:php-5.6.19
二、安装MySQL-5.6.28
获取地址:http://mirrors.sohu.com/mysql/自行选择想要的版本
mysql-5.6.28-linux-glibc2.5-x86_64.tar.gz这个版本是官方编译好的版本,解压后直接初始化即可使用,如果使用源码编译安装需要注意的是MySQL5.5版本以后要用cmake进行编译,编译时需要事先安装cmake。
解压mysql-5.6.28-linux-glibc2.5-x86_64.tar.gz
# tar -zxvf mysql-5.6.28-linux-glibc2.5-x86_64.tar.gz
将解压后的文件移动到/usr/local/下并命名为mysql
# mv mysql-5.6.28-linux-glibc2.5-x86_64 /usr/local/mysql
创建mysql用户没有家目录,并且不能登录
# useradd -M mysql -s /sbin/nologin
创建数据库文件存储位置
# mkdir -p /database/mysql
将所有者和所属组改为mysql
# chown -R mysql.mysql /database/mysql/
初始化数据库
# ./scripts/mysql_install_db --user=mysql --datadir=/database/mysql
将mysql的二进制bin目录添加到用户的环境变量中
# vim ~/.bash_profile
将/usr/local/mysql/bin添加到PATH中
# source ~/.bash_profile
配置mysql的环境并且开机自启动
# cp mysql.server /etc/init.d/mysqld
一定要执行这个,否则后悔莫及,不解释
# sed -i 's#^datadir=#datadir=/database/mysql#' /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld on
编辑mysql的配置文件
# vim /usr/local/mysql/my.cnf
添加如下内容不配置主从的情况下的配置:
basedir=/usr/local/mysql
datadir=/database/mysql/data
port=3306
socket=/tmp/mysql.sock
lower_case_table_names=1
key_buffer_size=256M
sort_buffer_size=1M
read_buffer_size=1M
read_rnd_buffer_size=4M
myisam_sort_buffer_size=64M
thread_cache_size=16
query_cache_size=16M
thread_concurrency=4
interactive_timeout=8
wait_timeout=8
slow_query_log=on
long_query_time=1
slow-query-log-file=/database/mysql/slow.log
具体参数参考MySQL常用配置
三、安装php
安装php之前先安装差不多用到的包
# yum -y install openssl-devel bzip2-devel libxml2-devel curl-devel libpng-devel libjpeg-devel freetype-devel libtool-ltdl-devel perl-devel
安装epel-release扩展源
rpm -ivh " http://www.lishiming.net/data/attachment/forum/epel-release-6-8_64.noarch.rpm "
# yum -y install libmcrypt-devel
创建php-fpm用户
# useradd -M php-fpm -s /sbin/nologin
# tar zxvf php-5.6.19.tar.gz
# cd php-5.6.19
# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql/ --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --disable-ipv6
# make -j 2
# make install
# cp php.ini-production /usr/local/php/etc/php.ini
将php-fpm添加到系统服务并设置为开机自启动
# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
# chmod 755 /etc/init.d/php-fpm
# chkconfig --add php-fpm
# chkconfig php-fpm on
# cd /usr/local/php/etc/
# mv php-fpm.conf.default php-fpm.conf
检查php-fpm的位置文件是否正确
# /usr/local/php/sbin/php-fpm -t
启动php-fpm
# service php-fpm start
四、安装nginx
# tar -zxvf nginx-1.8.1.tar.gz
# cd nginx-1.8.1
# ./configure --prefix=/usr/local/nginx --with-pcre
# make -j 2
# make install
启动nginx
# /usr/local/nginx/sbin/nginx
去配置文件里将php的配置项打开
# vim /usr/local/nginx/conf/nginx.conf
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
重新加载nginx配置文件
# /usr/local/nginx/sbin/nginx -s reload
在/usr/local/nginx/html目录先可以创建php的信息页进行测试五五、php-fpm常用跟配置
[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
[www]
listen = /tmp/www.sock
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
slowlog = /tmp/phpslow.log
request_slowlog_timeout = 1
六、常见的502错误
主要是因为nginx对php-fpm的sock没有读写权限造成的,还有一点就是在搭建discuz论坛的时候discuz目录下的权限应该对php-fpm用户有度读写的权限才可以,并不是nginx。
# chown -R php-fpm:php-fpm /web/discuz/
七、nginx用户认证
在discuz的配置文件中加入下面的内容
location ~ .*admin\.php$ {
auth_basic "fanjinbao auth";
auth_basic_user_file /usr/local/nginx/conf/.htpasswd;
include fastcgi_params;
fastcgi_pass unix:/tmp/discuz.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /web/discuz$fastcgi_script_name;
}
.htpasswd文件需要借助于apahce的密码生成工具才可以哦
八、nginx域名跳转
在discuz.conf的server中添加如下内容:
if ($host != 'www.discuz.com')
{
rewrite ^/(.*)$ http://www.discuz.com/$1 permanent;
}
九、nginx不记录指定文件类型日志
在discuz.conf的server中添加如下内容:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
access_log off;
}
location ~ (static|cache)
{
access_log off;
}
十、nginx的日志切割脚本
#!/bin/bash
d=`date -d "-1 day" +%F`
[ -d /tmp/nginx_log ] || mkdir /tmp/nginx_log
mv /web/discuz.log /tmp/nginx_log/$d.log
/etc/init.d/nginxd reload > /dev/null
cd /tmp/nginx_log/
gzip -f $d.log
十一、nginx配置静态文件过期时间
location ~ \.(js|css)
{
access_log off;
expires 2h;
}
十二、nginx配置防盗链
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
access_log off;
expires 15d;
valid_referers none blocked *.discuz.com *.fansik.com;
if ($invalid_referer)
{
return 403;
}
}
测试防盗链是否配置成功可以使用curl命令进行测试:
# curl -e "http://www.baidu.com/111" -x127.0.0.1:80 'http://www.discuz.com/static/image/common/logo.png' -I
这个返回的状态码肯定是403
# curl -e "http://www.fansik.com/111" -x127.0.0.1:80 'http://www.discuz.com/static/image/common/logo.png' -I
这个返回的状态码肯定是200
十二、nginx的访问控制
直接在配置文件(或者location中)添加
allow 127.0.0.1;
deny 1.1.1.1;
十三、nginx禁止指定user_agent
if ($http_user_agent ~* 'curl|baidu|11111')
{
return 403;
}
~*:不区分大小写
十四、nginx代理和负载
upstream baidu{
server 61.135.169.125:80;
server 61.135.169.121:80;
}
server {
listen 80;
server_name www.baidu.com;
location / {
proxy_pass http://baidu/;
proxy_set_header Host $host;
}
}
LNMP环境搭建(discuz论坛)的更多相关文章
- LNMP环境搭建BBS论坛及伪静态
我们在mysql备份 LNMP环境中的数据库迁移为独立的服务器的基础上搭建BBS论坛: [root@bqh-117 ~]# mysql -uroot -p123456 Welcome to the ...
- linux系统下搭建php环境之-Discuz论坛
1.安装搭建论坛必要的软件 apache php mysql CentOS系统我们可以直接使用 yum install 的方式进行软件安装,腾讯云有提供软件安装源,是同步CentOS官方的安装源,包涵 ...
- 用wamp5和ZendOptimizer搭建环境运行Discuz论坛
用wamp5和ZendOptimizer搭建环境运行Discuz论坛 用wamp5和ZendOptimizer搭建环境运行Discuz论坛 一: 环境: 1:Windows操作系统(Linu ...
- LNMP环境搭建
LNMP环境搭建 Linux + Nginx + MySQL + PHP PHP是一种脚本语言,当前中国乃至世界上使用PHP语言开发的网站非常普遍 Nginx是一个web服务软件,和apache是一类 ...
- 基于Centos搭建 Discuz 论坛
系统要求:CentOS 6.8 64 位操作系统 搭建 Discuz 论坛 准备 LAMP 环境 LAMP 是 Linux.Apache.MySQL 和 PHP 的缩写,是 Discuz 论坛系统依赖 ...
- LAMP搭建Discuz论坛
搭建Discuz论坛 1. 准备LAMP环境 LAMP是Linux,Apache,MySql和PHP的缩写,是Discuz论坛系统依赖的基础运行环境 1.安装Apache2 Ubuntu需要安装Ap ...
- LNMP环境搭建之php安装,wordpress博客搭建
LNMP环境搭建之php安装,wordpress博客搭建 一.介绍: 1.什么是CGI CGI全称是"通用网关接口"(Common Gateway Interface),HTTP服 ...
- Linux 搭建Discuz论坛
title: Linux 搭建Discuz论坛 Welcome to Fofade's Blog! 这里是Linux 搭建论坛的一些命令记录 命令摘记: 下载文件:Discuz 安装环境:PHP Ap ...
- Linux下-LNMP环境搭建博客网站(全过程)
通常我们所说的LNMP是指一个网站基本的组织框架,即Linux系统支持,Nginx静态服务,Mysql数据库支持以及PHP动态编程语言支持.目前Mysql数据库被Oracle数据库分析公司收购,其创始 ...
随机推荐
- 【Noip2012】解题报告【字符】【贪心】【高精度】【倍增】【set】
目录:1:vigenere密码[字符]2:国王游戏[贪心][高精度]3:开车旅行[倍增][set] 题目: VJ P1778 vigenere密码 Accepted 标签:NOIP提高组2012 ...
- 新浪微博数据抓取(java实现)
多了不说,直接贴出相关部分的实现代码 加密部分实现: package token.exe; import java.math.BigInteger; import java.util.Random; ...
- 读者写者问题(有bug 后续更改)
与上一篇<秒杀多线程第十篇 生产者消费者问题>的生产者消费者问题一样,读者写者也是一个非常著名的同步问题.读者写者问题描述非常简单,有一个写者很多读者,多个读者可以同时读文件,但写者在写文 ...
- Android 自带图标库 android.R.drawable
在xml文件中调用. android:title="@string/secure_connect"android:orderInCategory="100"an ...
- Visual Studio环境色调配色
据说对眼睛有好处的色调配色 vs 色调rgb 199,240,214 色调为84,饱和度为91,亮度为205 色调为85,饱和度为123,亮度205: “色调”由160更改为75-85之间——> ...
- python建立pip.ini
pip 是python的包管理器工具,类似linux的apt-get.yum包管理器,主要是用来进行安装python库, pip默认从官方源pypi.python.org下载数据,国内速度相对比较慢, ...
- python常见错误总结
TypeError: 'module' object is not callable 模块未正确导入,层级关系没找对 缩进错误. IndentationError: unindent does not ...
- linux中/etc/fstab文件删除或修改了,导致系统无法启动
在linux中,/etc/fstab文件是磁盘挂载的问题,若该文件不小心给修改了,或者被删除了,那么就会导致系统无法重启.因为/etc/fstab文件是记录磁盘挂载的信息,若该文件出现了问题,那么对应 ...
- 《AppletButtonEvent.java》
//AppletButtonEvent.java import java.applet.*; import java.awt.*; import java.awt.event.*; public cl ...
- SQL优化-索引
(一)深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录.微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引.簇集索引)和非聚集索引(nonc ...