精华内容
下载资源
问答
  • 部署PHP应用线上Web服务器的方式有很多种。平台即服务(PaaS)PaaS提供运行PHP Web应用所需的系统和网络环境,对PHP应用和框架只需要做少量的配置即可。现在PaaS已经成为部署、托管和扩展各种规模的PHP应用的流行...

    部署PHP应用到线上Web服务器的方式有很多种。

    平台即服务(PaaS)

    PaaS提供运行PHP Web应用所需的系统和网络环境,对PHP应用和框架只需要做少量的配置即可。

    现在PaaS已经成为部署、托管和扩展各种规模的PHP应用的流行方式,可以在 resources部分查看PHP PaaS “平台即服务”供应商列表。

    虚拟或独立主机

    如果你愿意或想学习系统管理,那么虚拟或独立主机可以让你完全控制自己的运行环境。

    nginx和PHP-FPM

    PHP通过内置的FastCGI进程管理器(FPM),可以非常高效地和轻量级的高性能Web服务器nginx进行通信。 nginx比Apache消耗更少的内存,能更好的处理并发请求,这在内存限制较多的虚拟主机环境中尤为重要。

    Apache和PHP

    PHP和Apache是一个老搭档,历史悠久。Apache有很强的可配置性和大量的扩展模块, 是共享主机中常见的Web服务器,完美支持各种PHP框架和开源应用(如WordPress)。可惜的是,默认情况下,Apache比nginx更耗资源,并发处理能力不强。

    Apache有多种方式运行PHP,最常见简单的方式是使用mod_php5的prefork MPM方式, 缺点是它对内存的利用效率不高,如果你不想深入学习服务器的管理,那么这种最简单的方式就是你的最佳选择了。注意,如果你使用mod_php5,最好使用 prefork MPM方式。

    如果你想追求高性能和高稳定性,那么也可以为Apache选择与nginx类似的FPM系统worker MPM或 event MPM,它们分别使用mod_fastcgi和mod_fcgid模块。FPM方式可以更高效的利用内存,运行 速度更快,但是配置也相对复杂一些。

    共享主机

    PHP非常流行,很少有服务器没有安装PHP的,因而有很多共享主机,不过需要注意服务器上的PHP是否是最新稳定 版本。共享主机允许多个开发者把自己的网站部署在上面,这样的好处是费用非常便宜,坏处是你不知道将和哪些 网站共享主机,因此需要仔细考虑机器负载和安全问题。如果项目预算允许的话,避免使用共享主机是上策。

    Building and Deploying your Application

    If you find yourself doing manual database schema changes or running your tests manually before updating your files (manually), think twice! With every additional manual task needed to deploy a new version of your app, the chances for potentially fatal mistakes increase. Whether you’re dealing with a simple update, a comprehensive build process or even a continuous integration strategy, build automation is your friend.

    Among the tasks you might want to automate are:

    Dependency management

    Compilation, minification of your assets

    Running tests

    Creation of documentation

    Packaging

    Deployment

    Build Automation Tools

    Build tools can be described as a collection of scripts that handle common tasks of software deployment. The build tool is not a part of your software, it acts on your software from ‘outside’.

    There are many open source tools available to help you with build automation, some are written in PHP others aren’t. This shouldn’t hold you back from using them, if they’re better suited for the specific job. Here are a few examples:

    Phing is the easiest way to get started with automated deployment in the PHP world. With Phing you can control your packaging, deployment or testing process from within a simple XML build file. Phing (which is based on Apache Ant) provides a rich set of tasks usually needed to install or update a web app and can be extended with additional custom tasks, written in PHP.

    Capistrano is a system for intermediate-to-advanced programmers to execute commands in a structured, repeatable way on one or more remote machines. It is pre-configured for deploying Ruby on Rails applications, however people are successfully deploying PHP systems with it. Successful use of Capistrano depends on a working knowledge of Ruby and Rake.

    Dave Gardner’s blog post PHP Deployment with Capistrano is a good starting point for PHP developers interested in Capistrano.

    Chef is more than a deployment framework, it is a very powerful Ruby based system integration framework that doesn’t just deploy your app but can build your whole server environment or virtual boxes.

    Chef resources for PHP developers:

    Further reading:

    Continuous Integration

    Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily — leading to multiple integrations per day. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly.

    – Martin Fowler

    There are different ways to implement continuous integration for PHP. Recently Travis CI has done a great job of making continuous integration a reality even for small projects. Travis CI is a hosted continuous integration service for the open source community. It is integrated with GitHub and offers first class support for many languages including PHP.

    Further reading:

    展开全文
  • 分布式搭建LNMP部署网站基于四台服务器实现lnmp分离部署,A服务器部署nginx,B服务器部署php,C/D服务器部署Mysql主从1.1 实战环境服务器A(nginx):192.168.193.102服务器B(PHP):192.168.193.100服务器C(master):192...

    一.  分布式搭建LNMP部署网站

    基于四台服务器实现lnmp分离部署,A服务器部署nginxB服务器部署php,C/D服务器部署Mysql主从

    1.1  实战环境

    服务器A(nginx):192.168.193.102

    服务器B(PHP):192.168.193.100

    服务器C(master):192.168.193.103

    服务器D(slave):192.168.193.104

    1.2  安装nginx

    #下载源码

    [root@node2opt]# wget http://nginx.org/download/nginx-1.18.0.tar.gz

    #解压

    [root@node2opt]# tar -xzvf nginx-1.18.0.tar.gz

    #预编译

    [root@node2opt]# cd nginx-1.18.0

    [root@node2nginx-1.18.0]# ls

    auto  CHANGES CHANGES.ru  conf  configure contrib  html  LICENSE Makefile  man  objs README  src

    [root@node2nginx-1.18.0]# ./configure --prefix=/usr/local/nginx/

    #编译&安装

    [root@node2nginx-1.18.0]# make && make install

    #修改配置文件将nginx进程用户改为nginx

    [root@node2conf]# grep "^user" /usr/local/nginx/conf/nginx.conf

    user  nginx;

    #创建nginx用户、用户组

    [root@node2conf]# groupadd nginx

    [root@node2conf]# useradd nginx -g nginx -s /sbin/nologin –M

    #启动nginx

    [root@node2conf]# /usr/local/nginx/sbin/nginx

    #查看nginx进程

    [root@node2conf]# ps -ef | grep nginx

    root      10846     1  0 16:23 ?        00:00:00 nginx: master process/usr/local/nginx/sbin/nginx

    nginx     10847 10846  0 16:23 ?        00:00:00 nginx: worker process

    nginx     10848 10846  0 16:23 ?        00:00:00 nginx: cache manager process

    nginx     10849 10846  0 16:23 ?        00:00:00 nginx: cache loader process

    root      10851 10482  0 16:23 pts/0    00:00:00 grep --color=auto nginx

    1.3  上传wordpress网站代码

    #解压包到nginx发布目录

    [root@node2opt]# tar -xzvf wordpress-4.9.4-zh_CN.tar.gz -C /usr/local/nginx/html/

    #修改属主属组

    [root@node2html]# chown nginx. wordpress/

    1.4  创建wordpress虚拟主机

    #指定应用的虚拟主机目录(主配置文件http指令块下添加):

    includevhost/*.conf;

    #创建虚拟主机目录

    [root@node2 ~]#mkdir -p /usr/local/nginx/conf/vhost/

    #创建虚拟主机配置文件

    [root@node2 ~]#vim /usr/local/nginx/conf/vhost/blog.wordpress.com.conf

    server {

            listen       80;

            server_nameblog.wordpress.com;

            #charset koi8-r;

            access_log  logs/wordpress.access.log  main;

            location / {

                root   html/wordpress;

                index  index.php index.html index.htm;

            }

            #error_page  404              /404.html;

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

            #

            error_page   500 502 503 504  /50x.html;

            location = /50x.html {

                    root   html;

            }

            location ~ \.php$ {

                root           /data/wordpress;

                fastcgi_pass   192.168.193.100:9000;

                fastcgi_index  index.php;

                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

                include        fastcgi_params;

            }

    }

    1.5  安装PHP

    #yum安装

    [root@node1 ~]#yum install php php-fpm php-devel php-mysql –y

    #修改php-fpmd配置文件

    [root@node1 ~]#egrep "^(listen|user|group)" /etc/php-fpm.d/www.conf

    listen =192.168.193.100:9000  #监听9000端口

    listen.allowed_clients= 192.168.193.102      #允许102访问

    user = nginx

    group = nginx

    #启动php-fpm

    [root@node1 ~]#systemctl start php-fpm

    #查看端口

     [root@node1 ~]# netstat -ntlp| grep 9000

    tcp        0      0 192.168.193.100:9000    0.0.0.0:*               LISTEN      1894/php-fpm: maste

    #查看进程

    [root@node1 ~]# ps -ef | grep php

    root       1894      1 0 10:38 ?        00:00:00 php-fpm:master process (/etc/php-fpm.conf)

    nginx      1896   1894 0 10:38 ?        00:00:00 php-fpm:pool www

    nginx      1897   1894 0 10:38 ?        00:00:00 php-fpm:pool www

    nginx      1898   1894 0 10:38 ?        00:00:00 php-fpm:pool www

    nginx      1899   1894 0 10:38 ?        00:00:00 php-fpm:pool www

    nginx      1900   1894 0 10:38 ?        00:00:00 php-fpm:pool www

    root       1914   1613 0 10:39 pts/0    00:00:00 grep--color=auto php

    1.6  配置php远程服务器网站资源

    [root@node2 ~]# rsync -av /usr/local/nginx/html/wordpress/192.168.193.100:/data/wordpress

    1.7  访问nginx

    要数据库连接信息,但是现在还没有配置数据库,所以需要先配置数据库

    1d8eeb9627c37394234aa8029081fc10.png

    1.8  部署mysql数据库

    #主库从库安装mariadb

    [root@node3 ~]#yum install mariadb mariadb-server mariadb-devel –y

    #配置Mysql互为主从

    [root@node3 ~]#egrep "log|server" /etc/my.cnf

    log-bin=node3-bin

    server-id=1

    [root@node4 ~]#egrep "log|server" /etc/my.cnf

    log-bin=node4-bin

    server-id=2

    #启动数据库服务

    [root@node3 ~]#systemctl start mariadb

    [root@node4 ~]#systemctl start mariadb

    #node3上授权

    MariaDB[(none)]> grant replication slave on *.* to"tongbu"@"192.168.193.104" identified by"123456";

    Query OK, 0 rowsaffected (0.00 sec)

    MariaDB[(none)]> flush privileges;

    Query OK, 0 rowsaffected (0.00 sec)

    #node4上进行同步

    MariaDB[(none)]> change master to

        ->master_host="192.168.193.103",

        -> master_user="tongbu",

        -> master_password="123456",

        ->master_log_file="node3-bin.000003",

        -> master_log_pos=478;

    Query OK, 0 rowsaffected (0.01 sec)

    #node4上授权

    MariaDB[(none)]> grant replication slave on *.* to"tongbu"@"192.168.193.103" identified by"123456";

    Query OK, 0 rowsaffected (0.00 sec)

    MariaDB[(none)]> flush privileges;

    Query OK, 0 rowsaffected (0.01 sec)

    #node3上同步

    MariaDB[(none)]> change master to

        ->master_host="192.168.193.104",

        -> master_user="tongbu",

        -> master_password="123456",

        ->master_log_file="node4-bin.000003",

    -> master_log_pos=478;

    Query OK, 0 rows affected (0.01 sec)

    #node3node4上均开启slave进程,然后执行show slave status\G,都能看到以下状态表示互为主从搭建成功!

    MariaDB [(none)]> slave start;

    MariaDB [(none)]> show slave status\G;

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    #创建数据库,并授权(php连接)

    node3上创建后发现node4上已经同步(也可以在node4上创建)

    MariaDB[(none)]> create database wordpress charset utf8;

    Query OK, 1 rowaffected (0.00 sec)

    MariaDB[(none)]> grant all on wordpress.* to"wordpress"@"192.168.193.100" identified by"123456";

    Query OK, 0 rowsaffected (0.00 sec)

    MariaDB[(none)]> flush privileges;

    Query OK, 0 rowsaffected (0.00 sec)

    1.9  配置数据库连接

    c114941107a615bab001bbcfa3b3b9a5.png

    #安装完进行登录

    a2966396864e532ebf63e8ebfeda9af5.png

    #wordpress部署成功

    a7d6af991894c317e07c113bc1c78df2.png

    不论你在什么时候开始,重要的是开始之后就不要停止!

    --end--










    了解更多请关注吧

    eafd31131b7342524e743604bc514885.png

    点个小花花,让他们知道你“在看

    展开全文
  • 1.LAMP概念LAMP是Linux+Apache+MySQL+Perl/PHP/Python等组成常用来搭建动态网站或者服务器的开源软件,它们本身都是独立的程序,但因经常在一起使用,兼容度越来越高,就组成了一个强大的web应用程序平台。...

    1.LAMP概念

    LAMP是Linux+Apache+MySQL+Perl/PHP/Python等组成常用来搭建动态网站或者服务器的开源软件,它们本身都是独立的程序,但因经常在一起使用,兼容度越来越高,就组成了一个强大的web应用程序平台。

    安装了LAMP就已经安装“网页服务器”、“数据库”、”PHP语言环境“

    2.LAMP安装环境

    主机:阿里云ECS主机

    系统:ubuntu 20.04 64位

    3.LAMP安装

    1.检查更新

    sudo apt-get update

    sduo apt-get upgrade

    2.一次性安装LAMP套件

    sudo tasksel

    这时显示如下画面,上下键移动,移动到LAMP server,然后“空格键”选中,选中后会显示*。最后”Enter键”确认。程序自动加载,加载完成后,LAMP部署完成。

    7856a26d01eaa80ac0fa1cba3a91057a.png

    c5d813a06adfefaf57842ae1c9e96997.png

    275932e4e00b0cf1d5e1247bbb49e082.png

    4.ECS主机安全组规则配置

    LAMP部署完成后,并不能直接访问公网IP,是因为ECS访问规则没有设置。

    1.登录阿里云,点击“控制台”

    830b456b07ea6484a72fe6d7b040e78f.png

    2.选中云服务器ECS

    59133e4556fa6499e840f2a557a11e6a.png

    3.选择“实例”

    73ca7b6158120e7bbcf7702367a71de4.png

    4.点击“管理”

    c73947cbde9844f0c8515910295cfa06.png

    5.选择“本实例安全组”

    2fb3062e1eb29a875f0f6314b09c62d2.png

    6.点击“配置规则”

    7968bff21f71b9be354f120c860c5a8f.png

    7.在“入方向”选择“手动添加”,添加80和3306端口。(说明:80端口用于web访问,3306端口用于MySQL)

    ecfcfa8dd71b1c44af143be15537c960.png

    5.测试LAMP是否安装成功

    1.测试Apache

    访问http://<ECS公网地址>

    说明:如果ECS公网地址105.66.21.150,则访问http://105.66.21.150

    出现it works!说明apache2安装成功

    3d97d75ab32274955313c4f27cdefba4.png

    2.测试MySQL

    service mysql status

    显示active(running)说明正常运行

    fe6b777225ca25bee55e125c6a754772.png

    3.测试PHP

    echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

    访问http://<ECS公网地址>/phpinfo.php

    说明:如果ECS公网地址105.66.21.150,则访问http://105.66.21.150/phpinfo.php

    出现PHP Version XXX说明PHP安装成功

    5c50891e36940ba5986c98d9c036e40d.png

    8a251f858dabb6db8b880b566b608975.png

    6.结束

    各位老哥们,本人小白一个,自己在部署LAMP时遇到过好多问题。写这篇也纯粹给像我这样的小白避坑,如果有错误的地方,希望老哥们指正。

    7.参考资料

    1. Apache
    2. 基于ECS搭建云上博客
    3. 基于 Ubuntu 搭建 WordPress 个人博客
    展开全文
  • PHP服务器部署
  • 服务器2. 配置环境3. 用WINSCP上传文件项目4. 测试 项目包括一堆php文件,需要连接mysql 流程 租服务器 -> 配置环境 -> 测试php和数据库环境 -> 上传文件 -> 运行 1. 租服务器 步骤: 注册登录 - ...

    项目包括一堆php文件,需要连接mysql

    流程

    租服务器 -> 配置环境 -> 测试php和数据库环境 -> 上传文件 -> 运行


    1. 租服务器

    步骤:
    阿里云官网注册登录 - 实名认证 - 学生认证 - 购买 - 进入>控制台>云服务器>实例 - 重置实例密码 -> 配置环境

    /
    关于购买
    阿里云学生机:一个月10rmb
    *但是优惠只有一次,还是多买几个月吧(叹气.jpg
    地域:可以多选几个看看,不同地域好像剩下的服务器操作系统(存货)不一样
    实例:默认 1CPU+2G
    操作系统:Ubuntu 18.04 64位
    *操作系统是Linux的,不会Linux指令只能疯狂复制别人代码
    /
    关于重置密码
    找不到实例:注意在页面左上角,选择你购买的服务器所在地域
    要记住ip地址用户名密码,最好用个txt存起来
    /

    2. 配置环境

    使用阿里云平台自带的远程连接功能

    步骤:
    (接上一步骤) - 选择点击进入已购买的实例 - 远程连接下拉选择workbench - 弹出远程连接页面 - 输入用户名(默认root)和密码
    *此处还有一个远程连接的密码? 需要自己设置

    /
    配置环境具体指令
    参考:把PHP项目部署到服务器上,让别人看见你的成果。
    /
    出现过的几百种意外情况
    unable to locate package:更新即可/换一个指令
    根目录var>www>html不存在:自己新建一个,所有项目文件将会放在这下面
    端口:自行添加mysql的端口
    【在实例右边的更多中下拉>网络与安全组>配置规则>手动添加> 自定义UDP 目的:3306/3306 源:0.0.0.0/0

    *还有好多意外 具体忘了
    /


    3. 测试

    步骤:
    测试输入ip地址打开情况 - 测试php、mysql状态

    测试php和mysql可用不可用:
    根目录下放php文件phpInfo.php【内容为phpInfo();
    打开 http://ip地址/phpInfo.php

    4. WINScp上传文件

    下载winscp - 用ip地址、用户名、密码连接 - 上传文件到\var\www\html
    (winscp使用教程自行搜索)
    *winscp默认打开的目录是\root,需要退回最上一级目录\,找到\var\www\html
    *一般\var已存在,没有\var\www,可以自行新建www

    /
    数据库遇到问题
    此处连接mysql数据库是通过http://ip地址/phpmyadmin,跟本地测试的数据库不一样,需要

    • 重新上传mysql表,数据
    • 重新设置phpmyadmin的用户名和密码
    • 更改项目连接数据库的config(新的用户名和密码)
    • /

    ps:
    *阿里云的网页为啥打开那么卡卡卡卡卡卡呢呢呢呢呢呢
    *csdn的在线文章编辑器好难用TAT,动不动复制黏贴的时候就卡住

    展开全文
  • 项目部署到服务器

    2018-07-18 11:45:05
    1.前后端分离mvc  之前没出现前后端分离的技术之前,如java 是在html 通过jsp 技术(就是通过一些符号... 服务器端,由于没有浏览器,所以借助nginx 来代替c的作用,去转发前端的请求,所以前端代码放在nginx里面...
  • 1、windows服务器开启IIS远程ftp服务 ... 2、创建本地php代码与远程服务器的自动上传 https://blog.csdn.net/TCF_JingFeng/article/details/83863085 ...
  • php项目部署到服务器上lamp

    千次阅读 2019-05-10 10:21:57
    原创地址:...1、centOS系统直接使用命令安装lamp环境(centOS7) yum install -y httpd php php-fpm mysql mysql-server php-mysql 2、依次启动 systemctl start httpd.service systemctl sta...
  • 我花了一些时间自己写了一个能够极速地将一个git项目部署到SAE的svn服务器上的脚本。代码不是复杂,也没有很深的技术。但确实是个好用的小工具,至少对我来说,不用把我的git项目打包成zip再上传了,确实提高了超多...
  • laravel部署到服务器Deploying Laravel to Elastic Beanstalk with Runtime 2 (PHP 7.4) 使用Runtime 2(PHP 7.4)将Laravel部署到Elastic Beanstalk If you recently tried to deploy a Laravel app to elastic bean...
  • 系统:centos 8.0PHP 7.4 + MySQL 8.0 + Apache 2 (环境部署见之前的文章)1、web项目打包将更新代码之后的web项目代码上传到服务器(通过WinScp软件上传)按照WinScp软件的提示输入服务器IP,用户名以及密码等,登录...
  • vue部署到服务器后有路由的情况刷新提示404 因为路由使用的是histroy模式 需要进行以下配置 在Nginx管理中进行配置 listen 80; server_name 100.0.0.0; index index.html index.htm index.php; root /...
  • 服务器如何部署phpphp是我们经常会使用的语言环境,尤其是在Linux系统下,配置php环境时,不同的云服务器可能操作方法不太一样。1、centOS系统可以直接使用yum install命令进行环境安装,比较稳定的版本可以...
  • 我把项目部署到阿里云服务器上,收信时遇到这个问题,到处翻,查百度,查谷歌,看php-imap手册,没想到居然是禁用了,应该是不安全吧 在这里删掉就好了
  • composer create-project --...下面部署到服务器,我是在gitee创建一个仓库,推送到仓库后 创建服务器站点,拉到服务器 执行 composer update 报错:proc_open没有开启 编辑 php.ini ,在 禁用函数中,去掉...
  • 系统:centos 8.0PHP 7.4 + MySQL 8.0 + Apache 2 (环境部署见之前的文章)1、web项目打包将更新代码之后的web项目代码上传到服务器(通过WinScp软件上传)按照WinScp软件的提示输入服务器IP,用户名以及密码等,登录...
  • 随着项目部署服务器越来越多,每次项目部署都需要在每台服务器拉取代码,久而久之,每次部署都消耗大量时间。所以,我们需要找到一个解决方案,简化每次部署代码的操作。 解决方案 本次推荐的工具是walle ...
  • 最近工作项目中经常需要使用将项目部署到腾讯云服务器上,先将大致的流程总结如下: 1,安装第三方源,因为默认的环境中没有nginx等 yum install epel-release 2,安装nginx和php等等 yum install nginx ...
  • 昨天搞了一天的BAE+DJANGO的部署都没成功(原因不详,苦恼中),今天果断的转thinkphp+SAE。部署过程中还是有点挫折的。特此发博客记录下感悟。1. 配置对应应用的mysql数据。2.config中的mysql配置不用重新配置,保存...
  • yii2部署到服务器找不到网页

    千次阅读 2016-03-18 12:30:53
    今天把yii2部署到服务器上去发现怎么也访问不了,在路劲上费了好久时间检查。。。后来看了下文档,才发现要求yii 5.4以上,我的服务器Php是5.3的,坑啊。 所以呢,在服务器上升级php咯, 添加 epel 源rpm -Uvh ...
  • 本文转载自:http://www.kovli.com/2017/09/19/ecs-deploy/作者: Kovli本文详细介绍如何部署NodeJS项目阿里云ECS上,以及本人在部署过程中所遇到的问题、坑点和解决办法,可以说是全网非常详细的教程了。...
  • 步骤三:安装环境(方式:使用LNMP 安装)或BT面板,有些可能不想使用BT面板,那选择前者部署方式。(LNMP即Linux+Nginx+Mysql+Php,linux下包含CentOS/RHEL/Fedora/Debian/Ubuntu等下面官网有详细描述,不赘述。每...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,867
精华内容 746
关键字:

php部署到服务器