当前位置:首页 > PHP教程 > php环境安装 > 列表

Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解

发布:smiling 来源: PHP粉丝网  添加日期:2022-03-28 18:21:51 浏览: 评论:0 

这篇文章主要介绍了Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下.

目录

介绍

安装 Tengine

1. 安装必要的编译环境

2. 安装需要的组件 PCRE

3. 安装Tengine

4. CentOS 7 配置Tengine,设置tengine开机自启

介绍

之前写过 CentOS 安装 PHP,MySQL,Nginx 的相关文章,具体介绍这里就不写了,直接上操作步骤.

安装 Tengine

1. 安装必要的编译环境

yum update

yum install gcc gcc-c++ autoconf automake

2. 安装需要的组件 PCRE

PCRE(Perl Compatible Regular Expressions) http://www.pcre.org 是一个Perl库,包括 perl 兼容的正则表达式库。nginx rewrite依赖于PCRE库,所以在安装Tengine前一定要先安装PCRE,最新版本的PCRE可在官网获取,具体安装流程为:

  1. cd /usr/local/src 
  2. wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz 
  3. tar zxvf pcre-8.43.tar.gz 
  4. cd pcre-8.43 
  5. ./configure --prefix=/usr/local/pcre 
  6. make && make install 
OpenSSL

OpenSSL http://www.openssl.org/source 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用,安装OpenSSL 主要是为了让tengine支持Https的访问请求。具体是否安装看需求,安装流程为:

  1. cd /usr/local/src 
  2. wget http://www.openssl.org/source/openssl-1.0.2s.tar.gz 
  3. tar zxvf openssl-1.0.2s.tar.gz 
  4. cd openssl-1.0.2s 
  5. ./config --prefix=/usr/local/openssl 
  6. make && make install 

Zlib

Zlib http://www.zlib.net 是提供资料压缩之用的函式库,当Tengine想启用GZIP压缩的时候就需要使用到Zli,安装流程为:

  1. cd /usr/local/src 
  2. wget http://zlib.net/zlib-1.2.11.tar.gz 
  3. tar zxvf zlib-1.2.11.tar.gz 
  4. cd zlib-1.2.11 
  5. ./configure --prefix=/usr/local/zlib 
  6. make && make install 

jemalloc

jemalloc http://www.canonware.com/jemalloc 是一个更好的内存管理工具,使用jemalloc可以更好的优化Tengine的内存管理,安装流程为:

  1. cd /usr/local/src 
  2. wget https://src.fedoraproject.org/lookaside/pkgs/jemalloc/jemalloc-5.2.1.tar.bz2/sha512/0bbb77564d767cef0c6fe1b97b705d368ddb360d55596945aea8c3ba5889fbce10479d85ad492c91d987caacdbbdccc706aa3688e321460069f00c05814fae02/jemalloc-5.2.1.tar.bz2 
  3. tar jxvf jemalloc-5.2.1.tar.bz2 
  4. cd jemalloc-5.2.1 
  5. ./configure --prefix=/usr/local/jemalloc 
  6. make && make install 

3. 安装Tengine

在主要核心的组件安装完毕以后就可以安装Tegine了,最新版本的Tegine可从官网 http://tengine.taobao.org 获取。在编译安装前还需要做的一件事是添加一个专门的用户来执行Tengine。当然你也可以用root(不建议)。

添加用户及用户组:

  1. # 添加www组 
  2. groupadd -r www 
  3. # 创建www运行账户nginx并加入到www组,不允许www用户直接登录系统 
  4. useradd -s /sbin/nologin -g www -r www 

编译安装Tengine TODO

  1. cd /usr/local/src 
  2. wget http://tengine.taobao.org/download/tengine-2.2.0.tar.gz 
  3. tar -zxvf tengine-2.2.0.tar.gz 
  4. cd tengine-2.2.0 
  5. ./configure --prefix=/usr/local/nginx \ 
  6. --user=www \ 
  7. --group=www \ 
  8. --with-pcre=/usr/local/src/pcre-8.40 \ 
  9. --with-openssl=/usr/local/src/openssl-1.0.2 \ 
  10. --with-jemalloc=/usr/local/src/jemalloc-3.6.0 \ 
  11. --with-http_gzip_static_module \ 
  12. --with-http_realip_module \ 
  13. --with-http_stub_status_module \ 
  14. --with-http_concat_module \ 
  15. --with-zlib=/usr/local/src/zlib-1.2.11 
  16. make && make install 

注意配置的时候 –with-pcre 、–with-openssl、–with-jemalloc、–with-zlib的路径为源文件的路径。

4. CentOS 7 配置Tengine,设置tengine开机自启

  1. # 系统用户登录系统后启动的服务的目录 
  2. /usr/lib/systemd/system 
  3. # 如需要开机没有登陆情况下就能运行的程序在系统目录内 
  4. /usr/lib/systemd/system 
  5. # 我希望系统开机就启动目录,所以我把文件放在系统目录内。 
  6. vim /lib/systemd/system/nginx.service 
  7.  
  8. [Unit] 
  9. Description=The nginx HTTP and reverse proxy server 
  10. After=syslog.target network.target remote-fs.target nss-lookup.target 
  11.  
  12. [Service] 
  13. Type=forking 
  14. PIDFile=/usr/local/nginx/logs/nginx.pid 
  15. ExecStartPre=/usr/local/nginx/sbin/nginx -t 
  16. ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 
  17. ExecReload=/bin/kill -s HUP $MAINPID 
  18. ExecStop=/bin/kill -s QUIT $MAINPID 
  19. PrivateTmp=true 
  20.  
  21. [Install] 
  22. WantedBy=multi-user.target 
  23.  
  24. # 修改文件权限 
  25. chmod 745 nginx.service 
  26. # 设置为开机启动 
  27. systemctl enable nginx.service 
  28. # 其它命令 
  29. # 启动nginx服务 
  30. systemctl start nginx.service 
  31. # 设置开机自启动 
  32. systemctl enable nginx.service 
  33. # 停止开机自启动 
  34. systemctl disable nginx.service 
  35. # 查看服务当前状态 
  36. systemctl status nginx.service 
  37. # 重新启动服务 
  38. systemctl restart nginx.service 
  39. # 查看所有已启动的服务 
  40. systemctl list-units --type=service 

