【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

響應截圖:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章