`

从零开始--CenterOS 6.5 64位环境中搭建nginx1.3+mysql5.5.25+tomcat7+jdk7+MQTT服务器

阅读更多
本文章大部分内容摘自 http://www.jz-net.cn/forum.php?mod=viewthread&tid=634&page=1 谢谢!在配置阿里云服务器的过程中,完全按此手顺也会遇到很多问题,所以在此整理和完善一下,以备后用。

1、操作系统: CentOS release 6.3 (Final) 64位
2、jdk版本: jdk-7u3-linux-x64.tar.gz
3、tomcat版本:apache-tomcat-7.0.32.tar.gz
5、mysql版本:
      MySQL-client-5.5.25a-1.rhel5.x86_64.rpm
      MySQL-devel-5.5.25a-1.rhel5.x86_64.rpm、
      MySQL-server-5.5.25a-1.rhel5.x86_64.rpm
6、nginx版本:nginx-1.3.0.tar.gz
7、php版本:php-5.4.3.tar.gz

安装需要的库和编译工具
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

---------------------------
JDK
---------------------------
jdk安装
tar -zxvf jdk-7u3-linux-x64.tar.gz
mv /upload/jdk1.7.0_03 /usr/local
复制代码
#解压,并且将解压后文件移动到需要存放的位置

jdk环境变量配置
打开文件/etc/profile在最后面加入以下内容
export JAVA_HOME=/usr/local/java/jdk1.6.0_30
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:
export JAVA_HOME JAVA_BIN PATH CLASSPATH

让/etc/profile文件修改后立即生效 ,使用如下命令:
# .  /etc/profile

其中/usr/local/java/jdk1.6.0_30 路径为自己服务器上面jdk的安装路径
重启服务器、查看是否安装成功
重启命令:reboot
查看是否安装成功:java -version
如果输出:java version “1.7.0_03″ 说明jdk已经安装成功

---------------------------
Tomcat
---------------------------
安装:#解压,并且将解压后文件移动到需要存放的位置
tar-zxvf apache-tomcat-7.0.32.tar.gz
mv/upload/apache-tomcat-7.0.32 /usr/local

环境变量配置
打开文件/etc/profile在最后面加入以下内容
export CATALINA_HOME=/usr/local/apache-tomcat-7.0.32


启动Tomcat、查看是否安装成功
具体的命令如下:
$CATALINA_HOME/bin/startup.sh

一般情况下,我们可以创建到该启动脚本的一个链接,放在/usr/local/bin目录下,
由于该目录下的脚本只要有执行权限,就可以在随时随时调用,因此可以把常用的命令放到该目录,提高工作效率
例:在/usr/local/bin/目录下创建tomcatstart命令
ln -s $CATALINA_HOME/bin/startup.sh /usr/local/bin/tomcatstart
chmod +x /usr/local/bin/tomcatstart
这样,随时随地都可以执行tomcatstart启动tomcat了


启动tomcat服务器,在浏览器中输入http://服务器IP:tomcat端口/
查看tomcat是否已启动:ps -ef|grep java

键入指令:tail -f tomcat/logs/catalina.out 就可以查看控制台了
如果用./catalina.sh run 启动tomcat的话,就可以像windows下的控制台一样,动态看到tomcat的控制台输出了。


■防火墙相关配置导致tomcat不可从外部访问,可以尝试参考以下的linux防火墙配置
1、关闭selinux
如果启动无错但无法访问,有可能是
selinux惹的祸,如果是centos系统,默认会开启selinux
解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。

2、CenterOS 6.3 64位中防火墙设置及开启某端口号
开启端口号的方法
修改防火墙配置文件,所在目录/etc/sysconfig/iptables,在里面增加需要开通的端口号,如下:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8088 -j ACCEPT

注意:在新安装的Linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所以不存
在/etc/sysconfig/iptables文件。
使用service iptables status查看防火墙的状态会提示:iptables: Firewall is not running.

解决:
在控制台使用iptables命令随便写一条防火墙规则就会有这个文件了,如:iptables -P OUTPUT ACCEPT
使用service iptables save进行保存,默认就保存到了/etc/sysconfig目录下的iptables文件中

#增加的代码必须放在以下代码之上,否则不会起作用.
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
完成之后重新启动防火墙即可 service iptables restart .此端口号将可以被访问.

linux防火墙常用命令
#永久性生效,重启后不会复原
开启:chkconfigiptables on
关闭:chkconfigiptables off

#即时生效,重启后复原
#重启|关闭|启动防火墙
方式一:/etc/init.d/iptables restart|stop|start
方式二:service iptables restart|stop|start


---------------------------
Mysql 5.5
---------------------------
查找以前是否安装有mysql,如果有先卸载
命令:rpm -qa|grep -i mysql

停止mysql服务、删除之前安装的mysql
删除命令:rpm -e –nodeps 包名
# rpm -ev MySQL-server-5.5.25-1.rhel5
# rpm -ev MySQL-devel-5.5.25-1.rhel5
# rpm -ev MySQL-client-5.5.25-1.rhel5
查找之前老版本mysql的目录、并且删除老版本mysql的文件和库
# find / -name mysql
或locate mysql

根据结果删除
接下来直接安装mysql即可

1、进入安装文件的目录
2、安装mysql服务端
# rpm -ivh MySQL-server-5.5.25a-1.rhel5.x86_64.rpm
3、安装mysql客户端、mysql-devel
       # rpm -ivh MySQL-client-5.5.25a-1.rhel5.x86_64.rpm
       # rpm -ivh MySQL-devel-5.5.25a-1.rhel5.x86_64.rpm
  
如果安装过程中提示和已有库的文件冲突,请使用以下命令移除相应的库:
(有什么库也可以使用rpm -qa | mysql进行查询)
yum -y remove mysql-libs-5.1.52*   -y的意思就是不询问是否remove

启动mysql服务
# service mysql start
修改mysql中root的初始化密码
1、命令如下:
# /usr/bin/mysqladmin -u root password ‘rootadmin’
格式:mysqladmin -u用户名 -p旧密码 password 新密码

mysqladmin -uroot password 'defaultPassword'
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了

2、用新的密码进行登录:
mysqladmin -uroot password 'vendingihr'

重启与停止mysql服务
启动方式1:service mysql start|stop|restart
启动方式2:/etc/init.d/mysql start|stop|restart

#一般需要将mysql的DB数据文件迁移到指定目录:
mysql_install_db --user=mysql --basedir=/usr --datadir=/mnt/mysqldata
为避免夜长梦多,干掉/var/lib/mysql
rm -rf /var/lib/mysql

配置:
修改my.cnf以更改mysql默认配置,Linux下用rpm包安装的MySQL是不会安装/etc/my.cnf文件的,
只需要复制一个/usr/share/mysql目录下的my-medium.cnf文件到/etc目录,并改名为my.cnf即可。

配置慢查询(这个未尝试,先记着)
log-slow-queries=/usr/share/mysql/slow.log
long_query_time=2

log-slow-queries=/usr/share/mysql/slow.log
long_query_time=2

#log-bin=/mnt/mysqldata/mysql-bin

[mysqld]加入
log-bin=/usr/local/mysql-bin  其他空间大的磁盘分区

●修改mysql默认的编码格式
查看当前编码:show variables like “character%”;

在[client ]下面加入
default-character-set=utf8
在[ mysqld ] 下面加
character_set_server=utf8
init_connect=’SET NAMES utf8′(或者是SET NAMES ‘utf8′)
网上说在 [ mysql ] 下面加入
character_set_server=utf8
重启mysql
service mysql restart

●mysql5.5.25开启远程访问功能
mysql默认的相关配置实际上是在mysql数据库中mysql用户中的user表中,只需要修改此表中相关记录即可实现
添加新用户进行授权
#grant all privileges on *.* to 创建的用户名@"%" identified by "密码";
#flush privileges; #刷新权限使其生效
#格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by “用户密码”;
#@后面是访问mysql的客户端IP地址(或是 主机名) % 代表任意的客户端
#如果填写 localhost 为本地访问(那此用户就不能远程访问该mysql数据库了)。
如下例所示增加shop用户并且开启远程访问权限
grant all privileges on *.* to shop@"%" identified by "shopadmin";

---------------------------
MQTT
---------------------------
从以下地址下载并按顺序安装MQTT mosquitto安装包
libmosquitto1-1.4.2-3.2.x86_64.rpm
libmosquittopp1-1.4.2-3.2.x86_64.rpm
libmosquitto-devel-1.4.2-3.2.x86_64.rpm
libmosquittopp-devel-1.4.2-3.2.x86_64.rpm
mosquitto-1.4.2-3.2.x86_64.rpm
mosquitto-clients-1.4.2-3.2.x86_64.rpm
mosquitto-debuginfo-1.4.2-3.2.x86_64.rpm

type=rpm-md
baseurl=http://download.opensuse.org/repositories/home:/oojah:/mqtt/CentOS_CentOS-6/
gpgcheck=1
gpgkey=http://download.opensuse.org/repositories/home:/oojah:/mqtt/CentOS_CentOS-6/repodata/repomd.xml.key
enabled=1

如果安装过程中有依赖不明的话,可以尝试用yum来安装,yum会自动下载相关依赖
yum install mosquitto-1.4.2-3.2.x86_64.rpm

---------------------------
■Nigix(未尝试)
---------------------------
下载必须的组件
pcre-8.31.tar.gz 让nginx支持rewrite
下载地址:http://sourceforge.net/projects/pcre/files/pcre/8.31/pcre-8.31.tar.gz/download
安装pcre-8.31.tar.gz
1、解压 pcre
tar zxvf pcre-8.31.tar.gz
2、配置 pcre
cd pcre-8.31
./configure
配置时如果报 configure: error: no acceptable C compiler found in $PATH 错误
可参考:nginx安装 configure: error: no acceptable C compiler found in $PATH
3、编译 make
编译时如果报 make[3]: *** [install-data-hook] Error 1错误
可参考:pcre-8.31安装 make[3]: *** [install-data-hook] Error 1错误
编译时如果报 make[1]: *** [pcrecpp.lo] Error 1错误
可参考:nginx安装出错 make[1]: *** [pcrecpp.lo] Error 1
4、安装  make install
添加nginx需要的用户组及用户
#/usr/sbin/groupadd -f nginx
#/usr/sbin/useradd -g ningx nginx
安装nginx
1、解压 nginx
tar zxvf nginx-1.3.0.tar.gz
2、配置nginx,默认的安装目录在/usr/local/nginx
cd nginx-1.3.0
./configure
3、编译nginx
make
4、安装
make install
5、启动服务
service nginx start 或者/usr/local/nginx/sbin/nginx
启动时如果报 error while loading shared libraries: libpcre.so.1:错误
可参考:nginx启动出错 error while loading shared libraries: libpcre.so.1:
配置或启动时如果报 nginx: [emerg] getpwnam(“www”) failed 错误
可参考:nginx安装 nginx: [emerg] getpwnam(“www”) failed 错误
6、访问服务器的IP地址,成功之后页面将显示以下信息
Welcome to nginx!

---------------------------
■PHP(未尝试)
---------------------------
安装支持套件
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
如果前面已经安装了LNMP安装时所需要的支持套件,则此处不需要再安装,前面已经讲过,具体位置在我的Linux项目实施系列教程:CenterOS 6.3 64位环境说明、软件下载、库及编译工具安装

安装支持库
1) pcre-8.30.tar.gz 下载
# tar zxvf pcre-8.30.tar.gz
# cd pcre-8.30
# ./configure
# make
# make install
2) libiconv-1.14.tar.gz 下载
# tar zxvf libiconv-1.14.tar.gz
# cd libiconv-1.14
# ./configure
# make
# make install
3) libmcrypt-2.5.8.tar.gz 下载
# tar zxvf libmcrypt-2.5.8.tar.gz
# cd libmcrypt-2.5.8
# ./configure
# make
# make install
4) mhash-0.9.9.9.tar.gz 下载
# tar zxvf mhash-0.9.9.9.tar.gz
# cd mhash-0.9.9.9
# ./configure
# make
# make install
5) mcrypt-2.6.8.tar.gz 下载
# tar zxvf mcrypt-2.6.8.tar.gz
# cd mcrypt-2.6.8
# ./configure
# make
# make install
配置时如果报 configure: error: *** libmcrypt was not found 错误
可参考:configure: error: *** libmcrypt was not found 错误解决
安装php-5.4.3
# tar zvxf php-5.4.3.tar.gz
# cd php-5.4.3
# ./configure -prefix=/usr/local/php –with-config-file-path=/usr/local/php/etc –with-mysql=/usr –with-mysqli=/usr/bin/mysql_config –with-iconv-dir=/usr/local/lib –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-ldap –with-ldap-sasl –with-xmlrpc –enable-zip –enable-soap –without-pear –with-fpm-user=www –with-fpm-group=www
# make
# make install
编译中的错误解决
1、如果配置当中报 configure: error: Cannot find ldap libraries in /usr/lib. 错误
具体的解决办法请参考:解决php configure: error: Cannot find ldap libraries in /usr/lib.错误2、如果配置当中报 configure: error: Cannot find MySQL header files under /usr/share/mysql. 错误
说明指定的安装目录不对
解决办法:将–with-mysql=/usr/share/mysql 改成–with-mysql=/usr
3、如果配置当中报
configure: error: Cannot find libmysqlclient under /usr.
Note that the MySQL client library is not bundled anymore! 错误
具体的解决办法请参考:configure: error: Cannot find libmysqlclient under /usr.错误解决4、如果配置当中报 make: *** [sapi/cli/php] Error 1 错误
具体的解决办法请参考:make: *** [sapi/cli/php] Error 1错误解决
复制php配置文件
# cp php.ini-production /usr/local/php/lib/php.ini 或是 /usr/local/lib/php.ini
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# /usr/local/php/bin/php –ini //测试ini文件是否加载
编辑php-fpm.conf
[global]
pid = run/php-fpm.pid
error_log = log/php-fpm.log
log_level = notice
[www]
listen = 127.0.0.1:9000
user = www
group = www
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 5000
测试php-fpm配置
/usr/local/php/sbin/php-fpm -t
如果显示以下信息,则说明安装成功
NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test is successful
启动9000端口号
防火墙中开启php默认的端口号9000,如果服务器没有开启防火墙,则不需要
启动php-fpm
/usr/local/php/sbin/php-fpm
如果启动报错:ERROR: [pool www] cannot get uid for user ‘www’
增加用户即可,具体的代码:useradd www -M -s /sbin/nologin
到此为止,整个php安装完成
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics