CentOS7.5 OneinStack安裝apache,nginx環境(包括PostgreSQL、Kafka、RabbitMQ)

1、準備

# 安裝之前先檢查一下系統是否有默認安裝的`apache`或者`php`
$ rpm -qa|grep httpd
$ rpm -qa|grep php
$ rpm -qa|grep mysql

# 把上面指令列出來的包刪除
$ rpm -e ****(包名)

# 安裝一些必備的包
$ yum -y install gcc gcc-c++ make screen wget net-tools curl python
$ screen -S bt

# 編譯安裝`hiredis`
$ git clone https://github.com/redis/hiredis.git
$ cd hiredis
$ make && make install
$ mkdir /usr/lib/hiredis
$ cp libhiredis.so /usr/lib/hiredis
$ mkdir /usr/include/hiredis
$ cp hiredis.h /usr/include/hiredis
$ echo '/usr/local/lib' >>/etc/ld.so.conf 
$ ldconfig

2、修改CentOS默認yum源爲國內yum鏡像源

  1. 備份/etc/yum.repos.d/CentOS-Base.repo
    $ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    
  2. 下載163yum源配置文件到上面那個文件夾內
    $ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
    
  3. 運行yum makecache生成緩存
    $ yum makecache
    
  4. 更新系統
    $ yum -y update
    

3. 將已經掛載在 home 目錄上的硬盤掛載到 data 目錄上

$ df -h                   #(查看分區情況及數據盤名稱)
$ mkdir /data              #(如果沒有data目錄就創建,否則此步跳過)
$ umount /home            #(卸載硬盤已掛載的home目錄)
$ mount /dev/mapper/centos-home /data    #(掛載到data目錄)
$ vi /etc/fstab           #(編輯fstab文件修改或添加,使重啓後可以自動掛載)
$ mount /dev/mapper/centos-home /data ext3 auto 0 0

4. 交互式安裝 OneinStack

  • 安裝 OneinStack
    $ wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz
    $ tar xzf oneinstack-full.tar.gz
    $ cd oneinstack
    $ screen -S oneinstack 
    # 如果網路出現中斷,可以執行命令`screen -R oneinstack`重新連接安裝窗口
    $ ./install.sh          # 安裝
    $ ./addons.sh           # 添加附加組件
    $ ./vhost.sh            # 添加虛擬主機
    $ ./pureftpd_vhost.sh   # 管理FTP賬號
    $ ./backup_setup.sh     # 備份
    $ ./upgrade.sh          # 更新版本
    $ ./uninstall.sh        # 卸載
    
  • 管理服務
    # webmin
    $ rpm -Uvh https://prdownloads.sourceforge.net/webadmin/webmin-1.881-1.noarch.rpm
    
    # Nginx/Tengine/OpenResty
    $ service nginx {start|stop|status|restart|reload|configtest}
    
    # MySQL/MariaDB/Percona:
    $ service mysqld {start|stop|restart|reload|status}
    
    # PostgreSQL
    $ service postgresql {start|stop|restart|status}
    
    # MongoDB
    $ service mongod {start|stop|status|restart|reload}
    
    # PHP
    $ service php-fpm {start|stop|restart|reload|status}
    
    # HHVM
    $ service supervisord {start|stop|status|restart|reload}
    
    # Apache
    $ service httpd {start|restart|stop}
    
    # Tomcat
    $ service tomcat {start|stop|status|restart}
    
    # Pure-Ftpd
    $ service pureftpd {start|stop|restart|status}
    
    # Redis
    $ service redis-server {start|stop|status|restart}
    
    # Memcached
    $ service memcached {start|stop|status|restart|reload}
    

5. 安裝 Gearman

