linux lanmp结合

1. 准备两台centos 6,其中一台机器跑mysql,另外一台机器跑apache和nginx + php
2. 同时安装apache和nginx,其中nginx启动80端口,用来跑静态对象(图片、js、css),apache监听88端口,
负责跑动态页(php相关的),并且需要由nginx代理对外访问
3. mysql服务器需要开启慢查询日志
4. 搭建discuz、wordpress以及phpmyadmin,域名分别为bbs.abc.com, blog.abc.com, pma.abc.com
5. 配置discuz的伪静态(nginx)
6. apache不需要记录日志,nginx记录日志,但不记录图片等静态页的日志,并且配置日志切割
7. 配置图片防盗链(nginx)
8. 配置图片缓存7天,js,css缓存1天(nginx)
9. discuz和wordpress访问后台限制一下ip白名单,比如只允许192.168.1.100访问(nginx)
10. phpmyadmin整个站点需要配置用户认证(nginx)
11. 写一个mysql备份的脚本,每天5点执行,需要远程拷贝到web机器上
12. 把除了百度、google外的其他常见搜索引擎蜘蛛封掉,比如(bingbot/2.0、Sogou web spider/4.0、360Spider、
YisouSpider、YandexBot/3.0)(nginx)

grep -r --include="*.php" 'abc.com' *
在另一台机器上搭建mysql服务 192.168.1.124

tar zxvf mysql-5.1.73-linux-x86_64-glibc23.tar.gz
mv mysql-5.1.73-linux-x86_64-glibc23 /usr/local/mysql
useradd -s /sbin/nologin mysql
cd /usr/local/mysql
mkdir -p /data/mysql ; chown -R mysql:mysql /data/mysql
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
cp support-files/my-large.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
vim /etc/init.d/mysqld “datadir=/data/mysql”
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start


grant all on *.* to 'aming'@'192.168.1.123' identified by 'aminglinux.com';

在远程机器测试能否链接mysql
[root@localhost src]# mysql -uaming -paminglinux.com -h 192.168.1.124

在远程机器上把这些服务停掉
[root@localhost src]# /etc/init.d/php-fpm stop
Gracefully shutting down php-fpm ..... done
[root@localhost src]# /etc/init.d/mysqld stop
Shutting down MySQL..... SUCCESS!
[root@localhost src]# chkconfig mysqld off
[root@localhost src]# chkconfig php-fpm off
[root@localhost src]# chkconfig nginx off
[root@localhost src]# netstat -lnp

下载cn.wordpress.org

解压
tar zxvf wordpress-4.4.1-zh_CN.tar.gz
移动重命名
mv wordpress /data/blog
下载 phpmyadmin
https://files.phpmyadmin.net/phpMyAdmin/4.0.10.12/phpMyAdmin-4.0.10.12-all-languages.tar.gz
解压
tar zxvf phpMyAdmin-4.0.10.12-all-languages.tar.gz
移动重命名
mv phpMyAdmin-4.0.10.12-all-languages /data/pma

修改Apache的配置文件
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
DocumentRoot "/data/bbs"
ServerName bbs.abc.com
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "/data/blog"
ServerName blog.abc.com
</VirtualHost>



<VirtualHost *:80>
DocumentRoot "/data/pma"
ServerName pma.abc.com
</VirtualHost>


重启Apache
/usr/local/apache2/bin/apachectl restart
查看有没有启动服务
ps aux
用浏览器访问
http://bbs.abc.com/forum.php
会出现错误
修改
vim config/config_ucenter.php

<?php

define('UC_CONNECT', 'mysql');

define('UC_DBHOST', '192.168.1.124'); *
define('UC_DBUSER', 'aming'); *
define('UC_DBPW', 'aminglinux.com'); *
define('UC_DBNAME', 'aming');
define('UC_DBCHARSET', 'utf8');
define('UC_DBTABLEPRE', '`aming`.pre_ucenter_');
define('UC_DBCONNECT', 0);

define('UC_CHARSET', 'utf-8');
define('UC_KEY', 'vdu6ibN44e91MeDcUcW6J5E7N17fybx84aD1hfscHaQ1P8PeUdDbaej954g0t5b8');
define('UC_API', 'http://bbs.abc.com/uc_server'); *
define('UC_APPID', '1');
define('UC_IP', '');
define('UC_PPP', 20);
?>

vim config_global.php


<?php


$_config = array();

// ---------------------------- CONFIG DB ----------------------------- //
$_config['db']['1']['dbhost'] = '192.168.1.124'; *
$_config['db']['1']['dbuser'] = 'aming'; *
$_config['db']['1']['dbpw'] = 'aminglinux.com'; *

~
刷新网页
错误改变
Discuz! Database Error

(1046) No database selected

两个机器都安装
yum install -y rsync openssh-clients
rsync -av /data/mysql/aming/ 192.168.1.124:/data/mysql/aming/

[root@localhost data]# chown -R daemon /data/bbs/data/
[root@localhost data]# chown -R daemon /data/bbs/uc_server/data/
[root@localhost data]# chown -R daemon /data/bbs/uc_client/data

继续访问网站

vim /data/bbs/uc_server/data/config.inc.php

<?php
define('UC_DBHOST', '192.168.1.124');
define('UC_DBUSER', 'aming');
define('UC_DBPW', 'aminglinux');
define('UC_DBNAME', 'aming');

grep -r --include="*.php" 'abc.com' *

