#!/bin/bash
#lnmp搭建
#搭建WIKI

1.系统检测,系统环境优化

搭建版本:

nginx-1.8.1.tar.gz
mysql-5.5.32-linux2.6-x86_64.tar.gz
libmcrypt-2.5.8.tar.gz
mhash-0.9.9.9.tar.gz
mcrypt-2.6.8.tar.gz
php-5.3.27.tar.gz

更新yum源:cd /etc/yum.repos.d/
mv CentOS6-Base-163.repo CentOS6-Base-163.repo.bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
yum clean all
yum makecache
检查系统版本信息:
uname -r
2.6.32-504.el6.x86_64
cat /etc/redhat-release
CentOS release 6.6 (Final)
关闭selinux关闭防火墙:
getenforce
Disabled
iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

2.安装nginx

mkdir ~/tools
cd ~/tools
wget http://nginx.org/download/nginx-1.8.1.tar.gz
yum install pcre pcre-devel openssl openssl-devel -y
yum install zlib zlib-devel gcc gcc-c++ autoconf automake
useradd -s /sbin/nologin nginx -M

tar xf nginx-1.8.1.tar.gz
cd nginx-1.8.1
./configure \
--user=nginx \
--group=nginx \
--prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_stub_status_module

make && make install
echo $?

ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx
#启动:
nginx
netstat -lntup|grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3420/nginx
#重启:
nginx -s reload
#停止
#查询nginx进程号
ps -ef|grep nginx
#停止进程
kill -QUIT 主进程号
#快速停止
kill -TERM 主进程号
#强制停止
pkill -9 nginx
访问验证:
http://192.168.146.134/

3.安装MySQL

选择版本下载:https://downloads.mysql.com/archives/community/
wget https://downloads.mysql.com/archives/get/file/mysql-5.5.32-linux2.6-x86_64.tar.gz
tar zxvf mysql-5.5.32-linux2.6-x86_64.tar.gz
mv mysql-5.5.32-linux2.6-x86_64 /usr/local/mysql-5.5.32
ln -s /usr/local/mysql-5.5.32 /usr/local/mysql
useradd -s /sbin/nologin -M mysql
mkdir /mysql/data -p
chown -R mysql.mysql /mysql/data
cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data/
echo $?
cp support-files/my-small.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
#修改启动脚本路径
sed -i 's#^basedir=#basedir=/usr/local/mysql#g' /etc/init.d/mysqld
sed -i 's#^datadir=#basedir=/mysql/data#g' /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
#启动关闭MySQL
/etc/init.d/mysqld start
/etc/init.d/mysqld stop
#方法2:
/usr/local/mysql/bin/msyql_safe & #后台启动
mysqladmin shutdown #优雅关闭MySQL服务
#查看运行状态
netstat -lntup|grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 33369/mysqld
lsof -i :3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 33369 mysql 10u IPv4 53889 0t0 TCP *:mysql (LISTEN)

#添加系统自启动
chkconfig --add mysqld
chkconfig --level 345 mysqld on
#添加环境变量
echo "PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
source /etc/profile

#修改初始密码
方法1:mysqladmin -uroot password '123.com'
方法2:
update user set password=password('456.com') where user='root' and host='localhost';
flush privileges;
方法3:
set password=password('123.com');
flush privileges;

#优化数据库
mysql -uroot -p

drop database test;
select user,host from mysql.user;
+------+-----------------+
| user | host |
+------+-----------------+
| root | 127.0.0.1 |
| root | ::1 |
| | localhost |
| root | localhost |
| | zhang.python.cn |
| root | zhang.python.cn |
+------+-----------------+
6 rows in set (0.21 sec)

drop user ''@'zhang.python.cn';
drop user ''@'localhost';
drop user 'root'@'::1';
drop user 'root'@'zhang.python.cn';
select user,host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| root | 127.0.0.1 |
| root | localhost |
+------+-----------+
2 rows in set (0.00 sec)

#注意:grant新建的用户drop删除不了,需要用delete删除。
grant all on *.* to root@'a' identified by '123.com';
delete from mysql.user where user='root' and host='a';

4.安装PHP

安装前确保nginx和MySQL启动正常:
netstat -lntup|egrep 'nginx|mysql'
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 33369/mysqld
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3420/nginx

检查系统是否有以下包文件:
rpm -qa zlib libxml libjpeg freetype libpng gd curl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel
yum -y install zlib libxml libjpeg freetype libpng gd curl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel
rpm -qa zlib libxml libjpeg freetype libpng gd curl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel
libpng-1.2.49-2.el6_7.x86_64
gd-devel-2.0.35-11.el6.x86_64
libxml2-devel-2.7.6-21.el6_8.1.x86_64
freetype-devel-2.3.11-17.el6.x86_64
zlib-devel-1.2.3-29.el6.x86_64
libpng-devel-1.2.49-2.el6_7.x86_64
gd-2.0.35-11.el6.x86_64
zlib-1.2.3-29.el6.x86_64
freetype-2.3.11-17.el6.x86_64
curl-7.19.7-52.el6.x86_64

#安装libiconv字符集转换包:
下载:wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make && make install
cd ..

#安装libmcrypt加密库:
wget https://jaist.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make
make install
sleep 2
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make
make install
echo $?
cd ../../

#安装mhash加密扩展库

wget https://jaist.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz

tar zxf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make
make install
cd ../
rm -f /usr/lib64/libmcrypt.*
rm -f /usr/lib64/libmhash*
ln -s /usr/local/lib64/libmcrypt.la /usr/lib64/libmcrypt.la
ln -s /usr/local/lib64/libmcrypt.so /usr/lib64/libmcrypt.so
ln -s /usr/local/lib64/libmcrypt.so.4 /usr/lib64/libmcrypt.so.4
ln -s /usr/local/lib64/libmcrypt.so.4.4.8 /usr/lib64/libmcrypt.so.4.4.8
ln -s /usr/local/lib64/libmhash.a /usr/lib64/libmhash.a
ln -s /usr/local/lib64/libmhash.la /usr/lib64/libmhash.la
ln -s /usr/local/lib64/libmhash.so /usr/lib64/libmhash.so
ln -s /usr/local/lib64/libmhash.so.2 /usr/lib64/libmhash.so.2
ln -s /usr/local/lib64/libmhash.so.2.0.1 /usr/lib64/libmhash.so.2.0.1
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config

#安装mcrypt加密扩展库

wget https://jaist.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz
tar zxf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
/sbin/ldconfig
./configure LD_LIBRARY_PATH=/usr/local/lib
make
make install
sleep 2
cd ..

#安装PHP
yum install libxslt* -y
wget http://219.238.7.66/files/7220000008ECCD21/in1.php.net/distributions/php-5.3.27.tar.gz
tar zxvf php-5.3.27.tar.gz
cd php-5.3.27

./configure \
> --prefix=/usr/local/php5.3.27 \
> --with-mysql=/usr/local/mysql \
> --with-iconv-dir=/usr/local/libiconv \
> --with-freetype-dir \
> --with-jpeg-dir \
> --with-png-dir \
> --with-zlib \
> --with-libxml-dir=/usr \
> --enable-xml \
> --disable-rpath \
> --enable-safe-mode \
> --enable-bcmath \
> --enable-shmop \
> --enable-sysvsem \
> --enable-inline-optimization \
> --with-curl \
> --with-curlwrappers \
> --enable-mbregex \
> --enable-fpm \
> --enable-mbstring \
> --with-mcrypt \
> --with-gd \
> --enable-gd-native-ttf \
> --with-openssl \
> --with-mhash \
> --enable-pcntl \
> --enable-sockets \
> --with-xmlrpc \
> --enable-zip \
> --enable-soap \
> --enable-short-tags \
> --enable-zend-multibyte \
> --enable-static \
> --with-xsl \
> --with-fpm-user=nginx \
> --with-fpm-group=nginx \
> --enable-ftp

echo $?
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/
make
echo $?
make install
echo $?
ln -s /usr/local/php5.3.27/ /usr/local/php

#配置PHP
cp php.ini-production /usr/local/php/lib/php.ini

修改配置:
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf

[global]
pid = /app/logs/php-fpm.pid
error_log = /app/logs/php-fpm.log
log_level = error

rlimit_files = 32768
events.mechanism = epoll
[www]
user = nginx
group = nginx
listen = 127.0.0.1:9000
listen.owner = nginx
listen.group = nginx

pm = dynamic
pm.max_children = 1024
pm.start_servers = 16
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.process_idle_timeout = 15s;
pm.max_requests = 2048

slowlog = /app/logs/$pool.log.slow
request_slowlog_timeout = 10

php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f 49000448@qq.com

#检查语法:
/usr/local/php/sbin/php-fpm -t
[30-Mar-2017 14:43:44] ERROR: failed to open error_log (/app/logs/php-fpm.log): No such file or directory (2)
[30-Mar-2017 14:43:44] ERROR: failed to post process the configuration
[30-Mar-2017 14:43:44] ERROR: FPM initialization failed

mkdir -p /app/logs
/usr/local/php/sbin/php-fpm -t
[30-Mar-2017 14:44:31] NOTICE: configuration file /usr/local/php5.3.27/etc/php-fpm.conf test is successful

#启动PHP-fpm
/usr/local/php/sbin/php-fpm
netstat -lntup|grep php-fpm
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 61675/php-fpm

