LAMP服务器环境搭建及thinkphp工程部署
编辑这篇文章是我之前讲的环境搭建和项目部署视频讲解的文字版本,由于之前直播录屏的时候没有空闲的服务器进行搭建,所以没有详细的截图等可以展示。
现在刚好我手头有一台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后面发现是一个商业软件,类似云盘之类的东西,应该是作者的恰饭,有需要可以看看,建议选择不要安装。
虚拟主机添加(可选)
安装 LAMP 环境添加虚拟主机。运行命令:lamp add (如果只建一个站,则可以直接将网站程序上传至 /data/www/default 目录下即可)上传并解压网站程序到网站目录,默认位置为:/data/www/网站域名/更改网站目录权限。以 root 用户登录,运行:chown -R apache:apache /data/www/网站域名/运行网站安装程序完成网站安装
这里虚拟主机的意思是你可以绑定多个域名(要先修改域名解析到这个服务器的ip),每个域名各自有一个网站根目录,通过域名直接能访问到不同的网站,但其实还是在同一台服务器上。如果你没有域名,可以直接用ip作为域名。(没必要)
同时,这个脚本里也提供了一键配置https(ssl证书)的功能,只需要上传证书就可以完成配置。
工程部署
程序目录:MySQL 安装目录: /usr/local/mysqlMySQL 数据库目录: /usr/local/mysql/data(默认路径,安装时可更改)MariaDB 安装目录: /usr/local/mariadbMariaDB 数据库目录: /usr/local/mariadb/data(默认路径,安装时可更改)Percona 安装目录: /usr/local/perconaPercona 数据库目录: /usr/local/percona/data(默认路径,安装时可更改)PHP 安装目录: /usr/local/phpApache 安装目录: /usr/local/apachephpMyAdmin 安装目录: /data/www/default/phpmyadminKodExplorer 安装目录: /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/网站域名.confPHP 配置文件: /usr/local/php/etc/php.iniPHP 所有扩展配置文件目录: /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功能,也可以使用这个。
过程到这里就结束了,希望能帮助大家顺利完成部署。
- 0
- 0
-
赞助
微信赞赏码 -
分享