GVKun编程网logo

服务器nginx部署PHP项目样式不出来要注意的小问题(nginx配置php项目)

26

在本文中,您将会了解到关于服务器nginx部署PHP项目样式不出来要注意的小问题的新资讯,同时我们还将为您解释nginx配置php项目的相关在本文中,我们将带你探索服务器nginx部署PHP项目样式不

在本文中,您将会了解到关于服务器nginx部署PHP项目样式不出来要注意的小问题的新资讯,同时我们还将为您解释nginx配置php项目的相关在本文中,我们将带你探索服务器nginx部署PHP项目样式不出来要注意的小问题的奥秘,分析nginx配置php项目的特点,并给出一些关于creat-react-app/dva静态项目,用nginx部署在次级域名路径(如a.com/sub/)需要注意的几点、IIS服务器部署php项目的实例分享、linux服务器安装jenkins自动部署php项目并发送邮箱通知、nginx - 如何部署已有的PHP项目的实用技巧。

本文目录一览:

服务器nginx部署PHP项目样式不出来要注意的小问题(nginx配置php项目)

服务器nginx部署PHP项目样式不出来要注意的小问题(nginx配置php项目)

服务器使用Nginx部署PHP项目的时候如果样式没有 出来,那么很可能 location 块里出问题了。 比如

location  / {
   root  /home/wwwroot/default/PHP_project;
   fastcgi_pass 127.0.0.1:9000;
   fastcgi_index  index.PHP;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   include fastcgi_params;  
}

这样配置之后访问项目,能够访问,但是样式怎么没有了?难道是代码里css, js文件没有引入成功吗?并不是。(当然不排除CSS和js引入失败的情况,如果本地测试的时候有样式,部署服务器之后没有样式了。就不是这个原因)看Nginx配置的代码发现,匹配规则是  /  ,而配置文件里只有这一个location块,也就是说所有的请求都转发给了PHP处理,包括静态文件。那么肯定出不来样式。如何改Nginx的配置呢?看下面(也可以写匹配静态文件的location 块,自行选择)

location / {
  root /home/wwwroot/default/PHP_project;
  index  index.html  index.htm ;
}

#PHP 的单独写一个匹配location,这样让静态文件走location /{}
location \.PHP {
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index  index.PHP;
  fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
  include  fastcgi_params;
}
  • 当然样式不出现可能还有其他原因,以后遇到了,再继续补充到这里。

creat-react-app/dva静态项目,用nginx部署在次级域名路径(如a.com/sub/)需要注意的几点

creat-react-app/dva静态项目,用nginx部署在次级域名路径(如a.com/sub/)需要注意的几点

因为要把dist文件夹部署在一个域名的次级目录,没想到和运维同学一起折腾了一下午。。

放在这里备忘,也给后来的同学一些可查的中文资料:

1,dva/cra给你的模板index.html是在public里面的,webpack会原封不动拷到dist,其中引入index.js和index.css都是绝对路径,可以用webpack ejs插件生成htmnl,因为我用了dva,不太想改webpack 配置太多,这里选用直接手去掉前缀/变成相对路径

2,项目里面使用了react-i18next,locale文件是放到public里面的,配置locale初始化的时候根据环境变量修改下引入目录是/还是/sub/

3,路由react-router匹配的prefix前缀

export const browserHistory = useRouterHistory(createHistory)({
  basename: process.env.PUBLIC_PATH || '/',})

如果是dva
import { createHistory } from 'history'
import { useRouterHistory } from 'react-router'

const app = dva({
  history: browserHistory,});

小坑一个!
dva里面的路由跳转会这么写:

import { browserHistory } from 'dva/router';
browserHistory.push('some/route')

由于我们自定义了history,这样会失效,所以一定记得要import刚才export出来的history,而不是dva默认的那个!

4,webpack设置publickPath:/sub/

5,Nginx配置:

server {
    listen 80;
    server_name www.abc.com;
    root /项目/root地址/不带sub;

    location /sub {
        try_files $uri $uri/ /sub/index.html;
    }
}

搞定~

IIS服务器部署php项目的实例分享

IIS服务器部署php项目的实例分享

本文主要和大家分享IIS服务器部署php项目的实例分享,主要以文字和代码的形式和大家分享,希望能帮助到大家。