$ yum install -y uuid-devel libuuid libuuid-devel uuid boost-devel libevent libevent-devel gperf
$ wget https://launchpad.net/gearmand/1.2/1.1.12/+download/gearmand-1.1.12.tar.gz
$ tar zxvf gearmand-1.1.12.tar.gz
$ cd gearmand-1.1.12
$ ./configure --prefix=/usr/local/gearmand
$ make && make install
$ vi /etc/init.d/gearmand
#!/bin/bash  
# chkconfig: - 85 15  
#descrīption: service(/usr/local/gearmand/sbin/gearmand)  
. /etc/rc.d/init.d/functions  
start() {  
   echo -n $"Starting $prog"  
   echo -e " gearman :                                               [確定]"  
   /usr/local/gearmand/sbin/gearmand &  
   sleep 1  
   echo -e "running..."  
}  
stop() {  
   echo -n $"Stopping $prog"  
   echo -e " gearman :                                               [確定]"  
   kill -9 `ps -ef | grep "/usr/local/gearmand/sbin/gearmand" | awk '{print $2}' | awk 'NR==1'`  
   sleep 1  
   echo -e "stoped"  
}  
case "$1" in  
   start)  
      start  
      ;;  
   stop)  
      stop  
      ;;  
   restart)  
      stop  
      start  
      ;;  
   status)  
      ps -ef | grep "/usr/local/gearmand/sbin/gearmand"  
      ;;  
   *)  
      echo $"Usage: $prog {start|stop|restart|status}" >&2  
      exit 1  
      ;;  
esac  
exit 0  
$ chkconfig --add gearmand
$ chkconfig gearmand on
$ chkconfig --list

6. 安裝 PostgreSQL

  1. 安裝
    $ yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
    $ yum install postgresql96 postgresql96-server postgresql96-contrib postgresql96-devel postgresql96-libs
    
  2. 初始化 PostgreSQL 數據庫
    $ mkdir /data/pgsql
    $ chown -R postgres:postgres /data/pgsql
    $ su postgres
    $ /usr/pgsql-9.6/bin/initdb -D /data/pgsql/data
    $ vi /usr/lib/systemd/system/postgresql-9.6.service
    Environment=PGDATA=/data/pgsql/data
    $ systemctl daemon-reload
    $ systemctl enable postgresql-9.6
    $ systemctl start postgresql-9.6
    
  3. 配置默認 postgres 用戶及密碼並創建新的用戶和數據庫
    $ cd data
    $ su postgres
    $ createuser gadfly
    $ createdb gadfly_db
    $ psql
    psql (9.6)
    Type "help" for help.
    Postgres=# 
    postgres=# \password postgres
    Enter new password:
    Enter it again:
    postgres=# CREATE EXTENSION adminpack;
    CREATE EXTENSION
    postgres=# alter user gadfly with encrypted password 'centos';
    ALTER ROLE 
    postgres=# grant all privileges on database gadfly_db to gadfly;
    GRANT
    postgres=# \q
    $ exit
    
  4. 配置 PostgreSQL
    • 配置 PostgreSQL-MD5 認證
      $ vi /data/pgsql/data/pg_hba.conf
      # "local" is for Unix domain socket connections only
      local        all      all                     md5
      # IPv4 local connections:
      host        all      all    192.168.1.0/24    md5
      host        all      all    127.0.0.1/32      md5
      # IPv6 local connections:
      host        all      all    ::1/128           md5
      
    • 配置 PostgreSQL-Configure TCP/IP
      $ vi /data/pgsql/data/postgresql.conf 
      [...]
      listen_addresses = '*’
      [...]
      port = 5432
      [...]
      
  5. 安裝 redis_fdw 外部表插件
    $ git clone -b REL9_6_STABLE https://github.com/pg-redis-fdw/redis_fdw.git
    $ cd redis_fdw
    $ export PATH=/usr/pgsql-9.6//bin:$PATH
    $ make USE_PGXS=1
    $ make USE_PGXS=1 install
    $ su postgres
    bash-4.2$ psql -U postgres -d postgres
    postgres=# create extension redis_fdw;
    CREATE EXTENSION
    postgres=# CREATE SERVER redis_server
    postgres-#     FOREIGN DATA WRAPPER redis_fdw
    postgres-#     OPTIONS (address '127.0.0.1', port '6379');
    CREATE SERVER
    postgres=# CREATE USER MAPPING FOR PUBLIC
    postgres-#     SERVER redis_server
    postgres-#     OPTIONS (password '');
    CREATE USER MAPPING
    

    redis_fdw 詳細的用法介紹
    1. CREATE SERVER 支持的 option(指定地址和端口)
    address: The address or hostname of the Redis server. Default: 127.0.0.1 port: The port number on which the Redis server is listening. Default: 6379
    2. CREATE USER MAPPING 支持的 option (指定密碼)
    password: The password to authenticate to the Redis server with. Default:
    3. CREATE FOREIGN TABLE 支持的 option
    * 指定數據庫ID
    * 表類型(hash,list,set,zsetscalar)
    * key 前綴 key 集合 singleton_key 指定 KEY
    conf database: The numeric ID of the Redis database to query. Default: 0 tabletype: can be 'hash', 'list', 'set' or 'zset' Default: none, meaning only look at scalar values. tablekeyprefix: only get items whose names start with the prefix Default: none tablekeyset: fetch item names from the named set Default: none singleton_key: get all the values in the table from a single named object. Default: none, meaning don't just use a single object.

