当前位置: 首页 > 后端技术 > PHP

ubuntu搭建PHP网站完整实例教程

时间:2023-03-30 01:18:34 PHP

原文在我自己的博客里,小伙伴们也可以点击阅读原文跳转查看,还有好听的背景音乐~我写过两篇关于ubuntu系统之前搭建php环境文章Linux服务器域名绑定到指定目录(ubuntu下apache2绑定多个域名)ubuntu一键安装LAMP环境。在后面的实践中,我发现有些东西没有提到。这里我会补充后面遇到的问题和方法。看一看,作为ubuntu下搭建lamp环境的完整总结。一键安装lamp这里就不介绍了。在我之前的文章Ubuntu一键安装LAMP环境中也有讲解。两个简单的命令就可以打造一盏好灯;(博主在搭建php环境的时候,比较倾向于使用一键安装这种偷懒的方式来搭建(除非场景是每个软件都要单独下载安装,才会一个一个安装),相比之下apache、mysql、php程序一个一个安装,这样效率更高,速度更快,而且配置简单,也可以避免不必要的麻烦)配置数据库远程访问安装好lamp环境之后,下一步就是配置我们的远程mysql用户。这个非常有用,因为在日常的数据库操作中,相比phpmyadmin,我个人更喜欢使用工具来操作数据库。推荐一款友好易用的数据库工具navicatformysql。我从工作开始就一直在使用这个mysql工具进行数据库操作,大大提高了工作效率。言归正传,在一键安装程序中,安装到mysql时,会提示设置Aroot密码。安装完成后,在ubuntu命令行(以下简称命令行)访问mysqlmysql-uroot-p,然后输入密码进入mysql,选择数据库:使用mysql创建用户命令:CREATEUSER'用户名'@'主机'由'密码'标识;示例:创建用户'test'@'localhost'由'test2017666'标识;创建用户'ycfw'@'%'由'ycfw2017666'标识;创建用户'zdip'@'118.119.120.110'由'zdip201766'标识;参数:username:mysqluserpasswordhost:指定用户可以访问数据库的主机(localhost指定只能在本地访问数据库,%表示远程访问,可以在任何地方访问,也可以指定一个ip访问,例如3)密码访问密码用户授权命令:GRANTprivilegesONdatabasename.tablenameTO'username'@'host';示例:GRANTallON*.*TO'test'@'test2017666';(拥有所有数据库的所有操作权限)GRANTallONtest.*TO'test'@'test2017666';(拥有test库所有表操作权限)GRANTselectONtest.testTO'test'@'test2017666';(拥有test数据库的test表的所有查询权限)......参数:privileges:对数据库的操作权限,可以是insert,select,update,delete;all表示授予所有操作权限databasenameandtablename:数据库和数据库名,这里指定可以操作的数据库和数据表,可以单独指定一个数据库或数据表,所有数据库都可以操作Setting*.*'username'@'host':设置授权用户和主机后,执行flushprivileges刷新mysql权限表。这时候,你可以使用新创建的远程用户尝试连接数据库。如果连接建立,那么数据库远程用户的配置就完成了。如果链接不上,继续往下看,修改mysql的配置项;查看授权信息命令:showgrantsfortest@localhostmodifymy.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只能访问locally.如果改成0.0.0.0,任意ip都可以访问。)通过以上配置点,远程mysql用户应该可以访问了。域名绑定域名配置这里不再是域名提供商解析域名为ip的操作,只说apache2中的域名配置。关于apache2的域名绑定。apache2绑定多个域名)基本上介绍的很清楚了,后来发现配置域名的配置文件不需要这么长,只要下面这么一小段就可以了:ServerNamewww.cxiansheng.cnServerAdminwebmaster@localhostDocumentRoot/var/www/cxsblogErrorLog${APACHE_LOG_DIR}/error.logCustomLog${APACHE_LOG_DIR}/access.log合并其余配置软链接配置软链接,该处填写在域名中填写域名和那篇文章的操作差不多;(PS:我们在实际实现多域名绑定的时候,可能总是会出现域名指向某个目录的情况,这时候我们可以把site-available中的000-default.conf删掉试试,或许可以解决这个问题。当然还是要看实际情况)apache2routingrewrite一键安装apache2一般默认是不开启rewrite模块的,我们需要手动开启命令行输入:a2enmodrewrite,它会自动开启apacherewritemodule,在/etc/apache2/mod-enabled中生成一个软链接指向mod-available的rewrite.load。如果我们发现执行该命令后目录下没有生成软链接,我们可以手动生成;命令执行失败,可以手动生成软链接(PS:之所以会这样,是因为我们必须启用这个:一般我们的web项目中都会有一些伪静态(.htaccess)文件,我们把urlrewritingrulesinthisfile.如果rewrite不启用,apache将无法识别这些规则,导致我们网站出现500或其他错误)apache.conf在/etc/apache2目录下找到apache2.conf文件,打开文件,修改网站路径的权限,找到OptionsIndexesFollowSymLinksAllowOverridenoneRequirealldenied修改AllowOverride为all。AllowOverride表示对.htaccess的操作。为none时,.htaccess文件会被忽略,导致我们的伪静态失败,访问web项目有问题;关于配置选项的各个值的含义,请点击下图:以上配置完成后,重启apache,执行/etc/init.d/apache2restart。这时候总结完以上三段的展示,在ubuntu搭建一个lamp环境所需要的操作基本就到这里了。一般情况下,经过以上步骤,网站基本可以搭建成功。当然,在日常的实际操作中,还是会出现一些意想不到的情况,考验我们解决问题的能力。参考文章MySQL5.7添加用户删除用户授权MySQL5.7设置远程访问apache的option命令详解apache的rewrite详解