问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在Ubuntu 16.04上使用Nginx的OpenResty Web框架

发布网友 发布时间:2022-04-20 15:11

我来回答

2个回答

懂视网 时间:2022-05-02 04:41

前期准备(最小化安装的系统)

    1.更新系统

    yum makecache && yum -y update

    2.安装常用基础软件

    yum -y install bash-completion vim net-tools bind-utilswget screen

    最后别忘了重启

 

2、  更新yum源(阿里云源:mirrors.aliyun.com)

[root@localhost~]# mv /etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backup

[root@localhost~]# ls /etc/yum.repos.d/

CentOS-Base.repo.backup  CentOS-fasttrack.repo  CentOS-Vault.repo

CentOS-CR.repo          CentOS-Media.repo

CentOS-Debuginfo.repo   CentOS-Sources.repo

先关闭fastestmirror

[root@localhostyum.repos.d]# vi /etc/yum/pluginconf.d/fastestmirror.conf  (enabled=0)

[root@localhost yum.repos.d]# wget -O/etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

[root@localhost yum.repos.d]# yumclean all

[root@localhost yum.repos.d]# yum makecache


3、  安装mariadb

    1.添加mariadb yum资源库

    vi /etc/yum.repos.d/MariaDB.repo

    [mariadb]

    name= MariaDB

    baseurl= http://yum.mariadb.org/10.1/centos7-amd64

    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

    gpgcheck=1

    2.可以使用yum search MariaDB 查看安装包,官方给出的只要安装server和client就行,其他的根据 

      自己的需要来

    yum install MariaDB-server MariaDB-client

    注意:虽然说是只需添加系统服务,并启动数据库就完事了,但我也有几次还是报错(个人建议使

          用我以下的步骤)

    [root@localhost ~]# yum search mariadb


    这时会出现好多的软件,你只需用yum安装即可

[root@localhost ~]# yum -y install MariaDB-backupMariaDB-client MariaDB-common MariaDB-compat MariaDB-connect-engineMariaDB-cracklib-password-check MariaDB-devel MariaDB-gssapi-clientMariaDB-gssapi-server MariaDB-oqgraph-engine MariaDB-server  MariaDB-shared MariaDB-test mariadb-benchmariadb-devel mariadb-embedded mariadb-embedded-devel mariadb-libs mariadb

    网上也有帖子说是要初始化一下,我也试了,无非就是设置数据库的一些配置,像是否删除测试数据库,是否禁止远程登录数据库,是否删除用命用户什么的,后面可以跟配置项—defaults-file、--datadir、--user等,感觉没多大卵用(废话有点多,回到原题)

    [root@localhost my.cnf.d]# mysql_secure_installation


    3.加入系统服务

      [root@localhost ~]# systemctl enable mariadb

      [root@localhost ~]# systemctl start mariadb.service

      [root@localhost ~]# systemctl stop mariadb.service


       提醒:通过yum装很多东西都是默认的,不像源码编译或者自己DOWN安装包可以各种指定,列

     一些比较重要的路径出来

    yum 安装会自动创建mysql 用户和用户组

    Yum安装会自动创建 /etc/my.cnf 以及/etc/my.cnf.d 文件架(并存放 server.conf    client.conf  tokudb.conf 等文件)

    默认rpm路径

basedir =/usr/bin

datadir=/var/lib/mysql

.h=/usr/include/mysql

plung=/usr/lib64/mysql

share=/usr/share/mysql(confcharset etc)

 

4、  安装PHP7  

1.先看下yum源

 [root@localhost ~]# ls /etc/yum.repos.d/

    back webtatic-archive.repo webtatic.repo webtatic-testing.repo

    [root@localhost ~]# ls /etc/yum.repos.d/back/ 

   #在/etc/yum.repo.d/目录下,只留webstaic开头的,其他的都放到back目录里【建一个目录back】


CentOS7-Base-163.repo     CentOS-CR.repo         CentOS-Media.repo    epel.repo