7. 安裝MySQL 5.7UDF函數

  • CentOS7 系統上安裝 mysql-udf-http
    $ export PKG_CONFIG=/usr/bin/pkg-config
    $ export PKG_CONFIG_PATH=/usr/share/pkgconfig:/usr/lib/pkgconfig
    $ echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf
    $ /sbin/ldconfig
    $ git clone https://github.com/y-ken/mysql-udf-http.git
    $ cd mysql-udf-http
    $ chmod +x ./configure
    $ ./configure --with-mysql=/usr/local/mysql/bin/mysql_config --prefix=/usr --libdir=/usr/local/mysql/lib/plugin
    $ make && make install
    $ cd ../
    
  • CentOS7 系統上安裝 mysql-udf-sys
    $ git clone https://github.com/mysqludf/lib_mysqludf_sys.git
    $ cd lib_mysqludf_sys
    $ gcc -DMYSQL_DYNAMIC_PLUGIN -fPIC -Wall -I/usr/local/mysql/include -I. -shared lib_mysqludf_sys.c -o lib_mysqludf_sys.so
    $ cp lib_mysqludf_sys.so /usr/local/mysql/lib/plugin
    
  • CentOS7 系統上安裝 gearman-mysql-udf
    $ wget https://launchpad.net/gearman-mysql-udf/trunk/0.6/+download/gearman-mysql-udf-0.6.tar.gz
    $ tar xf gearman-mysql-udf-0.6.tar.gz -C ./  
    $ cd gearman-mysql-udf-0.6  
    $ ./configure --with-mysql=/usr/local/mysql/bin/mysql_config --libdir=/usr/local/mysql/lib/plugin 
    $ make && make install
    
  • 創建 MySQL 自定義函數
    mysql> DROP FUNCTION IF EXISTS http_get; 
    mysql> DROP FUNCTION IF EXISTS http_post; 
    mysql> DROP FUNCTION IF EXISTS http_put; 
    mysql> DROP FUNCTION IF EXISTS http_delete; 
    mysql> create function http_get returns string soname 'mysql-udf-http.so';
    mysql> create function http_post returns string soname 'mysql-udf-http.so'; 
    mysql> create function http_put returns string soname 'mysql-udf-http.so'; 
    mysql> create function http_delete returns string soname 'mysql-udf-http.so';
    mysql> DROP FUNCTION IF EXISTS lib_mysqludf_sys_info; 
    mysql> DROP FUNCTION IF EXISTS lib_mysqludf_sys_info;
    mysql> DROP FUNCTION IF EXISTS sys_set;
    mysql> DROP FUNCTION IF EXISTS sys_exec;
    mysql> DROP FUNCTION IF EXISTS sys_eval;
    mysql> CREATE FUNCTION lib_mysqludf_sys_info RETURNS string SONAME 'lib_mysqludf_sys.so';
    mysql> CREATE FUNCTION sys_get RETURNS string SONAME 'lib_mysqludf_sys.so';
    mysql> CREATE FUNCTION sys_set RETURNS int SONAME 'lib_mysqludf_sys.so';
    mysql> CREATE FUNCTION sys_exec RETURNS int SONAME 'lib_mysqludf_sys.so';
    mysql> CREATE FUNCTION sys_eval RETURNS string SONAME 'lib_mysqludf_sys.so';
    mysql> DROP FUNCTION IF EXISTS gman_do_background;
    mysql> DROP FUNCTION IF EXISTS gman_servers_set;
    mysql> CREATE FUNCTION gman_do_background RETURNS STRING SONAME 'libgearman_mysql_udf.so';
    mysql> CREATE FUNCTION gman_servers_set RETURNS STRING SONAME 'libgearman_mysql_udf.so';
    

8. 安裝RabbitMQ

  1. 安裝Erlang

    $ rpm --import https://packages.erlang-solutions.com/rpm/erlang_solutions.asc
    $ rpm -Uvh https://bintray.com/rabbitmq/rpm/download_file?file_path=erlang%2F21%2Fel%2F7%2Fx86_64%2Ferlang-21.0.2-1.el7.centos.x86_64.rpm
    
  2. 安裝RabbitMQ

    $ rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
    $ wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.7/rabbitmq-server-3.7.7-1.el7.noarch.rpm
    $ yum install rabbitmq-server-3.7.7-1.el7.noarch.rpm
    
  3. 關於RabbitMQ的一些基本操作

    $ chkconfig rabbitmq-server on  # 添加開機啓動RabbitMQ服務
    $ service rabbitmq-server start # 啓動服務
    $ service rabbitmq-server status  # 查看服務狀態
    $ service rabbitmq-server stop   # 停止服務
    
    # 查看當前所有用戶
    $ rabbitmqctl list_users
    
    # 查看默認guest用戶的權限
    $ rabbitmqctl list_user_permissions guest
    
    # 由於RabbitMQ默認的賬號用戶名和密碼都是guest。爲了安全起見, 先刪掉默認用戶
    $ rabbitmqctl delete_user guest
    
    # 添加新用戶
    $ rabbitmqctl add_user username password
    
    # 設置用戶tag
    $ rabbitmqctl set_user_tags username administrator
    
    # 賦予用戶默認vhost的全部操作權限
    $ rabbitmqctl set_permissions -p / username ".*" ".*" ".*"
    
    # 查看用戶的權限
    $ rabbitmqctl list_user_permissions username
    
  4. 查看RabbitMQ日誌

    • 日誌中給出了 rabbitmq 啓動的重要信息,如 node 名,$home 目錄,cookie hash 值,日誌文件,數據存儲目錄等;
    • 給出的信息會指出無配置文件(如下圖),默認安裝沒有此文件
      $ cat /var/log/rabbitmq/[email protected]
      
  5. 開啓web管理接口

    通過瀏覽器訪問 http://localhost:15672
    shell $ rabbitmq-plugins enable rabbitmq_management

  6. rabbitmq.conf

    • 手工建目錄,將配置樣例文件拷貝到配置目錄並改名
      $ mkdir -p /etc/rabbitmq
      $ cp /usr/share/doc/rabbitmq-server-3.6.10/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
      
    • 配置重啓生效
      $ systemctl restart rabbitmq-server
      

    另外還可以建環境配置文件:/etc/rabbitmq/rabbitmq-env.conf

  7. 設置iptables

    • tcp4369 端口用於集羣鄰居發現;
    • tcp56715672 端口用於 AMQP 0.9.1 and 1.0 clients 使用;
    • tcp15672 端口用於 http apirabbitadmin 訪問,後者僅限在 management plugin 開啓時;
    • tcp25672 端口用於 erlang 分佈式節點/工具通信
    $ vi /etc/sysconfig/iptables
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 4369 -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 5671 -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 5672 -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 15672 -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 25672 -j ACCEPT
    $ service iptables restart
    