主机:腾讯云服务器,2核cpu,4g内存版本
操作系统:windows server 2012
服务器:iis 8
php版本:5.6
使用了thinkphp框架。

原先服务器上已安装IIS,部署了一套asp.NET的网站,后期又添加了微信业务,用php+MySQL开发,为了便于管理,考虑把微信服务也部署在IIS上面。

在php官网下载5.6版本(php运行需要安装VC11),修改php配置文件,设置正确的extension_dir,开启短标签支持(short_open_tag),开启fastCGI支持(fastcgi.impersonate=1、cgi.forceredirect=0、cgi.fix_pathinfo=1),插件开启php_gd2、php_mbstring、php_mysql、php_mysqli、php_pdo_mysql,时区改为Asia/Shanghai。

找到ThinkPHP框架的配置文件,将URL模式设置为2(Rewrite模式)。

下载对应IIS版本的两个插件:PHP Manager和URL Rewrite,将PHP项目文件夹添加到IIS中,打开PHP Manager,设置php版本(PHP Setup - Register PHP version),选择PHP文件夹内php-cgi.exe。

立即学习“PHP免费学习笔记(深入)”;

开启IIS服务器的CGI和ISAPI功能(控制面板-添加Windows功能)。

网页部署之后会在项目文件夹内自动新建一个web配置文件,在配置文件的system.webServer节点添加Rewrite规则。

规则参考:

<rewrite>
     <rules>
      <rule name="cnUrl" stopProcessing="true">
       <match url="!^(index\.php|images|assets|robots\.txt)" />
       <action type="Rewrite" url="cnurl.php" />
      </rule>
      <rule name="Default" patternSyntax="Wildcard">
       <match url="*" />
        <conditions>
         <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
         <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        </conditions>
       <action type="Rewrite" url="index.php" />
      </rule>
     </rules></rewrite>
登录后复制

URL Rewrite下载地址:
http://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads
PHP Manager下载地址:http://phpmanager.codeplex.com/

相关推荐:

Apache部署php项目实例分享

关于在linux下部署php项目

安装PHP开发环境及部署PHP项目

以上就是IIS服务器部署php项目的实例分享的详细内容,更多请关注php中文网其它相关文章!

linux服务器安装jenkins自动部署php项目并发送邮箱通知

linux服务器安装jenkins自动部署php项目并发送邮箱通知

  1. 在Linux服务器上下载Jenkins
    下载地址:https://jenkins.io/zh/download/
    选择你的服务器对应的版本,我的是centos6,选择这个版本

    linux服务器安装jenkins自动部署php项目并发送邮箱通知


    点击进去:

    linux服务器安装jenkins自动部署php项目并发送邮箱通知


    命令行官方已给出,依次执行以下命令行
    sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
    sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
    yum install jenkins

2.安装java环境(官网说的需要的版本是java8或者是java11)
打开网站
http://www.oracle.com/technetwork/java/javase/downloads
选择对应版本的JDK,点击下载

linux服务器安装jenkins自动部署php项目并发送邮箱通知

选择对应的安装包

linux服务器安装jenkins自动部署php项目并发送邮箱通知


3.在服务器上usr目录下创建java安装目录

cd /usr
mkdir java

4、将下载好的JDK文件copy到/usr/java目录

cp /mnt/hgfs/linux/jdk-8u60-linux-x64.tar.gz /usr/java/

5、解压到当前目录

tar -zxvf jdk-8u60-linux-x64.tar.gz

得到文件夹 重命名为jdk

mv jdk1.8.0_60 jdk

6、编辑配置文件,配置环境变更

vim /etc/profile

添加如下内容:

JAVA_HOME=/usr/java/jdk
CLAsspATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLAsspATH

7、执行命令:

source /etc/profile

8、查看安装情况

java -version
javac -version

java version “1.8.0_60″
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) Client VM (build 25.60-b23, mixed mode)

9.打开终端进入到jenkins的下载目录.
运行命令,下面的8080端口是jenkins的打开端口,可自己修改,注意自己的服务器的端口是开启

java -jar jenkins.war --httpPort=8080

打开浏览器进入链接 http://localhost:8080.//此处换成你的服务器的ip
按照说明完成安装jenkins.

10.检查插件是否安装并安装插件

在通过Jenkins发布PHP代码之前,我们首先需要在Jenkins服务的web页面上检查一下 “Git plugin” 和 “Publish Over SSH” 两个插件是否已安装:

