【FindAndLost】TP5后端项目腾讯云部署

参考两篇博文

https://blog.csdn.net/github_38336924/article/details/82459078

https://blog.csdn.net/qq895767507/article/details/52121289

一、购机搭环境

1、认证后购买腾讯云1core2G内存的学生机,1个月+域名购买=10+8元,

2、安装了apache2,libapache2-mod-php7.2 让apache支持php7.2,也就是说能够解析php7.2。

$sudo apt-get install apache2 libapache2-mod-php7.2

3、安装了mysql-server和mysql-client

$sudo apt-get install mysql-server mysql-client 

3.1、解决安装最后未提示设置root密码

3.1.0、系统默认会给我们分配的用户名和密码,通过这个密码就可以直接对MySQL进行操作了。

3.1.1、获取系统默认分配的用户名和密码

$sudo vim /etc/mysql/debian.cnf


可以看到里面有:

user = debian-sys-maint

password = XjBYK4rKNMWX9JDX

3.1.2、修改root密码

$ mysql -u debian-sys-maint -p
然后输入密码,密码就上面的说的,我的是:XjBYK4rKNMWX9JDX 

mysql> update mysql.user set authentication_string=password('new password') where user='root' and Host ='localhost';
mysql> use mysql;
mysql> update user set plugin="mysql_native_password"; 
mysql> flush privileges;
mysql> quit;

3.1.3、重启mysql服务

sudo service mysql restart

4、安装phpmyadmin

  • sudo apt-get install phpmyadmin 
    phpmyadmin设置: 
    在安装过程中会要求选择Web server:apache2或lighttpd,使用空格键选定apache2,按tab键然后确定。然后会要求输入设置的Mysql数据库密码连接密码Password of the database’s administrative user。 
    然后将phpmyadmin与apache2建立连接,以我的为例:www目录在/var/www,phpmyadmin在/usr/share /phpmyadmin目录,所以就用命令:

  • sudo ln -s /usr/share/phpmyadmin /var/www 
    建立链接。 
    phpmyadmin测试:在浏览器地址栏中打开http://公网IP/phpmyadmin。 
    以上ALMP的基本组件就安装完毕了,下面我们再来看一些其他的设置: 
    步骤五,设置Ubuntu文件执行读写权限 
    LAMP组建安装好之后,PHP网络服务器根目录默认设置是在:/var/www。由于Linux系统的安全性原则,改目录下的文件读写权限是只允许root用户操作的,所以我们不能在www文件夹中新建php文件,也不能修改和删除,必须要先修改/var/www目录的读写权限。在界面管理器中通过右键属性不能修改文件权限,得执行root终端命令:

  • sudo chmod -R 777 /var/www/html 

 

参考原文:https://blog.csdn.net/u014570569/article/details/83275780 ,采坑记录

二、上传项目并配置

1、使用Xftp上传本地项目文件到服务器/var/www/html目录下 //Xftp是商用软件,这里使用 Filezilla,走sftp协议
2、在Apache中配置VirtualHost,笔者使用软连接方式方便以后项目多了好管理

# /etc/apache2/sites-available目录下新建配置文件 foundlost.conf
# 写入如下的内容:

<VirtualHost *:80>
    ServerName demo.com # 你的域名,必须保证域名已经绑定服务器IP
    DocumentRoot /var/www/html/项目 # 你的项目路径
    <Directory /var/www/html/项目>
      Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
  # 日志输出路径
    ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

注:上述 CustomLog 末尾加一个 common

使用软连接将新建的配置文件连接到/etc/apache2/sites-enabled目录下

cd /etc/apache2/sites-enabled
ln -s /etc/apache2/sites-available/foundlost.conf foundlost.conf


重启Apache,在浏览器中输入正确的项目网址,即完成。
 

为TP项目设置路由,隐藏网站访问路径中的index.php

解决办法:
1、在TP5项目的配置文件中开启路由 //这一步跳过

// 文件路径~/application/config.php
// 是否开启路由
'url_route_on'           => true,
// 路由使用完整匹配
'route_complete_match'   => false,
// 路由配置文件(支持配置多个)
'route_config_file'      => ['route'],
// 是否强制使用路由
'url_route_must'         => true,// true或false看个人


2、在~/application/route.php文件中创建路由规则 //这一步跳过

<?php

return [
    'newtest' => 'api/API/newTest'// 可以创建多个,这里以一个为例
];


3、修改与项目入口文件在同一级下的.htaccess文件,修改rewrite规则,一般路径为~/public/.htaccess 

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

注:这里我修改了本地文件后上传覆盖

4、在Apache中开放rewrite模块,在/etc/apache2/mods-enabled中建立rewrite.load的软连接

cd /etc/apache2/mods-enabled
ln -s /etc/apache2/mods-available/rewrite.load rewrite.load

5、重启Apache
6、如果不行,检查一下/etc/apache2/apache2.conf文件中的AllowOverride None是否已经改为AllowOverride All
 

本地测试报 requested Url not found on the server 

解决步骤如下:

1、浏览器输入 foundlost7.cn 发现虽然购买了域名,但是还没有绑定到IP,因此修改

<VirtualHost *:80>
    ServerName foundlost7.cn ==> IP地址
    DocumentRoot /var/www/html/foundlost 
    <Directory /var/www/html/foundlost>
      Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log common
</VirtualHost>

2、重写开启,修改/etc/apache2/apache2.conf


<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All //None --> All
        Require all granted //denied --> granted
</Directory>

通过 $sudo a2enmod rewrite 若提示重写模块已打开,则证明打开成功

 

3、排除了重写,搜索.htaccess要怎么写,看到了以下一篇利用.htaccess配置缩短访问路由的文章,意识到之前学习开发的时候在本机运行的时候,利用了apache的虚拟主机配置,做了同样的事,去掉了public,直接foundlost.org带上配置的路由规则就能访问(eg: http://foundlost.org/api/v1/book )。由于tp5的目录结构,/public 目录下的index是 foundlost项目的入口,因此在路由增加/public http://IP:80/public/API,成功响应。

http://www.tp5.com/public/index.php/a

这样太长不好看可改

打开public,找到重写文件.htaccess 修改

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

改为

RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]

这样就可以访问:

http://www.tp5.com/public/a

但是,还想吧public 去掉

可在配置域名或者ip指向目录路径的时候多加上xxxx/public

即可

http://www.tp5.com/a

响应截图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值