9、安裝 kafka

  1. 安裝 JDK

    $ yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel java-1.8.0-openjdk-javadoc
    $ vi  /etc/profile
    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin
    $ source /etc/profile     #使配置文件立即生效
    
  2. 安裝 zookeeper

    $ cd /www/software
    $ wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
    $ tar -zxvf zookeeper-3.4.9.tar.gz
    $ mv /www/software/zookeeper-3.4.9 /www/server/zookeeper
    $ vi /etc/profile
    export ZOOKEEPER_HOME=/www/server/zookeeper
    export PATH=$ZOOKEEPER_HOME/bin:$PATH
    export PATH
    $ source /etc/profile
    $ cd /www/server/zookeeper/conf
    $ cp zoo_sample.cfg zoo.cfg
    $ vi /www/server/zookeeper/conf/zoo.cfg
    # zookeeper 定義的基準時間間隔,單位:毫秒
    tickTime=2000
    # 數據文件夾
    dataDir=/www/server/zookeeper/data
    # 日誌文件夾
    dataLogDir=/www/server/zookeeper/logs
    # 客戶端訪問 zookeeper 的端口號
    clientPort=2181
    $ /www/server/zookeeper/bin/zkServer.sh start 
    ZooKeeper JMX enabled by default
    Using config: /www/server/zookeeper/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    
    # 安裝 `zookeeper c client`
    $ cd /www/server/zookeeper/src/c
    $ ./configure
    $ make && make install
    
  3. 安裝 kafka

    $ cd /www/software
    $ wget https://archive.apache.org/dist/kafka/1.1.0/kafka_2.12-1.1.0.tgz
    $ tar -xzvf kafka_2.12-1.1.0.tgz
    $ mv /www/software/kafka_2.12-1.1.0 /www/server/kafka
    
    • 配置 kafka,修改 server.properties

      $ mkdir /www/wwwlogs/kafka                #創建kafka日誌目錄
      $ cd /www/server/kafka/config             #進入配置目錄
      $ vi server.properties                    #編輯修改相應的參數
      broker.id=0
      port=9092                                 #端口號
      host.name=192.168.137.254                 #服務器IP地址,修改爲自己的服務器IP
      log.dirs=/www/wwwlogs/kafka               #日誌存放路徑,上面創建的目錄
      zookeeper.connect=localhost:2181    #zookeeper地址和端口,單機配置部署,localhost:2181
      
    • 配置 kafka 下的 zookeeper

      $ mkdir /www/server/zookeeper        #創建zookeeper目錄
      $ mkdir /www/wwwlogs/zookeeper    #創建zookeeper日誌目錄
      $ cd /www/server/kafka/config              #進入配置目錄
      $ vi zookeeper.properties                 #編輯修改相應的參數 
      dataDir=/www/server/kafka/zookeeper        #zookeeper數據目錄 
      dataLogDir=/www/server/kafka/log/zookeeper #zookeeper日誌目錄 
      clientPort=2181 
      maxClientCnxns=100 
      tickTime=2000 
      initLimit=10
      
    • 創建啓動 kafka 腳本

      $ vi kafkastart.sh
      #!/bin/bash
      #啓動zookeeper
      /www/server/kafka/bin/zookeeper-server-start.sh /www/server/kafka/config/zookeeper.properties &
      sleep 3 #等3秒後執行
      #啓動kafka
      /www/server/kafka/bin/kafka-server-start.sh /www/server/kafka/config/server.properties &
      
    • 創建關閉 kafka 腳本

      $ vi kafkastop.sh
      #!/bin/bash
      #關閉zookeeper
      /www/server/kafka/bin/zookeeper-server-stop.sh /www/server/kafka/config/zookeeper.properties &
      sleep 3 #等3秒後執行
      $ /www/server/kafka/bin/kafka-server-stop.sh /www/server/kafka/config/server.properties &
      
    • 添加腳本執行權限

      $ chmod +x kafkastart.sh
      $ chmod +x kafkastop.sh
      
    • 設置腳本開機自動執行

      $ vi /etc/rc.d/rc.local                 # 編輯,在最後添加一行
      $ sh /www/server/kafka/kafkastart.sh &   # 設置開機自動在後臺運行腳本
      $ sh /www/server/kafka/kafkastart.sh     # 啓動kafka
      $ sh /www/server/kafka/kafkastop.sh      # 關閉kafka
      
  4. 測試 kafka

    • 步驟1:啓動 zookeeper
      $ /www/server/zookeeper/bin/zkServer.sh start
      JMX enabled by default
      Using config: /home/laoyang/zookeeper/bin/../conf/zoo.cfg
      grep: /home/laoyang/zookeeper/bin/../conf/zoo.cfg: No such file or directory
      Starting zookeeper ... STARTED
      
    • 步驟2:啓動 kafka
      $ ./kafkastart.sh
      
    • 步驟3:測試創建 topic
      $ cd /www/server/kafka/bin 
      $ ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
      
    • 步驟4:通過 list命令查看創建的 topic
      $ cd /www/server/kafka/bin
      $ ./kafka-topics.sh –list –zookeeper localhost:2181
      
    • 步驟5:生產消息測試
      $ ./kafka-console-producer.sh --broker-list localhost:9092 --topic test 
      laoyang I love you! 
      
    • 步驟6:消費消息測試
      $ ./kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
      I'm laoyang #之前測試輸入的內容
      laoyang I love you!
      

    經過以上6步,代表kafka安裝成功。

    • 停止 kafka
      • 步驟1:停止 Kafka
        $ cd /usr/local/kafka
        $ ./kafkastop.sh
        
      • 步驟2:停止 Zookeeper server
        $ /www/server/zookeeper/bin/zkServer.sh stop
        

10. 爲 PHP 添加擴展

  1. 添加 PostgreSQL 擴展
    $ cd ~/oneinstack/src
    $ tar zxvf php-7.2.6.tar.gz
    $ cd php-7.2.6/ext/pgsql
    $ /usr/local/php/bin/phpize
    $ ./configure --with-php-config=/usr/local/php/bin/php-config --with-pgsql=/usr/pgsql-9.6
    $ make && make install
    
  2. 添加 PDO-PostgreSQL 擴展
    $ cd ~/oneinstack/src/php-7.2.6/ext/pdo_pgsql
    $ /usr/local/php/bin/phpize
    $ ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-pgsql=/usr/pgsql-9.6
    $ make && make install
    
  3. 添加 Gearman 擴展
    $ git clone https://github.com/wcgallego/pecl-gearman.git
    $ cd pecl-gearman
    $ /usr/local/php/bin/phpize
    $ ./configure --with-php-config=/usr/local/php/bin/php-config --with-gearman=/usr/local/gearmand/
    $ make && make install
    
  4. 添加rabbitmq擴展
    1. 安裝rabbitmq-c
      $ yum install libtool autoconf
      $ wget https://github.com/alanxz/rabbitmq-c/archive/v0.9.0.tar.gz
      $ tar zxvf v0.9.0.tar.gz
      $ cd rabbitmq-c-0.9.0/
      $ autoreconf -i
      #這一步是在rabbitmq-c的根目錄下創建一個build子目錄
      $ mkdir build && cd build
      
      # 這一步是讓cmake根據../CMakeList.txt,即rabbitmq-c的根目錄下的CMakeList.txt創建Makefile文件
      # Makefile文件會被創建到build目錄中
      $ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c ..
      
      # 這一步是真正的build rabbitmq-c庫的,注意,不要漏掉點 ‘.‘
      $ cmake --build . --target install
      $ ln -s /usr/local/rabbitmq-c/lib64 /usr/local/rabbitmq-c/lib
      
    2. 安裝amqp擴展
      $ wget http://pecl.php.net/get/amqp-1.9.3.tgz
      $ tar zxvf amqp-1.9.3.tgz
      $ cd amqp-1.9.3
      $ phpize
      $ ./configure --with-php-config=/usr/local/php/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c
      $ make
      $ make install
      
  5. PHP 添加 zookeeper 擴展
    • PHP 添加 libzookeeper 擴展
      $ git clone https://github.com/Timandes/libzookeeper.git
      $ cd libzookeeper
      $ /www/server/php/72/bin/phpize
      $ ./configure --with-php-config=/www/server/php/72/bin/php-config --with-libzookeeper=/usr/local/bin/cli_mt
      $ make && make install
      
    • PHP 添加 zookeeper 擴展
      $ git clone -b php7 https://github.com/jbboehr/php-zookeeper.git
      $ cd /www/server/php-zookeeper
      $ /www/server/php/72/bin/phpize
      $ ./configure --with-php-config=/www/server/php/72/bin/php-config
      $ make && make install
      
  6. 配置 PHP 支持自定義擴展
    $ vi /usr/local/php/etc/php.d/90-pgsql.ini
    extension=pgsql.so
    extension=pdo_pgsql.so
    extension=gearman.so
    extension=amqp.so
    $ service httpd restart
    

11. Composer安裝和使用

  1. 安裝 Composer
    # 下載composer.phar 
    $ wget https://dl.laravel-china.org/composer.phar -O /usr/local/bin/composer
    
    # 把composer.phar移動到環境下讓其變成可執行 
    $ chmod a+x /usr/local/bin/composer
    $ composer config -g repo.packagist composer https://packagist.phpcomposer.com
    
    # 測試
    $ composer -V 
    
  2. 使用 Composer 安裝 ThinkPHP 5.1
    $ composer create-project topthink/think thinkphp5.1 --prefer-dist
    $ cd thinkphp5.1
    $ composer require topthink/think-swoole
    $ composer require flc/alidayu
    $ composer require topthink/think-helper
    $ composer require topthink/think-image
    $ composer require topthink/think-captcha
    $ composer require nmred/kafka-php
    $ composer require adodb/adodb-php
    $ composer require phpoffice/phpspreadsheet
    $ composer require phpoffice/phpexcel
    $ composer require phpoffice/phpword
    $ composer require tecnickcom/tcpdf
    $ composer require mpdf/mpdf
    $ composer require gmars/tp5-qiniu
    $ composer require apache/log4php
    $ composer require ccampbell/chromephp
    $ composer require php-amqplib/php-amqplib
    

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章