CentOS-Base.repo.backup   CentOS-Debuginfo.repo  CentOS-Sources.repo  epel-testing.repo   CentOS-Base.repo.backup1  CentOS-fasttrack.repo  CentOS-Vault.repo

    2.删除之前的PHP版本

    [root@localhost ~]#yum remove php* php-common


    3.rpm 安装Php7 相应的 yum源:

    [root@localhost ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

    

    4.直接yum安装php7:

    [root@localhost ~]# yum install php70w


    5.记得手动装一下php-fpm

    [root@localhost ~]#yum –y  install php-fpm

    [root@localhost ~]# ls /etc/php

    php.d/    php-fpm.conf  php-fpm.d/    php.ini      php-zts.d/

    6.看下PHP的版本:

    [root@localhost~]# php -v

    PHP 7.0.18 (cli) (built: Apr 15 2017 07:09:11) ( NTS )

    Copyright (c) 1997-2017 The PHP Group

    Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies

    注意:

        1、php.ini是php运行核心配置文件:

        2、php-fpm.conf是 php-fpm 进程服务的配置文件:

        3、配置www.conf(在php-fpm.d目录下)

           www.conf这是 php-fpm 进程服务的扩展配置文件:

           php服务的一些文件路径在/

    

5、  安装openresty  (编译安装)

    1.依赖关系

    openresty依赖于perl5.6.1+, libreadline, libpcre, libssl,首先安装依赖关系。

    [root@localhost ~]# yum  –y  install   perl 5.6.1+  libreadline libpcre  libssl

    [root@localhost~]# yum  -y  install readline-devel  pcre-devel  openssl-devel  gcc


    2下载源码

    https://openresty.org/download/openresty-1.11.2.3.tar.gz(17年4月份)

    https://openresty.org/download/openresty-1.11.2.2.tar.gz  (16年11月)

    使用wget下载(可以登录http://openresty.org查看最新版本)

    [root@localhost~]# wget https://openresty.org/download/openresty-1.11.2.3.tar.gz


    3.解压下载好的压缩包

    [root@localhost ~]# tar zxf openresty-1.11.2.3.tar.gz


    4.配置./configure

   [root@localhost openresty-1.11.2.3]# cd openresty-1.11.2.3/

   [root@localhost openresty-1.11.2.3]# ./configure  --prefix=/opt/openresty  --with-luajit


默认, –prefix=/usr/local/openresty程序会被安装到/usr/local/openresty目录。


我们可以指定各种选项,比如

./configure --prefix=/opt/openresty

            --with-luajit

            --without-http_redis2_module

            --with-http_iconv_module

            --with-http_postgres_module

具体用法参考./configure–help 或者官方文档


 5. 编译、安装

[root@localhostopenresty-1.11.2.3]# gmake && gmake install


6.将nginx添加到系统变量

PATH=/opt/openresty/nginx/sbin:$PATH

export PATH         或者


[root@localhost openresty-1.11.2.3]# echo

"export PATH=$PATH:/opt/openresty/nginx/sbin/" >>/etc/profile && source /etc/profile


7.默认项目路径

/opt/openresty/nginx/html


  8.启动、关闭、重启nginx

nginx -c /opt/openresty/nginx/conf/nginx.conf   //启动并加载配置文件

nginx  -s stop    //停止

nginx  -s reload    //重启

  9.给nginx做语法检测

[root@localhost openresty-1.11.2.3]# nginx -t

nginx: the configuration file/opt/openresty/nginx/conf/nginx.conf syntax is ok

nginx: configuration file/opt/openresty/nginx/conf/nginx.conf test is successful

启动nginx服务

[root@localhost openresty-1.11.2.3]# nginx

给80端口设置防火墙规则:

[root@localhost openresty-1.11.2.3]# cd

[root@localhost ~]# firewall-cmd--add-port=80/tcp --permanent

success

[root@localhost ~]# firewall-cmd –reload

Success

 

6、用include指令实现nginx多虚拟主机配置  (nginx文件设置)

  1.创建nginx账户和组

    [root@localhost~]# groupadd  www-data

    [root@localhost~]# useradd  -g  www-data  www-data

        

2.配置nginx.conf文件:   内容如下(程序代码)

user  www-data;

worker_processes  1;

 

error_log/opt/openresty/nginx/logs/error.log crit;

pid       /opt/openresty/nginx/logs/nginx.pid;

 

 

events {

#使用的网络I/)模型,Linux系统推荐采用epoll模型,FreeBSD系统推荐采用kqueue模型

        use epoll;

        worker_connections  1024;

}

 

 

http {

        include     /opt/openresty/nginx/conf/mime.types;

        default_type  application/octet-stream;

        charset utf-8;

 

        server_names_hash_bucket_size 128;

        client_header_buffer_size 32k;

        large_client_header_buffers 4 32k;

        keepalive_timeout 60;

        fastcgi_connect_timeout 300;

        fastcgi_send_timeout 300;

        fastcgi_read_timeout 300;

        fastcgi_buffer_size 128k;

        fastcgi_buffers 4 128k;

        fastcgi_busy_buffers_size 128k;

        fastcgi_temp_file_write_size 128k;

        client_body_temp_path/opt/openresty/nginx/client_body_temp;

        proxy_temp_path/opt/openresty/nginx/proxy_temp;

        fastcgi_temp_path/opt/openresty/nginx/fastcgi_temp;

        gzip on;

        gzip_min_length  1k;

        gzip_buffers     4 16k;

        gzip_http_version 1.0;

        gzip_comp_level 2;

        gzip_types       text/plain application/x-javascripttext/css application/xml;

        gzip_vary on;

        client_header_timeout  10;

        client_body_timeout    10;

        send_timeout          10;

        sendfile                on;

        tcp_nopush              on;

        tcp_nodelay            on;

 

        #virtual host

 

 

        include      /host/nginx/conf/vhost/www_test_com.conf;

        include      /host/nginx/conf/vhost/www_test1_com.conf;

        include      /host/nginx/conf/vhost/www_test2_com.conf;

#也可以使用 include /host/nginx/conf/vhost/*.conf 来代替的,这里支持通配符.

 

###################################################partingline########################################################

 

 

    # another virtual host using mix of IP-,name-, and port-based configuration

    #

    #server {

    #   listen       8000;

    #   listen       somename:8080;

    #   server_name  somename  alias another.alias;

 

    #   location / {

    #       root   html;

    #       index  index.html index.htm;

    #   }

    #}

 

    # HTTPS server

    #

    #server {

    #   listen       443 ssl;

    #   server_name  localhost;

 

    #   ssl_certificate      cert.pem;

    #   ssl_certificate_key  cert.key;

 

    #   ssl_session_cache   shared:SSL:1m;

    #   ssl_session_timeout  5m;

 

    #   ssl_ciphers  HIGH:!aNULL:!MD5;

    #   ssl_prefer_server_ciphers  on;

 

    #   location / {

    #       root   html;

    #       index  index.html index.htm;

    #   }

    #}

 

}

 

    3.在conf目录下创建虚拟主机配置文件目录vhost,在vhost目录下分别根据域名建立相应的

        www_test_com.conf,www_test1_com.conf,www_test2_com.conf3个文件.


##我把虚拟主机配置文件放在了这个目录下,只不过需要先手动创建目录和.conf文件

[root@www test]#ls /host/nginx/conf/vhost/   

www_test1_com.conf  www_test2_com.conf  www_test_com.conf

 

www_test_com.conf配置代码:

vi /host/nginx/conf/vhost/www_test_com.conf

 

server {

       listen    80;   ###换成自个的IP地址(我是基于域名的虚拟主机,所以是相同IP不同端口。

       client_max_body_size 100M;

       server_name  www.test.com;          ###换成自个要用的域名

       charset utf-8;                      ###字符集:utf-8

       root   /var/www/test/;              ###站点路径——存放网页的目录

       index   index.php index.html index.htm;                                                                                ###追加index.php让nginx服务器默认支持index.php为首页:

       autoindex       on;

       access_log   /host/nginx/logs/test/test.access.log;

       error_log   /host/nginx/logs/test/test.error.log;

       

       if (-d $request_filename) {

       rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;

       }

       error_page  404              /404.html;

       location = /40x.html {

       root  /var/www/test/;       #你的站点路径

       charset    on;

       }

       # redirect server error pages to the static page /50x.html

       #

       error_page   500 502 503 504  /50x.html;

       location = /50x.html {

           root   /var/www/test/;         ###自个的站点路径——网页存放路径

           charset     on;

       }

       #将客户端请求装交给fastcgi,老大要求用fpm模块(修改)

       location ~ .php$ {

           root          /var/www/test/;

           fastcgi_pass   127.0.0.1:9000;

           fastcgi_index  index.php;

           fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

           include        fastcgi_params;

       }

        注意:配置.php请求被传送到后端的php-fpm模块,默认情况下php配置块是被注释的,此时去

              掉注释并修改,这里面很多都是默认的,root是配置php程序放置的根目录,主要修改

              的就是fastcgi_param中的/scripts为$document_root

        例如:fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

 

                   location~ .*.(php|php5|php4|shtml|xhtml|phtml)?$ {

                fastcgi_pass   127.0.0.1:9000;

                          include /opt/openresty/nginx/conf/fastcgi_params;

                }

                   #网站的图片较多,更改较少,将它们在浏览器本地缓存15天

       location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ {

                expires      15d;

                }

                   #网站会加载很多JS、CSS,将它们在浏览器本地缓存1天

       location ~ .*.(js|css)?$ {

                expires      1d;

                }

       location /(WEB-INF)/ {

                deny all;

                }

}

 

注意:www_test1_com.conf配置代码和www_test2_com.conf配置代码跟www_test_com.conf(除了

和网页存放路径不一样外)一样。

    4.创建/var/www/test,/var/www/test1,/var/www/test2这三个目录,并在这三个目录下分别创建

    index.php

    [root@www ~]# ls /var/www/test

 test/  test1/ test2/

 [root@www ~]# vi/var/www/test/index.php

 <?php

 phpinfo();

 ?>

其他两个测试文件(注意目录)一样。


7、php文件配置:

  1.php-fpm.conf配置文件

[root@www~]# vi /etc/php-fpm.conf

在[global]配置项下,把pid = /var/run/php-fpm/php-fpm.pid前的分号注释去掉,还有就是include=/etc/php-fpm.d/*.conf这一项,设置配置文件路径


2.php-fpm.d/www.conf配置文件

[root@www~]# vi /etc/php-fpm.d/www.conf

在[www]配置项下有user = ,group= 两配置项,都改了

user= www-data

group= www-data

 

8、检查nginx配置是否有错

nginx       -t

启动Nginx服务

[root@localhost~]# Nginx    ##nginx启动命令

启动PHP服务

[root@localhost~]# php-fpm    ##PHP启动命令

启动mariadb服务

[root@localhost~]# systemctl enable mariadb


9、配置防火墙规则:

    [root@www~]# firewall-cmd --add-port=80/tcp –permanent    #nginx:80

    [root@www~]# firewall-cmd --add-port=3306/tcp –permanent  #mariadb:3306

    [root@www~]# firewall-cmd --add-port=3306/tcp –permanent #PHP:9000

    [root@www~]# firewall-cmd –reload

10、在windows系统中C:WINDOWSsystem32driversetc下的hosts文件中做域名映射

技术分享

11、可以查看访问了

技术分享

本文出自 “12082502” 博客,请务必保留此出处http://12092502.blog.51cto.com/12082502/1929825

用yum源配合源码包安装openresty、mariadb、php7服务

标签:软件   update   screen   阿里云   

热心网友 时间:2022-05-02 01:49

第1步 - 下载OpenResty的源代码和依赖关系

在本节中,我们将从源代码安装OpenResty。首先,从OpenResty网站的下载页面找到最新的OpenResty源代码版本。下载tarball,确保如果更改了版本号,请使用最新版本号。

wget https://openresty.org/download/openresty-1.11.2.2.tar.gz下载PGP密钥文件,以便我们可以验证文件的内容。

wget https://openresty.org/download/openresty-1.11.2.2.tar.gz.asc接下来,我们需要添加作者的公共密钥,如下载页面上所列。在撰写本文时,这是公钥A0E98066 。但是,请检查它是否已更改;它被列在同一下载页面上。

gpg --keyserver pgpkeys.mit.e --recv-key A0E98066

第2步 - 安装OpenResty

我们将配置OpenResty与PCRE正则表达式和IPv6支持。我们还将通过提供-j2标志来并行化构建过程的一部分,这将告诉make 2个作业可以同时运行。此命令将主要测试所有依赖项是否可用于您的系统,并收集将由构建步骤稍后使用的信息。它也已经构建了一些依赖项,如LuaJIT。./configure -j2 --with-pcre-jit --with-ipv6然后,您可以通过提供-j2并行度标志来构建OpenResty。这将编译OpenResty本身。make -j2最后,您可以安装OpenResty。使用sudo确保所有文件可以复制到系统上的正确位置,以便OpenResty可以在运行时找到它们。sudo make install您需要在防火墙中允许HTTP连接才能使Web服务器正常工作。sudo ufw allow http您也可以选择允许HTTPS与sudo ufw allow https如果你要使用它。您可以通过检查防火墙的状态来验证防火墙的更改。sudo ufw status您应该看到显示的输出中允许HTTP流量(端口80 ),以及如果您添加它的HTTPS(端口443 )。

您现在可以检查安装是否有效。首先,启动OpenResty。sudo /usr/local/openresty/bin/openresty如果命令成功,它将立即完成而不输出文本。在这种情况下,您可以在浏览器中访问http:// your_server_ip 。 你会看到一个页面,说欢迎来到OpenResty!确认它已完全安装和工作。您现在可以停止OpenResty服务器。sudo /usr/local/openresty/bin/openresty -s quitOpenResty已安装,但您仍需要配置OpenResty在启动时运行,所以服务器不必手动启动。

第3步 - 将OpenResty设置为服务

在这里,我们将OpenResty设置为一个服务,所以它在启动时自动启动。我们将使用systemd init服务。 您可以阅读此systemd基础教程了解更多信息,以及本单元文件教程 ,了解单元文件的具体信息。首先使用nano或您喜欢的文本编辑器创建一个新的systemd文件。sudo nano /etc/systemd/system/openresty.service对于本教程,我们将从全新安装中复制默认的Nginx systemd文件,并针对OpenResty进行修改。

第4步 - 配置OpenResty

要配置OpenResty,我们使用默认的Nginx配置作为参考,以便它大部分匹配你可能会熟悉的。 首先,再次打开OpenResty配置文件: sudo nano /usr/local/openresty/nginx/conf/nginx.conf这一次,我们将修改http块并将此http块中的server块移动到一个新文件以具有更好的结构。 首先,找到http {行,并删除之后的一切,除了最后一行与对应的} 。

当前/usr/local/openresty/nginx/conf/nginx.conf

user www-data;worker_processes  auto;pid /run/openresty.pid;events {worker_connections  1024;}http {include       mime.types;default_type  application/octet-stream;. . .}然后,将以下内容复制到http块中,以便整个文件看起来像这样。我们将一次过一个更改。

/usr/local/openresty/nginx/conf/nginx.conf

user www-data;worker_processes  auto;pid /run/openresty.pid;events {worker_connections  1024;}http {include       mime.types;default_type  application/octet-stream;sendfile        on;tcp_nopush      on;tcp_nodelay     on;keepalive_timeout  65;ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLEssl_prefer_server_ciphers on;access_log /var/log/openresty/access.log;error_log /var/log/openresty/error.log;gzip  on;gzip_disable "msie6";include ../sites/*;}保存并关闭文件。 我们对默认文件所做的更改是:

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
老师侮辱学生是否犯法 开启河南航拍新篇章 河南省航拍协会第一次会员代表大会召开 我想问下poscer m-3032款型手表售价是多少??? wp6m是啥意思 看图软件哪个好哪个看图软件好 5款强大到离谱电脑软件,都是效率神器!从此远离加班 在武汉买一套房大概要多少钱 武汉华润翡翠城的优缺点 k12教育为什么会被整顿 国家为什么要叫停K12教育? 如何Ubuntu 16.04 上的 NGINX Web 服务器 企业要在新三板上市中介辅导的律师事务所费用是什... 怎么搭建一个web服务器 上市公司并购,券商的财务顾问费怎么收取? 如何搭建自己的个人网站 我现在有一台ubuntu的服务... 公司上市时要辅导券商,在辅导什么? 如何在Ubuntu上搭建安全的Apache Web服务器 公司股票上市费用一般多少 ubuntu服务器怎么搭建网站 IPO保荐人收费标准 如何搭建java web服务器 企业上市改制辅导费用支付方式和时间最好是怎样的? ubuntu系统 下怎么样搭建 DNS服务器?怎么样搭建We... 一个公司的股票要上市售卖,必须委托证券公司在交... ubuntu 怎样设置成web服务器 公司上市需要多少钱啊?有哪些成本啊? 如何在Ubuntu上搭建一台安全的Apache Web服务器 企业在中国上市的费用大约是多少 如何用nginx在ubuntu下搭建web服务器 企业发行上市过程中需要承担哪些费用 火锅店新鲜牛肉怎么摆盘图片 火锅店最新菜品摆盘造型图 火锅店的肉类为什么要垫一片生菜? 火锅配菜图片大全 火锅肉怎么摆盘 乐创电磁炉开机加热不到一分钟报故障代码E,间隔十... 刨肉有那些各种花样摆式,最好是带上图片 乐创电磁炉开机出e0 在家吃火锅如何吃出在饭店的氛围感? 电磁炉故障代码 火锅肉一类的摆盘 乐创电磁炉开机不加热怎么回事 乐创电磁炉显示E是什么问题 吃火锅的时候,要在肉下面垫一片生菜是为什么? 在火锅店点肉,盘底基本都会垫一片生菜,这玩意能... 乐邦电磁炉故障代码及解决方法 电磁炉的故障代码分别代表什么 为什么很多火锅店商家在肉类菜品下垫生菜? 电磁炉出现“E6”就停止工作了,这是怎么回事? 火锅的涮菜怎么摆盘