LAMP服务器环境搭建及工程部署

这篇文章是我之前讲的环境搭建和项目部署视频讲解的文字版本,由于之前直播录屏的时候没有空闲的服务器进行搭建,所以没有详细的截图等可以展示。

现在刚好我手头有一台vps刚重装完,记录一下搭建的过程。

简介

LAMP环境也就是XAMPP的Linux版本,指的是Linux+Apache+Mysql+PHP的组合,是比较经典的建站环境。

之前提到过,部署LAMP环境主要有以下的几种方式:

  • 包管理安装(用apt-get、yum等逐个安装Apache、mysql、php)

    • 优点:包管理能解决一定的依赖、环境问题
    • 缺点:不可自定义一些特殊功能,还是会存在一定的环境问题
  • 手动编译安装(下载源码编译安装)
    • 优点:完全可自定义(如worker等)
    • 缺点:需要解决大量的环境问题才能顺利编译,不利于快速部署
  • 一键安装脚本
    • 优点:简单快捷,可以选择各个组件的版本,适合新手
    • 缺点:有自定义组件需求的时候比较麻烦,安全问题(夹带私货、挖矿)

一般学习和普通生产用途基本可以无脑选一键安装脚本,我现在使用的这个脚本(https://lamp.sh/)我自己已经使用了好几年,一直比较稳定,提供的帮助也挺好,基本按部就班做就可以成功搭建。

同时还有一个LNMP(Nginx)的一键安装包(https://lnmp.org/),也很好用,我后续演示的腾讯云中使用的就是LNMP。两个的差异主要是http服务器分别是Apache和Nginx,这两个的差异大家可以自行研究。

上手

安装推荐使用交互安装方式(https://lamp.sh/install.html),可以看到

系统需求

  • 系统支持:Amazon Linux 2018.03/Fedora 29/CentOS 6+/Debian 8+/Ubuntu 14+
  • 内存要求:≥ 512MB
  • 硬盘要求:至少 5GB 以上的剩余空间
  • 服务器必须配置好 软件源可连接外网
  • 必须具有系统 root 权限
  • 强烈建议使用全新系统来安装

支持组件

  • 支持 PHP 自带几乎所有组件
  • 支持 SQLite、MySQL、MariaDB、Percona Server 数据库
  • 支持 Yaf(可选安装)
  • 支持 Redis(可选安装)
  • 支持 XCache (可选安装)
  • 支持 Swoole (可选安装)
  • 支持 Memcached (可选安装)
  • 支持 ImageMagick (可选安装)
  • 支持 GraphicsMagick (可选安装)
  • 支持 ionCube Loader (可选安装)
  • 自助升级 Apache,PHP,phpMyAdmin,Adminer,MySQL/MariaDB/Percona Server至最新版本
  • 命令行新增虚拟主机(使用 lamp 命令),操作简便
  • 支持一键卸载程序(不会删除网站数据)

系统需求方面,如果你使用的是云服务器,基本都能达到使用这个脚本的最低要求(如果达不到,使用编译的方法安装估计也够呛)。同时开发常用的组件(redis、memcached)这些手动安装可能会遇到比较多环境问题的也可以一次性配好,很方便。

下面开始安装。这里默认读者已经学会使用ssh连接到服务器并熟悉一些基本Linux命令的操作。其实整个过程只需要按照上面链接的指示复制粘贴命令即可。

我的环境

BandwagonHost SPECIAL 10G KVM PROMO V3 - LOS ANGELES - CN2
1C1T 512M
OS:CentOS7

事前

安装脚本运行所需要的几个依赖

yum -y install wget screen git      // for Amazon Linux/CentOS/Fedora
apt-get -y install wget screen git  // for Debian/Ubuntu

我的环境是CentOS,所以选择上面的yum命令执行。

然后下载脚本、赋予权限

动手

接下来就可以开始安装了,这里也可以看到自己服务器的配置信息

接下来就是一连串的选择了,Apache这里选择1或者直接回车(只有这个了)。httpd是Apache服务器的别名。

这里可以选择一些apache的module,这是脚本安装唯一的自定义性。用不到,所以继续回车默认不安装。

接下来这里可以选择mysql和php的版本,mysql建议选5.7,8.0刚出稳定性和社区支持还没到位,php也是选择默认的7.3即可。注意mysql可以自定义数据路径,如果有需求可以自定义,一般直接默认一路回车即可。注意!!!这里设置的mysql root password一定要记住!

接下来有PHP组件和PHPmyadmin可选,我的项目用到了redis和memcached,所以两个都选择上。phpmyadmin则选择默认即可。

最后一步还有一个Kod什么的可选,我用不到,就不装。然后到这个界面,还可以看到一次mysql 的Root Password,一定要记住。看过没有问题,就可以按任意键开始安装。接下来就是一段漫长的滚代码,时间取决于你服务器的性能和网络环境等。现在就可以开始挂一会儿机了。到最后会提示安装完成。

最后这台机器因为内存不足(可以看到上面只有<512M)所以没有办法完成php的编译安装,所以后面的内容我会使用已经安装好LAMP环境的另一台腾讯云演示。

KodExplorer后面发现是一个商业软件,类似云盘之类的东西,应该是作者的恰饭,有需要可以看看,建议选择不要安装。

虚拟主机添加(可选)

  1. 安装 LAMP 环境
  2. 添加虚拟主机。运行命令:lamp add
    (如果只建一个站,则可以直接将网站程序上传至 /data/www/default 目录下即可)
  3. 上传并解压网站程序到网站目录,默认位置为:/data/www/网站域名/
  4. 更改网站目录权限。以 root 用户登录,运行:chown -R apache:apache /data/www/网站域名/
  5. 运行网站安装程序完成网站安装

这里虚拟主机的意思是你可以绑定多个域名(要先修改域名解析到这个服务器的ip),每个域名各自有一个网站根目录,通过域名直接能访问到不同的网站,但其实还是在同一台服务器上。如果你没有域名,可以直接用ip作为域名。(没必要)

同时,这个脚本里也提供了一键配置https(ssl证书)的功能,只需要上传证书就可以完成配置。

工程部署

程序目录:

  • MySQL 安装目录: /usr/local/mysql
  • MySQL 数据库目录: /usr/local/mysql/data(默认路径,安装时可更改)
  • MariaDB 安装目录: /usr/local/mariadb
  • MariaDB 数据库目录: /usr/local/mariadb/data(默认路径,安装时可更改)
  • Percona 安装目录: /usr/local/percona
  • Percona 数据库目录: /usr/local/percona/data(默认路径,安装时可更改)
  • PHP 安装目录: /usr/local/php
  • Apache 安装目录: /usr/local/apache
  • phpMyAdmin 安装目录: /data/www/default/phpmyadmin
  • KodExplorer 安装目录: /data/www/default/kod

网站目录:

  • 默认的网站根目录: /data/www/default
  • 默认页位置: /data/www/default/index.html
  • 新建网站默认目录: /data/www/网站域名
  • phpmyadmin 后台地址: http://域名或IP/phpmyadmin/
  • phpmyadmin 默认用户名:root 默认密码:root
    (**注:**此密码为 MySQL 的 root 密码。在安装时会要求输入,如不输入则为默认密码 root)
  • XCache 后台地址: http://域名或IP/xcache/
  • XCache 默认用户名:admin 默认密码:123456
    (**注:**用户名和密码在配置文件 /usr/local/php/php.d/xcache.ini 中定义)

配置文件:

  • Apache 日志目录: /usr/local/apache/logs
  • 新建网站日志目录: /data/wwwlog/网站域名
  • Apache 默认 SSL 配置文件: /usr/local/apache/conf/extra/httpd-ssl.conf
  • 新建网站配置文件: /usr/local/apache/conf/vhost/网站域名.conf
  • PHP 配置文件: /usr/local/php/etc/php.ini
  • PHP 所有扩展配置文件目录: /usr/local/php/php.d/
  • MySQL 配置文件: /etc/my.cnf

这里有所有的目录的位置。可以看到,默认的网站根目录在/data/www/default,这个就相当于win下xampp的htdocs文件夹。(如果你配置了虚拟主机,那么根目录在/data/www/YOUR_DOMAIN_NAME

与win下部署方式类似,只需要把php工程文件夹拷贝到网站根目录即可。(题外话:我有前辈以及一些同学习惯直接把项目建在htdocs下,或者整个htdocs就是一个项目,我不提倡这种做法,会对项目管理造成混乱,不是很好的开发习惯。)

传输文件我一般使用PHPstorm的Deployment功能或者使用winscp进行文件的传输。接下来分别介绍一下。

winscp

文件传输我习惯用winscp,这个软件十分简洁,就是一个单纯的文件管理器,没有其他太多的功能,通过sftp协议传输文件,不用另外配置。当然如果你有部署ftp服务,也可以使用其他一些ftp软件如FileZilla等进行管理。

进入winscp,配置好连接,然后点击登录即可。

服务器端(右边)来到/data/www/default(或你的网站根目录,我这里使用的是LNMP,根目录在/home/wwwroot/xxx)。本地端(左边)可以打开到相应的项目目录,也可以用文件管理器打开到相应的项目目录。

将要部署的项目直接拖过去右边/从文件管理器拖过去右边。

如果是更新文件,则选择全部选是,进行替换。

到这里就完成了。

Deployment(jetbrain系IDE可用)

首先需要进行一定的配置。同样以这个tutorial项目为例。

在工具栏找到Tools->Deployment->Configuration...

在弹出的窗口中点击左上角+号,选择sftp,然后输入相应的信息,点击Test Connection,如果成功说明没有问题。

接下来点击Mappings选项卡。选择或输入远程的路径,点确认。

最后,如果你使用的是thinkphp框架,需要排除掉runtime和vendor文件夹(里面放的是运行时文件,容量比较大,而且环境不同没必要同步)。这里需要注意本地路径需要使用绝对路径。

(这里用了另外一个项目的例子,懒得再写了)

配置好后,每次需要上传时,点击里面的upload即可。Sync有代码diff功能,也可以使用这个。

过程到这里就结束了,希望能帮助大家顺利完成部署。

LAMP服务器环境搭建及工程部署相关推荐

  1. ubuntu 下LAMP服务器环境搭建

    操作系统: ubuntu14.04 64bit 1.安装 Apache2: sudo apt-get install apache2 2.安装PHP模块: sudo apt-get install p ...

  2. Docker 技术部署基于 LAMP 服务器环境网站

    目录 一.Docker (一)Docker 容器 (二)Docker 映射 (三)Docker 网络 二.LAMP 服务器环境部署网站 (一)为网站文件创建一个数据卷 (二)为数据库创建一个数据卷 ( ...

  3. 基于阿里云服务器环境搭建到项目上线系列文章之六——项目部署

    基于阿里云服务器环境搭建到项目上线系列 前言:最近购买了域名和一台阿里云服务器准备做点东西放上去,所以准备把环境搭建到项目上线的过程记录下来,计划一个系列6篇文章 基于阿里云服务器环境搭建到项目上线系 ...

  4. Java web小项目_个人主页(1)—— 云环境搭建与项目部署

    摘自:Java web小项目_个人主页(1)-- 云环境搭建与项目部署 作者:丶PURSUING 发布时间: 2021-03-26 23:59:39 网址:https://blog.csdn.net/ ...

  5. python服务器环境搭建(2)——安装相关软件

    在上一篇我们在本地的虚拟服务器上安装好CentOS7后,我们的python web服务.自定义的python service或python脚本需要在服务器上运行,还需要在服务器安装各种相关的软件才行, ...

  6. python服务器搭建nginx_python服务器环境搭建Flask,uwsgi和nginx

    python服务器环境搭建Flask,uwsgi和nginx 环境配置 服务器配置 [部署系统环境Ubuntu] 使用python的Flask框架搭建好网页后台后,便要开始将网站部署到服务器平台了.为 ...

  7. 企业实战(2) 项目环境搭建之Tomcat部署

    前言: Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选.对于一个初学者来说, ...

  8. python服务器环境搭建_python服务器环境搭建(2)——安装相关软件

    在上一篇我们在本地的虚拟服务器上安装好CentOS7后,我们的python web服务.自定义的python service或python脚本需要在服务器上运行,还需要在服务器安装各种相关的软件才行, ...

  9. win2003系统服务器搭建,最新版WIN2003系统服务器环境搭建教程.doc

    最新版WIN2003系统服务器环境搭建教程 ==================================================================== 新网合租特此说明: ...

最新文章

  1. 客快物流大数据项目(四):大数据项目为什么使用Docker
  2. linux c语言中如何通过进程名获取进程PID(awk命令行指令)popen、pclose
  3. 优化算法 sklearn lr
  4. java 堆大小的最大值_优化Java堆大小的5个技巧
  5. C++迭代器的使用和操作总结
  6. [转]html5 Canvas画图教程(1)—画图的基本常识
  7. python webbrowser安装_如何为python webbrows设置BROWSER环境变量
  8. .NetCore使用skywalking实现实时性能监控
  9. 算法设计与分析——递归与分治策略——循环日程赛
  10. Python和Java结合的项目实战_[项目实战] Python高级教程项目实战篇 Python和Java结合的项目实战 视频教程 [...
  11. ie9 css过大,CSS 3后台大小不适用于IE9(CSS 3 background-size not working on IE9)
  12. np.newaxis学习【转载】
  13. 运行Docker时不加sudo
  14. Android SDK大连东软镜像地址及地址列表
  15. vc2008程序发布指南
  16. 百度文库免费下载方法
  17. 使用Bus Hound抓USB转串口数据包,助力问题分析
  18. pyinstaller生成.exe程序报错:缺少.ini文件分析
  19. 本人做了5年Java,直到2018年11月中旬我通过学习拿到年薪80w
  20. 记2017莫名其妙的美团校招安卓岗

热门文章

  1. 又是一年冬至,最喜欢吃冬至茧了
  2. Android编译时注解处理器
  3. 【C语言】输入英文标题,统计大写字母、小写字母、数字和其他字符的个数。
  4. 【论文翻译】Learning from Few Samples: A Survey 小样本学习综述
  5. 性能第三讲:百万级QPS,支撑淘宝双11需要哪些技术
  6. 计算机常用的网络安全技术有哪些,简述计算机的网络安全技术有哪些常用技术?...
  7. 什么是枚举?(个人理解)
  8. 谈谈对MVVM的理解
  9. 面试现场:小伙伴美团一面的分享和分析[含答案]
  10. SQL——PostgreSQL Driver