您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 绵阳分类信息网,免费分类信息发布

手把手教你Linux PHP环境部署与项目上线(分享)

2024/3/25 2:50:07发布14次查看
本篇文章给大家分享linux php环境部署与项目上线有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
一、项目上线部署1、前言要想部署环境上线项目,先具备以下条件:服务器(ip、帐号密码、终端)、相应的软件、域名(备案解析、代码)等。
服务器、域名购买
首先登录控制台,获取需要连接的主机ip地址:
获取到用于连接的公网ip后,即可使用远程终端工具连接上待操作上线的服务器。
远程工具可以使用putty、cmd等,无限制要求。
以centos7.6为例,在购买好服务器并产生实例后,首次登录进系统请先执行“yum -y update”来更新整个系统,防止系统存在漏洞:
2、安装php7在当前系统默认的yum源中,php最新的版本为5.4.16[dy2] ,而需要上线的项目要求最低版本为php7.0,此时,epel[dy3] 恰恰可以解决这的问题。
a. 安装centos7适用的epel
rpm -uvhhttps://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
b. 获取php7的yum源
rpm -uvhhttps://mirror.webtatic.com/yum/el7/webtatic-release.rpm
c. 安装php7.2及其常用扩展
yum install php72w php72w-cli php72w-common php72w-develphp72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlndphp72w-opcache php72w-pdo php72w-xml
d. 测试php安装情况
php -v
3、安装apache2a. 执行安装的yum指令:
yum -y install httpd
b. 设置apache开机启动并且启动apache:
systemctl enable httpd && systemctl start httpd[dy4]
c. 编写一个静态文件和一个php脚本测试apache对于动、静态文件是否解析正常
注意:apache的默认站点位于“/var /www/html”
创建index.html、index.php文件,内容随意:
使用浏览器进行测试访问:
4、安装mariadb[dy5]此处安装的mariadb为mysql的一大分支,在使用上与mysql没有太大的差别。
a. 执行安装指令
yum -y install mariadb-server
b. 启动mariadb服务并且设置开机启动项
systemctl enable mariadb && systemctlstart mariadb
c. 执行初始化mariadb数据库指令(设置初始密码等操作)
mysql_secure_installation[dy6]
d. 尝试使用命令行登录到mariadb
mysql -u root -p
5、域名解析之前做修改hosts文件,其实就是域名解析的一种,当时只是局限于本地,现在要考虑是线上。
要做解析得登录到域名控制面板中去,解析域名之前最好先确保域名已经备案,如果没有备案的域名,则虽然解析会成功,但是会影响使用,在使用的时候会被服务商拦截。
点击添加解析记录按钮:
在弹出的弹窗界面中填写对应的记录信息[dy7] :
使用ping测试:
6、解压代码导入数据库步骤1**:导入sql****文件到数据库中去**
进入数据库的命令行管理界面,创建出需要的数据库edu16,使用source指令导入sql文件:
步骤2**:创建站点的运行目录,将上传好的代码zip****压缩包进行解压,然后将代码复制到站点运行目录中去**
a. 约定站点目录为“/var/www/html”。
创建站点目录:
目录已经存在,不需要创建
b. 复制先前上传的代码压缩包到当前站点目录下,解压压缩包,解压完毕之后可以删除
解压语法:unzip 压缩包路径
此时由于站点入口文件在public目录下,而当前项目的站点在/var/www/html中,缺少个public,所以此时需要修改apache的配置文件中的documentroot一项。
# vim /etc/httpd/conf/httpd.conf
同时赋予临时目录写权限:
解决伪静态的问题(不解决只能访问首页,其他页面都404):
思路:开启当前站点根目录下的allowoverride配置项,设置为all即可,然后重启apache。
7、创建虚拟主机目标:要求上线能够使用https协议进行访问。【提高安全性,增强用户对网站的信心】
a. 申请ssl证书
要想站点支持https协议,先得先去向ca申请服务器证书。目前有很多免费的证书可供申请,例如与阿里云合作的sysmantec一年免费证书,一般免费的证书只能绑定一个域名。除了1年免费的,还有三个月免费的,但是不限次数,不限域名个数,甚至还支持通配符。
以阿里云为例:
https://common-buy.aliyun.com/?spm=5176.2020520163.cas.3.267d56a7ebrcyw&commoditycode=cas#/buy
付款完毕之后点击“待申请证书”:
等待证书签发完成,随后下载证书:
解压压缩包之后得到的证书公私玥文件:
将三个文件上传到服务器上去,并且固定保存路径,尽量不要变化。
约定,将证书公私玥文件存储在“/ssl/”
b. 安装apache的mod_ssl模块
yum -y install mod_ssl
c. 虚拟主机的配置参考(80+443):
注意:yum方式安装的apache的默认主配置文件位于/etc/httpd/conf/httpd.conf
根据主配置文件中的配置可以看出,其引入了conf.d目录下的全部conf文件,那么可以在该目录中创建一个vhosts.conf****文件,作为虚拟主机的配置文件:
80端口主机:
<virtualhost *:80>serveradmin cherish@cherish.pwdocumentroot"path"servername “yourdomain.com”<directory “path”>allow from allallowoverride alloptions -indexesrequire all granted
443端口主机:
<virtualhost *:443>sslengine onsslcertificatefile “公钥文件路径”sslcertificatekeyfile “私钥文件路径”sslcertificatechainfile “证书链文件路径”sslciphersuite"ecdhe-rsa-aes128-gcm-sha256:ecdhe:ecdh:aes:high:!null:!anull:!md5:!adh:!rc4:!dh:!dhe"sslprotocol tlsv1.1 tlsv1.2headeralways set strict-transport-security “max-age=63072000; includesubdomains;preload”documentroot “path”servername “yourdomain.com”<directory “path”>allowfrom allallowoverride alloptions -indexesrequire all granted
创建好之后,参考上述的框框中配置代码,进行修改,其中443端口的虚拟主机配置含义如下:
修改完毕之后保存退出,然后重启apache
systemctl restart httpd
d. 打开浏览器访问项目,检查https协议是否生效
问题,生效虽然生效了,但是https协议需要用户手动去补充,在直接输入域名访问的时候默认还是80的http****协议,如何解决?
答:使用重写的方法,强制用户在访问http的时候跳转到https。操作步骤如下,在站点根目录下的“.htaccess”文件中添加如下代码,保存退出即可:
rewritecond %{https} !=on
rewriterule ^(.*) https://%{server_name}/$1 [r,l]
举手之劳:框架运行的时候报错了,请解决。
错误1**:权限不足**
解决办法:
错误2**:数据库连接失败**
解决办法:修改项目目录下的.env文件
处理完毕之后项目即可访问您的项目了。
[dy1]如搭配使用的服务器在大陆境内,则需要域名先通过icp备案。
[dy2]rhel以及他的衍生发行版如centos、scientific linux为了稳定,官方的rpm repository提供的rpm包往往是很滞后的,当然了,这样做这是无可厚非的,毕竟这是服务器版本,安全稳定才是重点。
[dy3]epel:extra packages of enterpriselinux
[dy4]“指令a && 指令b”语法表示当指令a执行成功之后再去执行指令b。
systemctl指令是centos7中特有的指令,含义如指令名称:systemcontrol。
控制服务开关:
systemctl 开关服务名
启动项管理:
systemctl enable/disable 服务名
[dy5]在centos7的yum源中,数据库软件没有mysql,取而代之的是mariadb。
[dy6]执行该指令后依次有以下几个输入内容:
输入当前数据库root帐号密码,没有密码则直接按回车;
是否设置密码?输入y后,为root用户设置密码;
是否移除匿名用户?选择y;
是否禁止root用户远程登录?y/n均可,不会生效;
是否删除测试的test数据库?选择y/n均可;
是否刷新权限?选择y;
[dy7]常见的几个记录类型:
a记录:将域名指向一个ipv4地址;
cname记录:域名的别名,将一个域名指向另一个域名;
mx记录:一般用于做域名邮箱,将域名指向一个邮件服务器;
推荐学习:《php视频教程》
以上就是手把手教你linux php环境部署与项目上线(分享)的详细内容。
绵阳分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录