阿里云LAMP服务器购买配置(连接远程数据库,安装环境)以及 TP5框架项目部署到服务器上

       最近买了阿里云服务器,准备用来当做协会后端服务器来使用,第一次买服务器来部署后端的代码,陌生的东西总是让人感到无从下手,一步步踩坑吧,踩了许多坑之后,终于是把TP5写的项目部署到服务器上了。下面就来从购买服务器开始说说过程吧。

先到阿里云官网,找到学生优惠(博主还是学生,可以享受阿里云提供的优惠的学生服务器嘿嘿),购买过程就略啦,

最后买了lamp的服务器,偷个懒,因为上面把php环境搭好了。

然后进入控制台,按照上面的提示,一步步操作啦,可以自己去买个域名绑定下,这个过程就略啦,一步步上面写的很清楚如下

 

要开始写项目,当然先要连下远程数据库啦,首先按照界面的提示,先获取到远程数据库密码,

接下来用账号密码,本地直接连远程数据库,当然是失败的,这时候就要配置下给所有的ip都可以访问远程数据库的权限啦。

   首先打开连接远程数据库,输入 mysql  -u root -p 输入账号密码,进入远程mysql数据库。

注意这时候可能就会出现错误啦,会提示

root@DB-02 ~]# mysql -u root
-bash: mysql: command not found

遇上-bash: mysql: command not found的情况别着急,这个是因为/usr/local/bin目录下缺失mysql导致,只需要一下方法建立软链接,即可以解决:

把mysql安装目录,比如MYSQLPATH/bin/mysql,映射到/usr/local/bin目录下: 
# cd /usr/local/bin
# ln -fs /MYSQLPATH/bin/mysql mysql

比如mysql的路径是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令:

# ln -s /usr/local/mysql/bin/mysql /usr/bin

还有其它常用命令mysqladmin、mysqldump等不可用时候都可按用此方法解决。

还有种方法,直接进入安装路径的bin 下执行命令也可以,比如

好了,这样进入数据库后,接下来开始配置远程数据库,回到控制台界面

配置MySQL:

1:添加阿里云安全组规则的MySQL 3306端口

 点击左侧导航栏防火墙

 

 

点击添加安全组规则

设置协议类型为MySQL3306 

 

2:打开更改MySQL配置文件(这一步我没配置,可以跳过,进行下一步,如果失败再来执行此步骤)

1:打开配置文件 vi /etc/mysql/mysql.conf.d/mysqld.cnf (要有权限才能更改)

2:注释掉只允许本地访问的这一行 address = 127.0.0.1

       或者将改成允许地址改成 0.0.0.0

 

3:在MySQL用户表添加用户并将host设置未所有IP都能访问

登录:mysql -u root -h localhost -p

打开数据库:use mysql

可以给root用户设置为所有ip都可访问:

update user set host='%' where user='root' and host='localhost';

刷新权限:flush privileges;

查看用户权限:select host,user from user; 

退出MySQL exit

重启之后,用navicate本地测试之后,你就会发现,已经连接成功啦

这时候你会发现这密码。。太繁琐了,想改成简单的密码。。让我们再进入user表,

这时候又遇到坑了。。你会发现写了无数次的sql更新语句,一直提示你找不到password字段。。。

ERROR 1054 (42S22): Unknown column 'password' in 'field list'

然后百度找了几次坑,发现字段改了??wtf??好吧,那这个坑就解决了,

改成了 authentication_string

update user set authentication_string=PASSWORD('123456') where user='root'and host="%";

之后改完密码就可以快乐的连上数据库了。

 


那接下来就是把本地写好的TP5项目部署到服务器上了,打开远程服务器的根目录

可以看到根目录所在

部署项目的时候,可以用xshll+ftp,把项目拉到服务器上,比较省事,

然后打开xftp,连接上远程服务器后,我们把项目整个拉到根目录下。理论上来说,应该可以运行了,

结果本地postman测试了下接口??WTF?? 又出问题了。。

好吧,我们继续来填坑。应该是路径错误,在我们测试路径的时候,前面加上项目名和public,tp5的项目里接口就能测试了。

继续,因为还没备案域名,就先用端口来访问网站啦。

信心满满的打开了网站,访问路径加上了文件名和public,发现tp5的后台直接瘫痪了。。如下:

WTF??这。。跟我想象中的完全不一样啊。。

好吧,继续来填坑。

上网搜了搜,要先配置下apache的端口,以便之后访问不同的项目,可能是这个原因,不管了先试一下。

虽然现在 Nginx 才是 Web 服务器的首选 ,因为服务器器上预装了apache,就懒的去装Nginx了。

那接下来,开始配置apache的端口吧。

找到apache的路径,可以在控制台看到安装路径

第一步,将Apache/ conf/http.conf中目录改为我们的文件目录(项目名software)

<VirtualHost *:80>
	ServerName 120.79.45.183
	DocumentRoot "/home/www/htdocs/software/public"
	<Directory  "/home/www/htdocs/software/public/">
		AllowOverride All
		Require all granted
	</Directory>
</VirtualHost>

第二步,配置PHP支持目录

<Files ~ "health_check.html">
  Require all denied
</Files>

ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/home/www/logs/php-fpm.sock|fcgi://120.79.45.183/home/www/htdocs/software/public

完成配置后,还要将Apache/ conf/extra/目录下的的httpd-vhost.conf中目录修改成项目地址

<VirtualHost *:80>
    ServerAdmin webmaster@serveradmin.com
    DocumentRoot "/home/www/htdocs/software/public"
    ServerName 120.79.45.183
    ServerAlias serveralias.com
</VirtualHost>

之后重启apache(根据自己的项目路径)

/usr/local/apache/bin/apachectl restart 

配置完成之后,访问时,就不用加上项目名和public,tp5框架的访问路径和本地一样。如果添加其他端口,需要监听,这些就自行百度啦。

postman测试成功,按理说,这时候,跟本地路径一抹一样了,总该可以访问到了吧。。。。现实很残酷。。

访问网站,还是一如既往的500,找不到css和js的路径??

在反复配置了apache,重置了服务器镜像,搞了一天发现还是没有屁用之后,觉得自己是个傻逼。为什么不去看下错误日志。

打开远程连接服务器,

打开错误日志,可以看到是

/software/public/themes/.htaccess   文件出了问题,

这时候要安利一个超级无敌强的网站了  Stack Overflow 网址:http://stackoverflow.com/

” stackoverflow” 是个国外的论坛网站,计算机技术交流社区,基本上我们现在遇到的问题,在那里都可以找到相关的答案,我们中文遇到的问题,在那里,全世界的人民早就遇到过了。就是都是英文。。看来学好英语还是很重要。

评论完美解决。apache2.4的版本导致,需改动一下这个配置文件

打开tp5框架,

发现上面有个文件关于apache2.4的。。复制内容,替换上面的。htaccess文件仔部署,

不过太麻烦了,可以直接连接远程服务器,

vim /home/www/htdocs/software/public/themes/.htaccess
学一下vim基础的指令,用vim修改一下里面的内容也行。

反正改了之后。。问题完美解决。简单的配置搞了一天,解决完这个bug之后,简直是一口老血喷在屏幕上。。

那接下来,就把整个后台的tp5项目成功搬到了自己的服务器上。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值