Elasticsearch + php + msyql+nginx安装流程
sudo yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-develglib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devele krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers #nginx所需要的库文件件 sudo yum -y install pcre-deve l zlib-deve l gd gd-deve l freetype net-tools yum -y install pcre* #PHP依赖的库文件 sudo yum -y install gd-devel libjpeg-devel libpng-devel freetype-devel libxml2-devel curl-devel yum -y install mysql mysql-devel //尽可能用源码编译安装 yum -y install mysql-server //尽可能用源码编译安装 mysql -uroot -p #登陆方式 3.登录MySQL修改密码 mysql -uroot -S /opt/mysql/3306/mysql.sock mysql> flush privileges; mysql> set password for root@'localhost'= password('miaohr1qaz'); 4.登录数据库给multi用户添加权限 mysql -uroot -S /opt/mysql/3306/mysql.sock -pmiaohr1qaz mysql> GRANT SHUTDOWN ON *.* TO 'multi'@'localhost' IDENTIFIED BY 'multi'; 5.设置root远程访问 mysql> UPDATE mysql.user SET Host='%' WHERE Host='localhost'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; mysql> FLUSH PRIVILEGES; nginx 安装 ./configure --prefix=/usr/nginx make make install 匹配nginx.conf开启 location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000 fastcgi_index index.php fastcgi_param SCRIPT_FILENAME /usr/nginx/html$fastcgi_script_name; include fastcgi_params; } 启动nginx /usr/nginx/sbin/nginx 重启 /usr/nginx/sbin/nginx -s reload php安装方法 mysql_config 没有的话是因为没有安装mysql-devel (mysql_config 是一个绿色的可执行文件) ./configure --prefix=/data/local/php \ --enable-fpm \ --with-zlib \ --enable-mbstring \ --with-openssl \ --with-mysqli \ --enable-mysqlnd \ --with-mysql-sock \ --with-gd \ --enable-gd-native-ttf \ --enable-pdo \ --with-pdo-mysql \ --with-gettext \ --with-curl \ --enable-sockets \ --enable-bcmath \ --enable-xml \ --with-bz2 \ --enable-zip \ -enable-pcntl make make install 从php的解压包里 cp php.ini-development /usr/php/lib/php.ini 在/usr/php/etc/里 cp /usr/php/etc/php-fpm.conf.default /usr/php/etc/php-fpm.conf date.timezone = “Asia/Shanghai” default_charset = "utf-8" 然后启动nginx,mysql 和/usr/php/sbin/php-fpm ps aux | grep -c php-fpm 查看状态 服务器1 cluster.name: ejiqun node.name: node1 node.rack: r1 #机架号 最好不同 path.data: /elastic_data/data path.logs: /elastic_data/logs network.host: 192.168.1.210 http.port: 9200 transport.tcp.port: 9300 #设置节点之间交互的端口号 discovery.zen.ping.timeout: 120s #设置集群中自动发现其他节点时ping连接的超时时间 discovery.zen.ping.multicast.enabled: true #设置是否打开多播发现节点 discovery.zen.ping.unicast.hosts: ["192.168.1.210:9300", "192.168.1.211:9300"] 服务器2 cluster.name: ejiqun node.name: node2 node.rack: r2 #机架号 最好不同 path.data: /elastic_data/data path.logs: /elastic_data/logs network.host: 192.168.1.211 http.port: 9200 transport.tcp.port: 9300 #设置节点之间交互的端口号 discovery.zen.ping.timeout: 120s #设置集群中自动发现其他节点时ping连接的超时时间 discovery.zen.ping.multicast.enabled: true #设置是否打开多播发现节点 discovery.zen.ping.unicast.hosts: ["192.168.1.210:9300", "192.168.1.211:9300"] 安装jdk 去http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html中下载jdk的安装文件。由于我的Linux是32位的,因此我下载jdk-8u25-linux-i586.tar.gz文件。 新建/usr/java文件夹,将jdk-8u25-linux-i586.tar.gz放到该文件夹中,并将工作目录切换到/usr/java目录下。 执行命令tar -zxvf jdk-8u25-linux-i586.gz 进行解压,解压后发现/usr/java多了一个jdk1.8.0_25文件夹。 通过以上步骤,jdk就已经全部安装完成了。下面,就是环境变量的配置。 配置环境变量 使用vim /etc/profile编辑profile文件 在/etc/profile底部加入如下内容 JAVA_HOME=/usr/java/jdk1.8.0_25 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar export PATH JAVA_HOME CLASSPATH 以上,环境变量配置完成。需要注意的是,PATH在配置的时候,一定要把$JAVA_HOME/bin放在前面,不然使用java命令时,系统会找到以前的java,再不往下找了。这样java这个可执行文件运行的目录其实不在$JAVA_HOME/bin下,而在其它目录下,会造成很大的问题。 还要注意,以前其它教程写的CLASSPATH=$JAVA_HOME/lib.tools.jar,不知道以前的版本是怎么样的,现在的版本是没有这样的jar包的。 最后使用source /etc/profile让profile文件立即生效。 命令测试 使用javac命令,不会出现command not found错误 使用java -version,出现版本为java version "1.8.0_25" echo $JAVA_HOME, echo $CLASSPATH, echo $PATH,看看自己的配置是否都正确。 elasticsearch-jdbc使用 第一步:环境匹配 1)elasticsearch 2.3.3 成功安装部署 2)mysql安装成功,增删改查无误~~。 3)要保证elasticsearch-jdbc的版本要与elasticsearch的版本是一致的(下面的内容会提示下载)。否则会报错,无法进行之后的步骤。 (例如elasticsearch-jdbc-2.3.3.0-dist.zip(对应的你的elaseticsearh-2.3.3) 第二步:下载JDBC工具 选择你需要的版本进行下载。(例如elasticsearch-jdbc-2.3.3.0-dist.zip(对应的你的elaseticsearh-2.3.3) ,下载后缀为dist.zip的即可) 地址: http://xbib.org/repository/org/xbib/elasticsearch/importer/elasticsearch-jdbc/ 解压下载的文件unzip elasticsearch-jdbc-2.3.3.0-dist.zip 解压下载的文件unzip elasticsearch-jdbc-2.3.3.0-dist.zip 创建mysql脚本计划任务 cd /elasticsearch-jdbc-2.3.3.0/bin/ (在bin目录下建立我们的新脚本) vi import_es.sh #!/bin/sh bin=/elasticsearch-jdbc-2.3.3.1/bin lib=/elasticsearch-jdbc-2.3.3.1/lib echo '{ "type" : "jdbc", "jdbc": { "elasticsearch.autodiscover":true, "elasticsearch.cluster":"ejiqun", "url":"jdbc:mysql://10.0.8.7:3306/bo", "user":"caiyun", "password":"bo2016.", "sql":"select email from members", "elasticsearch" : { "host" : "192.168.48.129", "port" : 9300 }, "index" : "test", "type" : "ffcs" } }' | java \ -cp "${lib}/*" \ -Dlog4j.configurationFile=${bin}/log4j2.xml \ org.xbib.tools.Runner \ org.xbib.tools.JDBCImporter 为 import_es.sh 添加可执行权限。 chmod a+x import_es.sh //(a+x 是给所有人加上可执行权限,包括所有者,所属组,和其他人 o+x 只是给其他人加上可执行权限) 执行脚本:./import_es.sh 第五步:检测数据是否新增成功 curl 'localhost:9200/_cat/indices?pretty' //索引是否有新增呢?? curl -XGET 'http://localhost:9200/test/ffcs/_search?pretty' //抓取显示数据 通过各种条件查询 curl 'localhost:9200/test/ffcs/_search?pretty' -d ' { "filter":{"term":{"name":"john"}} }'