ubuntu环境搭建 php,ubuntu搭建PHP网站完整实例教程

news/2024/5/9 15:16:32/文章来源:https://blog.csdn.net/weixin_39922769/article/details/115172904

原文是在我自己博客中,小伙伴也可以点阅读原文进行跳转查看,还有好听的背景音乐噢~

e46dac3e73409fbdd5353b5f78f6b4fa.png

之前写过两篇关于ubuntu系统搭建php环境的文章

在之后的多次实践中,发现有些东西还没有说到,这里就把之后遇到的问题以及方法补充一下,作为一个完整的在ubuntu下搭建lamp环境的总结。

一键安装lamp

这里就不多做介绍了,在我之前的文章Ubuntu一键安装LAMP环境也有说明,很简单的两个命令,就可以搭建好lamp;

(博主在搭建php环境的时候,比较倾向于使用一键安装这种懒方式去搭建(除非场景非得是那种各个软件必须单独下载安装的时候,才会一个一个去安装),相较于apache、mysql、php程序一个一个的安装,这样来的更有效率也更快,配置起来也简单,同时也能避免出现不必要的麻烦)

配置数据库远程访问

安装完lamp环境之后,接下来就是配置我们的远程mysql用户了。这一点非常有用,因为在日常的数据库操作中,相较于phpmyadmin这种方法,我个人比较喜欢用工具的方式去操作数据库。推荐一款亲民好用的数据库工具navicat for mysql,工作以来一直使用这款mysql工具进行数据库操作,大大提升了工作效率;

言归正传,在一键安装程序中,安装到mysql的时候,会有提示设置一个root的密码。安装完成之后,在ubuntu命令行(以下简称命令行)访问mysqlmysql -u root -p,随后键入密码进入mysql,选择数据库:use mysql

创建用户

命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';

例子:

CREATE USER 'test'@'localhost' IDENTIFIED BY 'test2017666';

CREATE USER 'ycfw'@'%' IDENTIFIED BY 'ycfw2017666';

CREATE USER 'zdip'@'118.119.120.110' IDENTIFIED BY 'zdip2017666';

参数:

username:mysql用户密码啦

host:指定用户在哪个主机上可以访问数据库(localhost指定只能在本地访问数据库,%指远程访问,任何地方都能访问,也可以指定某个ip访问,例3)

password 访问密码

用户授权

命令:GRANT privileges ON databasename.tablename TO 'username'@'host';

例子:

GRANT all ON *.* TO 'test'@'test2017666';(拥有所有数据库所有操作权限)

GRANT all ON test.* TO 'test'@'test2017666';(拥有test数据库的所有表操作权限)

GRANT select ON test.test TO 'test'@'test2017666';(拥有test数据库test表的所有查询权限)

......

参数:

privileges:对数据库的操作权限,可以是insert、select、update、delete;all为赋予所有操作权限

databasename和tablename:数据库和数据库名称,这里指定可以操作的数据库,数据表,可以指定单独的数据库或者数据表,全部数据库都可操作设置 *.*

'username'@'host':设置授权用户和主机

设置完成,执行flush privileges刷新mysql权限表

这时候,可以用新建的远程用户尝试连接数据库了,如果链接上了,那么数据库远程用户的配置已经完成。如果链接不上,继续往下看修改mysql的配置项;

查看授权信息

命令:show grants for test@localhost

修改my.cnf

如果在新建了远程用户,并通过查看授权信息命令知道新建的远程用户权限没问题的时候,还链接不上。那么可能还需要再做一步操作,修改my.cnf文件里的bind-address参数。

my.con文件在mysq目录下/etc/mysql/,进入到目录后在mysql的配置文件中找到bind-address,原先为bind-address=127.0.0.1,修改为bind-address=0.0.0.0

(PS:1、由于ubuntu的版本不同安装下来的mysql版本可能也会不一样,所以只要找到相关的mysql配置文件进行修改即可(稍后会在文末贴出相关的参考文章,那里描述的更为详细);2、bind-address的意思是绑定地址,原先为127.0.0.1绑定的是只能本地访问,改为0.0.0.0的话就是任何ip都可以访问)

通过以上的几点配置,远程mysql用户应该就可以访问了。

域名绑定

域名配置

这里不再介绍从域名供应商那里解析域名到ip的操作了,直接说在apache2里的域名配置

关于apache2的域名绑定我之前的文章Linux服务器域名绑定指定目录(ubuntu下apache2绑定多域名)里基本上介绍的也很清楚,不过在后来,发现配置域名的配置文件并不需要那么长,只要下面这一小段就好:

ServerName www.cxiansheng.cn

ServerAdmin webmaster@localhost

DocumentRoot /var/www/cxsblog

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

其余的该配置软连接配置软连接,该填写域名的地方填写域名,和那篇文章里的操作差不多了;

(PS:当我们在实际中实现多域名绑定的时候可能老是会出现域名都指向了某一个目录的情况,这时候我们可以把site-available中的000-default.conf删掉试一下,可能会解决这个问题。当然还是要以实际情况为准)

apache2 路由重写

一键安装的apache2中一般不会默认开启rewrite模块,需要我们手动开启

命令行输入:a2enmod rewrite,它会自动开启apache的重写模块,在/etc/apache2/mod-enabled中生成一条软连接指向mod-available的rewrite.load,倘若我们在执行这个命令之后,发现在目录中没有生成软连接,我们手动生成即可;

命令执行失败,也可以手动生成软连接

(PS:必须要开启这个的原因是:一般在我们的web项目中都会有一些写伪静态(.htaccess)文件,我们对于url重写规则都会放在这个文件里,如果rewrite没有开启,那么apache就不能识别这些规则,导致我们的网站出现500或者其他错误)

apache.conf

在/etc/apache2的目录中找到apache2.conf文件,打开文件,修改其中对于网站路的权限问题,找到

Options Indexes FollowSymLinks

AllowOverride none

Require all denied

修改AllowOverride为all,AllowOverride的意思是对.htaccess的操作,为none时会忽略.htaccess文件,导致我们的伪静态失效,访问web项目出现问题;

关于配置option各个值的含义,戳下图:

105f46f9f575a4115970cac2caec4c8b.png

配置好上面之后,重启apache,执行/etc/init.d/apache2 restart,这时候

总结

经过以上三节内容的展示,在ubuntu中搭建lamp环境所必须的操作,基本上都在这里了。一般情况下,经过上面的步骤之后,网站基本上可以搭建成功。当然,在日常的实际操作中,可能还会有一些意想不到的情况发生,到时候就考验我们解决问题的能力了。

参考文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_818698.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Shell脚本一键部署网站服务

以下脚本所涉及到的服务有 IP:dhcp dns:bind Web:apache #!/bin/bash echo "#################################################" echo "## 一键部署dhcpdnsapache服务注意事项 ###" echo "## 1&a…

《大型网站技术架构》核心原理与案例分析

内容简介 本书通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web安全、系统发布、运维监…

AWS S3(vue)+API Gateway+lambda实现无服务网站

0 写在前面的话 公司最近转型serverless要把一些内部CMS和部分外部网站放到AWS上,先简单的实现个S3(vue)API Gatewaylambda的无服务建站的小例子, 感觉一般的网站真心没必要再自己弄EC2了,尤其初创公司,开始公司用户少&#xff0c…

wsdd文件是怎么生成的_这些有趣好玩的免费生成器网站,感觉能玩上一天

创作立场声明:自用推荐,免费网站前言嗨,大家好,我是默咖,一个白天写代码晚上写文章,偶尔做视频的渣渣!最近有点懒洋洋,不想写产品的分享,毕竟拍照修图、写稿改稿有时候会…

php网站数据库在哪,【后端开发】php网站怎么查看数据库

php网站查看数据库的方法:推荐:php服务器连接数据库代码:define("DB_HOST","localhost");define("DB_USER","root");define("DB_PWD","");define("DB_NAME","wo…

常见网站漏洞checklist

0x00、写在前面 在做网站渗透之前除了关注一些通用漏洞,这些漏洞通常能很容易的利用扫描器扫出,被WAF所防护 然而有一些逻辑漏洞WAF和扫描器就无法发现了,就需要人工来测试 根据各行业的特点总结了下网站的常见漏洞checklist 0x01、互联网行业…

将网页部署到github服务器上,用Github部署H5网站(无需服务器)

Step1 :登录到自己的Github,查看代码仓库点击“Repositories”进入自己的代码仓库页面,点击“New”,新建一个代码仓库,用来存放将要上传的网页文件。图1 查看代码仓库Step2 :新建代码仓库进入新建代码仓库页面,填写“R…

批量下载某网站的图片

环境:windows7 ,Python 3.6.7 ,you-get 0.4.1432 ,bat 变量说明: for1 chapters 章节 62184 ~ 62210 for2 jpgNum jpg 1~40 for3 fileFolder 存放每个章节的文件夹 1~50 最初的示例图 测试代码 路径内容&a…

学习Linux的博客和资源网站

个人推荐一些优质学习Linux的博客和网站 1、Katacoda - Interactive Learning Platform for Software Engineers 网页版的交互式软件工程师技术学习平台,可在上面学kubernetes 、 docker 、CICD等知识。 2、骏马金龙 - 博客园 博主骏马金龙 ,学Lin…

记一次网站无法访问的排查思路

2021年1月15日10:36:06 昨晚19点发生了一排机器(不到10台)发生了重启,IDC的李工说超融合服务器的存储出问题了。无法远程服务器,访问web服务。我以为中招incaseformat病毒了。在23:30分修复成功,应该是存储…

记一次网站故障排查过程(nginx 504状态码、 upstream timed out (110: Connection timed out)以及jbd2引起IO高

一、问题描述 客户侧反馈无法正常访问系统,页面转圈,时好时坏,访问不稳定。 二、系统环境: 机器环境:UOS 、 nginx 、php(对接其他服务器kingbase 、钉钉、redis 、KF) ELB:192.…

大型网站限流算法的实现和改造

最近写了一个限流的插件,所以避免不了的接触到了一些限流算法。本篇文章就来分析一下这几种常见的限流算法 分析之前 依我个人的理解来说限流的话应该灵活到可以针对每一个接口来做。比如说一个类里面有5个接口,那么我的限流插件就应该能针对每一个接口就…

Nginx 通过 certbot 为网站自动配置 SSL 证书并续期

目录 一、背景知识1.1、http 和 https 是什么?1.2、SSL/TLS 是什么?1.3、为什么要部署 https?1.4、怎么部署 https 呢?1.5、怎么获得 SSL 安全证书呢?二、Let’s Encrypt 及 Certbot 简介2.1、Authenticators 和 Insta…

部署社区网站,搭建SVN、nginx、PHP,部署MFS并挂载,发布上线

概述: 社交网站的第一个版本部署在LNMP平台之上,前段为Nginx服务器,通过fastcgi协议访问后端的PHP服务器。为了保证数据安全,要求搭建MySQL数据库主从集群。 项目介绍: 本项目案例结合SVN、LNMP和MySQL三种环境&#x…

《大型网站架构技术》系列分享专栏

2019独角兽企业重金招聘Python工程师标准>>> 在这里整理一些大型网站架构方面的技术文章,包括大型网站存储,架构,静态化处理,高并发,高性能方面的问题处理,解决方案等知识 《大型网站架构技术》…

阿里云官方网站免费套餐怎么抢

阿里云推出包含云服务器 ECS、负载均衡、云数据库 RDS、云数据库 Redis 版、云数据库 Mongodb 版、弹性公网 IP、CDN、对象存储 OSS、文件存储 NAS等40核心云产品,6个月免费使用何为免费套餐,其实就是让你先体验,觉得好用,易用&am…

一步步构建大型网站架构

2019独角兽企业重金招聘Python工程师标准>>> 之前我简单向大家介绍了各个知名大型网站的架构,亿万用户网站MySpace的成功秘密、Flickr架构、YouTube网站架构、PlentyOfFish 网站架构学习、WikiPedia技术架构学习笔记。这几个都很典型,我们可以…

html:demo网站学习

学习网站https://www.sc-edu.com 涉及知识如下&#xff1a; 目录HTML < ul> 标签HTML lang 属性HTML 标签的 alt 属性CSS 选择器CSS position绝对定位&#xff1a;absolute relativeCSS background-position 属性CSS3 animation(动画)属性 与 keyframes 规则CSS paddin…

html:写网站时遇到的问题及解决

目录01 绝对路径改相对路径出错&#xff1a;图片无法显示02 两端文字空开&#xff0c;且每行这两端文字对齐03 在一行&#xff0c;一侧显示文字&#xff0c;一侧显示图片04 动画效果&#xff0c;文字乱跑05 padding 和 margin01 绝对路径改相对路径出错&#xff1a;图片无法显示…

四招避免SEO优化过度

在对网站进行优化的过程中&#xff0c;很多人往往会将所看到的优化方法不分青红皂白的一律应用&#xff0c;但这样一来就往往会出现优化过度的现象&#xff0c;优化过度甚至比不优化还要对网站有危害&#xff0c;只需要注意以下四个方面&#xff0c;就可以避免在优化网站中经常…