rm -rf uc_client/data/cache/apps.php
rm -rf uc_server/data/cache/apps.php


访问该网站
http://blog.abc.com/

mysql> create database blog; Query OK, 1 row affected (0.01 sec)

mysql> grant all on blog.* to 'liceng'@'192.168.0.100' identified by 'liceng'; Query OK, 0 rows affected (0.00 sec)

数据库名
blog
将WordPress安装到哪个数据库?
用户名
liceng
您的MySQL用户名
密码
liceng
…及其密码
数据库主机
192.168.1.124
如果localhost不能用,您通常可以从网站服务提供商处得到正确的信息。
表前缀
wp_
如果您希望在同一个数据库安装多个WordPress,请修改前缀。

[root@localhost blog]# vim wp-config.php

curl -xlocalhost:80 www.apache.com -I




访问网站
http://pma.abc.com/
他会让你输入密码 因为没有配置过所以做下骤操作
http://pma.abc.com/setup
上面的错误不用管
点击新建服务器

[root@localhost pma]# mkdir config
[root@localhost pma]# chmod 777 config
[root@localhost pma]# ls config
config.inc.php
mv config/config.inc.php
或者
[root@localhost pma]# cp libraries/config.default.php config.inc.php
vim config.inc.php

$cfg['Servers'][$i]['host'] = 'localhost';

$cfg['Servers'][$i]['port'] = '';

$cfg['Servers'][$i]['auth_type'] = 'cookie'; 改成config

$cfg['Servers'][$i]['user'] = 'root';

$cfg['Servers'][$i]['password'] = '';


cp libraries/config.default.php config.inc.php
vim config.inc.php

$cfg['Servers'][$i]['host'] = '192.169.1.123';
$cfg['Servers'][$i]['port'] = '3306';


$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'aming';

$cfg['Servers'][$i]['password'] = 'aminglinux.com';





该端口
vim /usr/local/apache2/conf/httpd.conf
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
:1,$s/:80/:88/g


/usr/local/apache2/bin/apachectl restart

netstat -lnp
apache的配置文件


NameVirtualHost *:88

<VirtualHost *:88>
DocumentRoot "/tmp/tmp"
ServerName tmp.com
php_admin_value open_basedir "/tmp/tmp"
<Directory /tmp/tmp/>
Order allow,deny
Deny from all
</Directory>
</VirtualHost>

<VirtualHost *:88>
DocumentRoot "/data/bbs"
ServerName bbs.abc.com
</VirtualHost>

<VirtualHost *:88>
DocumentRoot "/data/blog"
ServerName blog.abc.com
</VirtualHost>

<VirtualHost *:88>
DocumentRoot "/data/pma"
ServerName pma.abc.com
</VirtualHost>



配置nginx
cd /usr/local/nginx/conf/vhosts

vim bbs.conf


server
{
listen 80;
server_name bbs.abc.com;
index index.html index.htm index.php;
root /data/bbs;

#根据user_agent控制
if ($http_user_agent ~ 'bingbot/2.0|MJ12bot/v1.4.2|Spider/3.0|YoudaoBot|Tomato|Gecko/20100315'){
return 403;
}
location ~ admin.php {
allow 192.168.31.141;
deny all;
proxy_pass http://127.0.0.1:88;
proxy_set_header Host $host;
}

location ~ \.php$ {
proxy_pass http://127.0.0.1:88;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}


location ~ .*\.(js|css)?$
{
expires 24h;
access_log off;
}

location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ {
expires 7d;
valid_referers none blocked server_names *.abc.com *.a.com *.b.com *.baidu.com\
*.google.com *.google.cn *.soso.com ;
if ($invalid_referer) {
return 403;
#rewrite ^/ http://www.example.com/nophoto.gif;
}
access_log off;
}

rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last;
rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3 last;


access_log /home/logs/discuz.log combined_realip;
}



blog.conf


server
{
listen 80;
server_name blog.abc.com;
index index.html index.htm index.php;
root /data/blog;
location /wp-admin/ {
allow 127.0.0.1;
deny all;
location ~ \.php$ {
proxy_pass http://127.0.0.1:88;
proxy_set_header Host $host;
}
}

location / {
proxy_pass http://127.0.0.1:88/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

}


pma.conf


server
{
listen 80;
server_name pma.abc.com;
index index.html index.htm index.php;
root /data/pma;

location / {
auth_basic "Auth";
auth_basic_user_file /usr/local/nginx/conf/htpasswd;

location ~ \.php$ {
proxy_pass http://127.0.0.1:88;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

}
}



访问pma.abc.com

/usr/local/apache2/bin/htpasswd -m -c /usr/local/nginx/conf/htpasswd aming


nginx 日志切割
vim /usr/local/sbin/nginx_logrotate.sh

d=`date -d "-1 day" +%Y%m%d`
[ -d /tmp/nginx_log ] || mkdir /tmp/nginx_log
mv /tmp/access.log /tmp/nginx_log/$d.log
/etc/init.d/nginx reload 2> /dev/null
gzip -f $d.log


/usr/local/mysql/bin/mysqldump -uroot discuz > /home/discuz.sql
/usr/local/mysql/bin/mysqldump -uroot discuz > /home/discuz.sql

rsync -av /dat/mysql/*.sql 192.168....:/data/mysqlbak/



/etc/init.d/mysqld stop ; rsync -av /data/mysql/
posted @ 2016-12-16 16:35  onlylc  阅读(432)  评论(0)    收藏  举报