ps -ef|grep php-fpm
root 61675 1 0 14:45 ? 00:00:00 php-fpm: master process (/usr/local/php5.3.27/etc/php-fpm.conf)
nginx 61676 61675 0 14:45 ? 00:00:00 php-fpm: pool www
nginx 61677 61675 0 14:45 ? 00:00:00 php-fpm: pool www
nginx 61678 61675 0 14:45 ? 00:00:00 php-fpm: pool www
nginx 61679 61675 0 14:45 ? 00:00:00 php-fpm: pool www
nginx 61680 61675 0 14:45 ? 00:00:00 php-fpm: pool www
nginx 61681 61675 0 14:45 ? 00:00:00 php-fpm: pool www
nginx 61682 61675 0 14:45 ? 00:00:00 php-fpm: pool www
nginx 61683 61675 0 14:45 ? 00:00:00 php-fpm: pool www
nginx 61684 61675 0 14:45 ? 00:00:00 php-fpm: pool www
nginx 61685 61675 0 14:45 ? 00:00:00 php-fpm: pool www
nginx 61686 61675 0 14:45 ? 00:00:00 php-fpm: pool www
nginx 61687 61675 0 14:45 ? 00:00:00 php-fpm: pool www
nginx 61688 61675 0 14:45 ? 00:00:00 php-fpm: pool www
nginx 61689 61675 0 14:45 ? 00:00:00 php-fpm: pool www
nginx 61690 61675 0 14:45 ? 00:00:00 php-fpm: pool www
nginx 61691 61675 0 14:45 ? 00:00:00 php-fpm: pool www

#开机自动运行服务
vim /etc/rc.local
/etc/init.d/mysqld start
/usr/local/php/sbin/php-fpm
/usr/local/nginx/sbin/nginx

5.nginx整合PHP

#修改nginx配置文件:
vim /sur/local/nginx/conf/nginx.conf
worker_processes 1;
error_log logs/error.log error;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
sendfile on;
keepalive_timeout 65;
include extra/www.conf;
include extra/bbs.conf; #为每个服务建立配置文件
include extra/blog.conf;
}

mkdir /usr/local/nginx/conf/extra
cd /usr/local/nginx/conf/extra
touch bbs.conf
touch www.conf
touch blog.conf

vim bbs.conf

server {
listen 80;
server_name bbs.zhangxinqi.com;
root html/bbs;
index index.html index.htm index.php;
access_log logs/bbs_access.log;
location ~ .*\.(php|php5)?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}

}

vim www.conf

server {
listen 80;
server_name www.zhangxinqi.com;
root html/www;
index index.html index.htm;
access_log logs/www_access.log;
location /status{
stub_status on;
access_log off;
}
}
#检查语法
nginx -t
#重启动nginx
nginx -s reload

#建立PHP测试文件
vim html/bbs/index.php
<?php
phpinfo();
?>

#测试能访问到php文件,就表示nginx会将php文件推送给php处理。
http://bbs.zhangxinqi.com

#测试MySQL链接是否正常
vim mysql_test.php
<?php
//$link_id=mysql_connect('主机名','用户','密码');
$link_id=mysql_connect('localhost','root','123.com') or mysql_error();
if($link_id){
echo "mysql successful by zhang\n";
}else{
echo "mysql_error()";
}
?>
#访问输出结果为“mysql successful by zhang"则为正常
http://bbs.zhangxinqi.com/mysql_test
#系统下以PHP命令测试
/usr/local/php/bin/php mysqltest.php
mysql successful by zhang
/etc/init.d/mysqld stop
Shutting down MySQL. SUCCESS!
/usr/local/php/bin/php mysqltest.php
PHP Warning: mysql_connect(): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /usr/local/nginx/html/bbs/mysqltest.php on line 3
mysql_error()'
/etc/init.d/mysqld start
Starting MySQL.. SUCCESS!
/usr/local/php/bin/php mysqltest.php
mysql successful by zhang

到此LNMP搭建全部完成!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

6.搭建WIKI

wiki下载:http://kaiyuan.hudong.com/download/