“系统管理” → “管理插件” → “已安装”,然后搜索Git plugin看看是否已安装,一般这个插件都是默认安装的:

然后到 “可选插件” 里安装 Publish Over SSH 插件:

linux服务器安装jenkins自动部署php项目并发送邮箱通知


11.配置密钥认证
生成密钥对后,首先把公钥拷贝到服务器上去(多个服务器配置多个(需自行验证)),也就是把公钥的内容粘贴到 .ssh/authorized_keys 文件里,和我们之前配置远程登录的密钥验证是一样的。(一定要保存在authorized_keys文件中),设置authorized_keys文件的权限是600

chmod -R 600 authorized_keys

12.查看密钥粘贴在jenkins配置中,点击“系统管理” → “系统设置”,下拉页面,大概在网页的最下面可以找到 “Publish Over SSH”
注:Jenkins SSH Key 这一栏默认会使用Jenkins管理员admin账户的密码,可以不填则设置为空密码。

linux服务器安装jenkins自动部署php项目并发送邮箱通知


13.构建项目
以上我们配置完了插件以及远程机器,现在就可以开始新建任务了:

linux服务器安装jenkins自动部署php项目并发送邮箱通知

  1. 配置项目名称与描述:

linux服务器安装jenkins自动部署php项目并发送邮箱通知

  1. 配置远程仓库的地址:

    linux服务器安装jenkins自动部署php项目并发送邮箱通知

    16.构建触发器这一步比较关键,卡了好久,首先我们先去看看码云关于Webhook文档(http://git.mydoc.io/?t=154711 ),我们要抓取研发push这个Webhook POST过来的数据,然后根据里面内容关键字ref判断是否为开发分支,如果是开发分支,则让Jenkins拉开发分支最新的代码下来构建。所以图四,勾选插件触发器,给抓出来的数据起个变量名ref,抓取内容为$.ref(看码云的文档)。

linux服务器安装jenkins自动部署php项目并发送邮箱通知

好,稍微下来一点,我们只需要获取POST数据,header和request不用理。接下来也很关键,定义过滤出来什么字串才触发这个任务。所以使用正则匹配,text为匹配出什么结果就触发这个任务,于是我们填入刚才抓取临时存放的变量$ref,注意这里不是原始数据的$.ref。

linux服务器安装jenkins自动部署php项目并发送邮箱通知

剩下就是告诉拉完代码下来之后做什么操作了,后面的文章会讲到,这里我就随便输出点东西了。

linux服务器安装jenkins自动部署php项目并发送邮箱通知

点击保存之后,回到码云的项目管理页面,填入URL

URL格式为 http://有读权限的用户名:该用户名密码@jenkis地址/generic-webhook-trigger/invoke

http://jenkins的账号:jenkins的密码@123.***.***.***:8080/generic-webhook-trigger/invoke?token=testgit

linux服务器安装jenkins自动部署php项目并发送邮箱通知

 点击测试,返回ok就说明接口能用了,如果返回如下,则用户名密码可能没填或者没对。
{"status":"ok","data":{"triggerResults":{"ANY":"Did not find any jobs to trigger! 
The user invoking /generic-webhook-trigger/invoke must have read permission to any 
jobs that should be triggered. You may try adding http://user:passw@url... or configuring
 and passing an authentication token like ...trigger/invoke?token=TOKENHERE"}}}
最后,在dev分支提交代码,就会触发任务了,至此需求完成。

linux服务器安装jenkins自动部署php项目并发送邮箱通知

ps:码云点测试按钮默认是触发master push,实验过程有问题,可以只勾选一项,不作判断,就可以测试触发了,如下图。

linux服务器安装jenkins自动部署php项目并发送邮箱通知

16.“构建” ,最核心的一步,选择 “Send files or execute commands over SSH” :

linux服务器安装jenkins自动部署php项目并发送邮箱通知

简单说明:

SSH Server,Name 选择对应的服务器,
Transfers, Source files填写/,表示全部文件
Remove prefix可以指定截掉的前缀目录,这里留空即可,
Remote directory指定远程服务器上代码存放路径,比如/data/wwwroot/www.aaa.com
Exec command为文件传输完成后要执行的命令,比如可以是更改文件权限的命令,设置完成后点击 “Add Transfer Set”,如果还有另外的机器,可以点击 “Add Server”重复以上操作
完成以上操作后,就可以使用这个刚刚创建的任务去工作了,点击左面的 “立即构建” ,就能把git上的代码发布到指定的服务器上:

构建输出完成

linux服务器安装jenkins自动部署php项目并发送邮箱通知

到远程机器上,看看是否已经存在这个目录:

linux服务器安装jenkins自动部署php项目并发送邮箱通知

17.设置邮箱通知
步骤:

访问Jenkins服务端(ip+端口),登录Jenkins
点击系统管理

linux服务器安装jenkins自动部署php项目并发送邮箱通知

选择管理插件

linux服务器安装jenkins自动部署php项目并发送邮箱通知


选择可选插件

linux服务器安装jenkins自动部署php项目并发送邮箱通知


搜索Mailer Plugin

linux服务器安装jenkins自动部署php项目并发送邮箱通知


点击直接安装
点击Jenkins的系统管理-》系统设置-》Extended E-mail Notification(只有安装了Mailer Plugin插件才会出现该项配置),端口号一般为25,注意自己的服务器是否开启此端口

linux服务器安装jenkins自动部署php项目并发送邮箱通知


进行邮件配置
Default Subject:
构建通知:$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!
Default Content:

<hr/
(本邮件是程序自动下发的,请勿回复!)<br/><hr/>
项目名称:$PROJECT_NAME<br/><hr/>
构建编号:$BUILD_NUMBER<br/><hr/>
构建状态:$BUILD_STATUS<br/><hr/>
触发原因:${CAUSE}<br/><hr/>
构建日志地址:<a href="${BUILD_URL}console">${BUILD_URL}console</a><br/><hr/>
构建地址:<a href="$BUILD_URL">$BUILD_URL</a><br/><hr/>
变更集:${JELLY_SCRIPT,template="html"}<br/><hr/>

注意点
点击应用,点击保存

点击创建的任务进行邮箱的构建,点击配置,选择构建后操作

linux服务器安装jenkins自动部署php项目并发送邮箱通知


linux服务器安装jenkins自动部署php项目并发送邮箱通知


点击应用,保存,构建,查看邮箱是否收到邮件提醒
收到的邮件效果

linux服务器安装jenkins自动部署php项目并发送邮箱通知

linux服务器安装jenkins自动部署php项目并发送邮箱通知

nginx - 如何部署已有的PHP项目

nginx - 如何部署已有的PHP项目

请教一下后端大神们,如何能快速部署已有的php项目?
现在的项目情况就是,线下有所有的源码,线上有运行的版本。
现在项目都是在测试服务器中开发调试,开发完成后,将修改过的代码拷贝到正式服务器上覆盖。
这样的结果就是,一旦开发周期长了,修改的文件一多,就容易乱套,而且部署的时候很麻烦。
所以想请教一下各位大神们,如何可以快速部署项目到线上,而又不需要太多的操作。

回复内容:

请教一下后端大神们,如何能快速部署已有的php项目?
现在的项目情况就是,线下有所有的源码,线上有运行的版本。
现在项目都是在测试服务器中开发调试,开发完成后,将修改过的代码拷贝到正式服务器上覆盖。
这样的结果就是,一旦开发周期长了,修改的文件一多,就容易乱套,而且部署的时候很麻烦。
所以想请教一下各位大神们,如何可以快速部署项目到线上,而又不需要太多的操作。

最简单如,代码版本控制例如开源的gitlab,gogs

使用版本控制工具,如git,svn等

使用版本控制工具

立即学习“PHP免费学习笔记(深入)”;

git版本工具,分支解决!

git工作流:git flow

兄弟,不会用git吗?

版本控制工具~ git svn都可以

git svn

谢谢各位的回答。已经使用git进行部署了。

如何正确发布PHP代码
瓦力部署系统

我们今天的关于服务器nginx部署PHP项目样式不出来要注意的小问题nginx配置php项目的分享已经告一段落,感谢您的关注,如果您想了解更多关于creat-react-app/dva静态项目,用nginx部署在次级域名路径(如a.com/sub/)需要注意的几点、IIS服务器部署php项目的实例分享、linux服务器安装jenkins自动部署php项目并发送邮箱通知、nginx - 如何部署已有的PHP项目的相关信息,请在本站查询。

本文标签: