之前用过EZHTTP这套好用的LAMP,LNMP,LNAMP可配置自动安装包,在方便的同时也提供了一定的自主权,美中不足的就是配置过程有些慢(大约一个小时)。
最近想自己建个论坛玩玩,搜到了Discuz这个开源项目,发觉建站原来也是如此简单,我在配置过程中遇到了一些弯路,在此写出来希望能给大家省些时间,正常的话半天就能搞定LAMP+Discuz这一套了!
1、安装LNMP(或者LAMP,LNAMP)
linux+nginx+mysql+php,具体说明可以看这个贴子https://www.lxconfig.com/thread-69-1-1.html
安装过程可以说是很简洁明了,大部分设置都可以用默认值,除非有特殊用途(比如静态、动态页面加载多),正常安装LAMP或者LNMP,没有个半天时间很难成功,而且步骤偏多,要改的配置项也很多,一不小心就会错了哪部,所以新手的话建议还是用EZHTTP这套来安装。
安装成功后,在浏览器输入HTTP://本机ip/目录名/文件名 ,就可以显示出相应的文件效果了,建议自己验证下再往下一步走。
例如:我想调用的文件是在文件夹nginx--http--forum下的index.php,那么nginx/http不需在地址栏中特意标出,只需要打出http://localhost/forum/index.php就行了
2、安装discuz论坛
同样的安装过程比较简单,请看http://www.discuz.net/thread-2660015-1-1.html
安装完后输入HTTP://本机ip/论坛所在的目录名/就ok了。
需要说明的是我所经历的一些问题,他们分别是:
(1)mysql开放异地登陆权限
我在centos6.3上装完LNMP后,使用navicat这个软件登陆数据库,结果是提示Mysql:is not allowed to connect to this MySQL server,查询后是mysql没有授权远程登录,通过两种方法可以解决该问题
改表法:在本地登入mysql,更改 "mysql" 数据库中 "user" 表的 "host" 项,从"localhost"改为"%"这样所有用户均可实现远程登录,代码实现为:
mysql -u root -p
mysql>select host, user from user;
>use mysql;
mysql>update user set host = '%' where user = 'root';
授权法:如果只想开放个别用户(例如root使用密码root123)从任何主机连接到mysql服务器的话:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root123' WITH GRANT OPTION;
如果想允许用户root从ip为192.168.24.131的主机连接到mysql服务器,并使用root123作为密码:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.131' IDENTIFIED BY 'root123' WITH GRANT OPTION;
(2)iptables设置,开发22,80,3306端口
使用ssh方式远程登陆无效,经查询,是iptables没有开放相应端口,我们讲22(ssh),80(http),3306(数据库)这几个端口开放,方法为:
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
然后保存:
/etc/rc.d/init.d/iptables save
最后重启防火墙以便改动生效:(或者直接重启系统)
/etc/init.d/iptables restart
到此为止端口开放完成,常见的iptables配置,可以参考百度百科iptables的相关内容。
(3)修改php.ini中的相应项并重启服务
在使用discuz时会有一步提示php.ini中有个量需要修改(具体哪个量忘记了),修改后要重启php-fpm和使用到php服务的nginx。
php-fpm重启:
ps aux | grep php-fpm找到相应的master项
kill pid值
如果杀不掉就kill -9 pid值
/usr/local/php/sbin/php-fpm
nginx重启:
找到nginx-sbin路径,输入./nginx -s reload,当然也可以kill了以后再运行进程。
最终效果
爽玩去了~