#建立数据库和用户授权:
create database wiki character set utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on wiki.* to 'wiki'@'localhost' identified by '123.com';
Query OK, 0 rows affected (0.22 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

cd /usr/local/nginx/html/bbs
unzip HDWiki-v5.1UTF8-20141205博客站点.zip
rm -fr HDWiki-v5.1UTF8-20141205博客站点.zip
mv HDWiki-v5.1UTF8-20121102/* .
mv document/* .
mv hdwiki/* .

http://bbs.zhangxinqi.com
chown -R nginx.nginx bbs/

完成WIKI搭建。。。。。。。。。。。。。。。。。。。。。

搭建LNMP;搭建WIKI的更多相关文章

  1. CentOS7——搭建LNMP环境(WordPress案例)

    CentOS7--搭建LNMP环境(WordPress案例) LNMP组成介绍 LNMP(Linux-Nginx-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统 ...

  2. CentOS6.6搭建LNMP环境

    CentOS6.6搭建LNMP环境 1.设置yum源,本地安装依赖包 1 yum -y install gcc gcc-c++ automake autoconf libtool make 2.下载依 ...

  3. 源码搭建LNMP

      源码安装LNMP 作者:尹正杰   版权声明:原创作品,谢绝转载!否则将追究法律责任.       欢迎加入:高级运维工程师之路 598432640 前言:非常简单的一个平台LNMP,在生产实际环 ...

  4. CentOS下Web服务器环境搭建LNMP一键安装包

    CentOS下Web服务器环境搭建LNMP一键安装包 时间:2014-09-04 00:50来源:osyunwei.com 作者:osyunwei.com 举报 点击:3797次 最新版本:lnmp- ...

  5. CentOS 搭建LNMP服务器和LAMP服务器

    CentOS 搭建LNMP服务器 方法一:yum安装 1.更新YUM源 wget http://www.atomicorp.com/installers/atomic   #下载atomic自动更新Y ...

  6. CentOS源码安装搭建LNMP全过程(包括nginx,mysql,php,svn)【转】

    转自:http://blog.csdn.net/yanzi1225627/article/details/49123659 服务器环境为:CentOS6.5 64位 目标:搭建LNMP(Linux + ...

  7. 源码搭建lnmp平台

    lnmp平台是指利用linux操作系统,nginx服务器,mysql数据库和php语言搭建高性能web服务器,负载均衡器和邮件代理服务器. 原理图:‘

  8. 从零搭建LNMP环境

    Linux就是环境所在的操作系统: Nginx则是一个「高性能的HTTP和反向代理服务器」,官网地址:http://nginx.org/: MySQL则是一个方便地对数据进行增删改查的数据库管理系统, ...

  9. 图文详解如何快捷搭建LNMP服务环境

    上一篇与大家一起学习了下如何搭建LAMP环境的知识,今天小编再和大家分享下如何快捷地搭建LNMP环境,并搭建起一个网站.Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/S ...

随机推荐

  1. 7、创建ROS msg和srv

    一.msg和srv介绍 msg: msg文件使用简单的文本格式声明一个ROS message的各个域. 仅须要创建一个msg文件,就能够使用它来生成不同语言的message定义代码. srv:srv文 ...

  2. 游戏AI(三)—行为树优化之基于事件的行为树

    上一篇我们讲到了关于行为树的内存优化,这一篇我们将讲述行为树的另一种优化方法--基于事件的行为树. 问题 在之前的行为树中,我们每帧都要从根节点开始遍历行为树,而目的仅仅是为了得到最近激活的节点,既然 ...

  3. Oracle自动备份数据

    一. Oracle自动备份单表一个月数据 方式一:三步处理(建批处理文件,写sql文件,设置任务计划) 1. 第一步:建立一个批处理文件 @echo off Set OrclSid=orcl Set ...

  4. Chef 自动化运维:Chef 的安装

    安装准备 准备三台服务器,分别用作 Chef Server.Chef DK.Chef Client 的安装使用. 在三台服务器中,添加以下 hosts: vim /etc/hosts 192.168. ...

  5. 记一次诡异的jetty问题

    问题出现 用eclipse开发,用jetty跑某个项目时,如果是jsp页面,会出现以下错误. ------------------------------------------------ java ...

  6. C#应用程序隐藏调用bat脚本

    做c#应用程序有些调用windows自带的bat脚本会比较方便 Process proc; proc = null; try { string targetDir = GetParentUrl() + ...

  7. 其他函数:值为NULL时的默认值NVL,DECODE

    NVL(列,默认数字值),此函数返回值为数值型,非NULL时返回原始值,NULL时返回默认数字值. DECODE:

  8. 浅谈Unix I/O模型

    关于I/O模型的文章比较多,参考多篇后理解上仍然不太满意,终需自己整理一次,也是编写高吞吐量高性能网络接口模块的基础.这里所说的主要针对网络I/O,近几年面对越来越大的用户请求量,如何优化这些步骤直接 ...

  9. sqlserver 存储过程 游标实例

    if exists(select * from sysobjects where id = object_id(N'dbo.test_cursor') and type = 'P') drop PRO ...

  10. Python2/3的中、英文字符编码与解码输出: UnicodeDecodeError: 'ascii' codec can't decode/encode

    摘要:Python中文虐我千百遍,我待Python如初恋.本文主要介绍在Python2/3交互模式下,通过对中文.英文的处理输出,理解Python的字符编码与解码问题(以点破面). 前言:字符串的编码 ...