编辑Tengine操作脚本

vi /etc/rc.d/init.d/nginx #编辑启动文件添加下面内容

  1. ############################################################ 
  2. #!/bin/sh 
  3. # nginx - this script starts and stops the nginx daemon 
  4. # chkconfig: - 85 15 
  5. # description: NGINX is an HTTP(S) server, HTTP(S) reverse \ 
  6. #  proxy and IMAP/POP3 proxy server 
  7. # processname: nginx 
  8. # config: /usr/local/nginx/conf/nginx.conf 
  9. # config: /etc/sysconfig/nginx 
  10. # pidfile: /usr/local/nginx/logs/nginx.pid 
  11.  
  12. # Source function library. 
  13. . /etc/rc.d/init.d/functions 
  14.  
  15. # Source networking configuration. 
  16. . /etc/sysconfig/network 
  17.  
  18. # Check that networking is up. 
  19. "$NETWORKING" = "no" ] && exit 0 
  20.  
  21. nginx="/usr/local/nginx/sbin/nginx" 
  22. prog=$(basename $nginx
  23.  
  24. NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" 
  25.  
  26. [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx 
  27.  
  28. lockfile=/var/lock/subsys/nginx 
  29.  
  30. make_dirs() { 
  31.  # make required directories 
  32.  user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -` 
  33.  if [ -n "$user" ]; then 
  34.  if [ -z "`grep $user /etc/passwd`" ]; then 
  35.   useradd -M -s /bin/nologin $user 
  36.  fi 
  37.  options=`$nginx -V 2>&1 | grep 'configure arguments:'
  38.  for opt in $optionsdo 
  39.   if [ `echo $opt | grep '.*-temp-path'` ]; then 
  40.   value=`echo $opt | cut -d "=" -f 2` 
  41.   if [ ! -d "$value" ]; then 
  42.    # echo "creating" $value 
  43.    mkdir -p $value && chown -R $user $value 
  44.   fi 
  45.   fi 
  46.  done 
  47.  fi 
  48.  
  49. start() { 
  50.  [ -x $nginx ] || exit 5 
  51.  [ -f $NGINX_CONF_FILE ] || exit 6 
  52.  make_dirs 
  53.  echo -n $"Starting $prog: " 
  54.  daemon $nginx -c $NGINX_CONF_FILE 
  55.  retval=$? 
  56.  echo 
  57.  [ $retval -eq 0 ] && touch $lockfile 
  58.  return $retval 
  59.  
  60. stop() { 
  61.  echo -n $"Stopping $prog: " 
  62.  killproc $prog -QUIT 
  63.  retval=$? 
  64.  echo 
  65.  [ $retval -eq 0 ] && rm -f $lockfile 
  66.  return $retval 
  67.  
  68. restart() { 
  69.  configtest || return $? 
  70.  stop 
  71.  sleep 1 
  72.  start 
  73.  
  74. reload() { 
  75.  configtest || return $? 
  76.  echo -n $"Reloading $prog: " 
  77.  killproc $nginx -HUP 
  78.  RETVAL=$? 
  79.  echo 
  80.  
  81. force_reload() { 
  82.  restart 
  83.  
  84. configtest() { 
  85.  $nginx -t -c $NGINX_CONF_FILE 
  86.  
  87. rh_status() { 
  88.  status $prog 
  89.  
  90. rh_status_q() { 
  91.  rh_status >/dev/null 2>&1 
  92.  
  93. case "$1" in 
  94.  start) 
  95.  rh_status_q && exit 0 
  96.  $1 
  97.  ;; 
  98.  stop) 
  99.  rh_status_q || exit 0 
  100.  $1 
  101.  ;; 
  102.  restart|configtest) 
  103.  $1 
  104.  ;; 
  105.  reload) 
  106.  rh_status_q || exit 7 
  107.  $1 
  108.  ;; 
  109.  force-reload) 
  110.  force_reload 
  111.  ;; 
  112.  status) 
  113.  rh_status 
  114.  ;; 
  115.  condrestart|try-restart) 
  116.  rh_status_q || exit 0 
  117.   ;; 
  118.  *) 
  119.  echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" 
  120.  exit 2 
  121. esac 
  122. ############################################################ 

配置权限及开机启动

chmod 745 /etc/rc.d/init.d/nginx # 设置权限

chkconfig nginx on # 开机启动

操作指令

  1. # 开启服务 
  2. /etc/init.d/nginx start 
  3. # 重启服务 
  4. /etc/init.d/nginx restart 
  5. # 停止服务 
  6. /etc/init.d/nginx stop 
  7. # 查看服务状态 
  8. /etc/init.d/nginx status

Tags: php7.3 tengine2.3.2 mysql8.0 redis5

分享到: