当前位置:文档之家› 搭建基于LNMP平台的discuz论坛

搭建基于LNMP平台的discuz论坛

搭建基于LNMP平台的discuz论坛
先前做过LAMP平台下discuz论坛、wordpress的搭建,24最大的感受就是LAMP真是配合的天衣无缝呀,应该说这个技术是开源软件最为成功的,其高效、稳定、免费真是让人赞不绝口!!!
不知道现在51CTO论坛的架构是否还是LAMP平台的,如果让我猜我就觉得90%是!!不知道楼下的午饭是否同意24的猜测呢?因为有可能改变的就是web服务器的迁移,从apache-->nginx,但这是比较麻烦、大工作量的事情。
想下51cto对discuz 6.1.0做了不少二次开发,也会很大影响到其他软件的升级,所以我猜测l论坛还是基于lamp!!
或许能坐等51CTO系统运维管理人员前来谈及,讲述下整个体系的架构那是最好的事了(安全考虑范围之内)。
nginx从性能等各方面都超过了apache、lighttpd,大家可以看看张宴的《实战nginx:取代apache的高性能web服务器》
言归正传,下面说说下搭建基于LNMP平台的discuz论坛的内容:

今晚花了几个小时的时间把lnmp搭建了一遍,然后在上面安装discuz!6.0.0和Discuz_X1.5,下面以简单的方式罗列出
整个过程,有些细节性的东西可以自己去谷歌下搞清楚,毕竟这涉及的东西N多呀~~废话少说了,begin:

1、准备好软件包:
mysql-5.0.32.tar.gz
php-5.2.17-fpm-0.5.14.diff.gz
php-5.2.17.tar.gz
pcre-8.02.tar.gz
nginx-0.8.54.tar.gz
Discuz_X1.5_SC_UTF8.zip
软件安装顺序:
mysql-->php-->nginx-->discuz

2、安装mysql
参照INSTALL-SOURCE
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> make
shell> make install
shell> cp support-files/https://www.doczj.com/doc/606502120.html,f /etc/https://www.doczj.com/doc/606502120.html,f
shell> cd /usr/local/mysql
shell> bin/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql var
shell> chgrp -R mysql .
shell> bin/mysqld_safe --user=mysql &
[root@localhost bin]# pwd
/usr/local/mysql/bin
[root@localhost bin]# ./mysqladmin -u root password 123456 //设置mysql的管理员root的密码为123456(这里的root不是linux下的root)
[root@localhost bin]# ps -ef |grep mysql
[root@localhost bin]# ./mysql -u root -p //通过root登陆mysql
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.32-log Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> status //查看mysql版本
--------------
./mysql Ver 14.12 Distrib 5.0.32, for pc-linux-gnu (i686) using EditLine wrapper
mysql> create database discuz;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| discuz |
| mys

ql |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql> grant all privileges on *.* to [email=]'51cto'@'localhost'[/email]
-> identified by '654321' with grant option;
Query OK, 0 rows affected (0.00 sec)
//添加账号51cto、密码为654321
# echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >> /etc/rc.local


3、安装PHP
在LAMP平台下,php是被编译成为模块然后被apache所调用;在LNMP平台下,php是被编译成二进制文件执行,这样就需要通过fastCGI技术来实现nginx和php的整合。这里通过使用fastCGI的一个管理器php-fpm,将其以补丁的形式安装到php中去。对于php-5.3.2之前的版本都需要打这个补丁,由此来实现提供php格式的动态web页面。
# tar zxvf php-5.2.17.tar.gz
# gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-5.2.17 -p1
# ./configure --help (如下编译选项看里头解释)
# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --enable-fastcgi --enable-fpm
# make && make install
# vi INSTALL(查看安装文件向导)
13. Setup your php.ini file:
cp php.ini-dist /usr/local/lib/php.ini
# cp php.ini-dist /usr/local/lib/php.ini
# pwd
/usr/local/php/etc
# ls
pear.conf php-fpm.conf
# vi php-fpm.conf
如下通过set number把这个注释去掉,否则
# pwd
/usr/local/php/sbin
# ls
php-fpm
# ./php-fpm start
Starting php_fpm Mar 27 12:30:02.395166 [ERROR] fpm_unix_conf_wp(), line 124: please specify user and group other than root, pool 'default'
............. 就会出现这样的报错,所以通过nobody来执行
# vi php-fpm.conf
使得如下:
62 Unix user of processes
63 nobody
64
65 Unix group of processes
66 nobody
# cd ../sbin/
# ls
php-fpm
# ./php-fpm start
Starting php_fpm done
# ps -ef |grep php
# netstat -antup |grep 9000
# echo "/usr/local/php/sbin/php-fpm start" >> /etc/rc.local

4、安装nginx
首先装pcre软件包,pcre的作用为nginx提供兼容perl的正则表达式库,虽然linux的ISO文件会附带pcre的软件包,但是该版本一般都比较久,所以通过源码重新安装
# tar zxvf pcre-8.02.tar.gz
# cd pcre-8.02
# ./configure --prefix=/usr/local/pcre
# make && make install
# cd ..
# tar zxvf nginx-0.8.54.tar.gz
# cd nginx-0.8.54
# ./configure --prefix=/usr/local/nginx --with-pcre=/sofeware/pcre-8.02
(注意:--with-pcre=/sofeware/pcre-8.02指的是源码包解压后的路径,不是安装路径!)
# make && make install
# pwd
/usr/local/nginx/sbin
# ./nginx
# ps -ef |grep nginx
root 18528 1 0 12:50 ? 00:00:00 nginx: master process ./nginx
nobody 18529 18528 0 12:50 ? 00:00:00 nginx: worker process
root 18531 3114 0 12:50 pts/3 00:00:00 grep nginx
# elinks http://10.192.8

3.163
Welcome to nginx!
5、修改nginx的主配置文件,测试php页面
# pwd
/usr/local/nginx/conf
# vi nginx.conf //去掉#注销标志,还有就是修改php文件的存放目录为/usr/local/nginx/html
65 location ~ \.php$ {
66 root html;
67 fastcgi_pass 127.0.0.1:9000;
68 fastcgi_index index.php;
69 fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_ name;
70 include fastcgi_params;
71 }
# cd ../html/
# vi index.php
# cat index.php
phpinfo();
?>
# cd ../logs/
# kill `cat nginx.pid`
# cd ../sbin/
# ./nginx
# elinks http://10.192.83.163/index.php
修改php.index文件,验证与mysql数据库的连通性:
# cat index.php
$link=mysql_connect("localhost","root","123456");
if(!$link) echo "FAILD!";
else echo "OK!";
?>
elinks http://10.192.83.163/index.php
OK!
# echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local

6、安装discuz!6.0.0
# cd /usr/local/nginx/html/
# unzip /sofeware/Discuz\!_6.0.0_SC_UTF8.zip
# mv upload/ bbs
# chmod 777 -R bbs/
接下来
要通过浏览器来安装discuz了,在浏览器输入http://10.192.83.163/bbs/install.php


7、安装Discuz_X1.5
cd /usr/local/mysql/bin/
[root@localhost bin]# ./mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 25
Server version: 5.0.32-log Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| discuz |
| mysql |
| test |
+--------------------+
4 rows in set (0.07 sec)
mysql> create database 51cto;
Query OK, 1 row affected (0.01 sec)
# unzip /sofeware/Discuz_X1.5_SC_UTF8.zip
# mv upload/ 51cto-bbs
# chmod 777 -R 51cto-bbs/
当然。一台linux机子最好就别安装两款discuz软件、这样会导致error 404的~
还有就是nginx跟php可以隔离开来、通过fast-CGI技术可以更好的实现分工~~这个有机会就做做~~
具体其他模块的支持以及优化方面等有时间整理好再跟大伙分享吧~~
下面附带一些linux方面的精品内容给大伙,记得给24顶个~~不容易呀~~~







相关主题
文本预览
相关文档 最新文档