溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

發(fā)布時(shí)間:2021-06-07 10:03:28 來源:億速云 閱讀:177 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析”這篇文章吧。

一、項(xiàng)目上線部署

1、前言

要想部署環(huán)境上線項(xiàng)目,先具備以下條件:服務(wù)器(ip、帳號(hào)密碼、終端)、相應(yīng)的軟件、域名(備案解析、代碼)等。

服務(wù)器、域名購買

首先登錄控制臺(tái),獲取需要連接的主機(jī)ip地址:

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

獲取到用于連接的公網(wǎng)IP后,即可使用遠(yuǎn)程終端工具連接上待操作上線的服務(wù)器。

遠(yuǎn)程工具可以使用Putty、CMD等,無限制要求。

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

以CentOS7.6為例,在購買好服務(wù)器并產(chǎn)生實(shí)例后,首次登錄進(jìn)系統(tǒng)請先執(zhí)行“yum -y update”來更新整個(gè)系統(tǒng),防止系統(tǒng)存在漏洞:

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

2、安裝PHP7

在當(dāng)前系統(tǒng)默認(rèn)的yum源中,PHP最新的版本為5.4.16[DY2] ,而需要上線的項(xiàng)目要求最低版本為PHP7.0,此時(shí),EPEL[DY3] 恰恰可以解決這的問題。

a. 安裝CentOS7適用的epel

 rpm -Uvhhttps://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

b. 獲取PHP7的yum源

rpm -Uvhhttps://mirror.webtatic.com/yum/el7/webtatic-release.rpm

c. 安裝PHP7.2及其常用擴(kuò)展

yum install php72w php72w-cli php72w-common php72w-develphp72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlndphp72w-opcache php72w-pdo php72w-xml

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析


d. 測試PHP安裝情況

php -v

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

3、安裝Apache2

a. 執(zhí)行安裝的yum指令:

yum -y install httpd

b. 設(shè)置Apache開機(jī)啟動(dòng)并且啟動(dòng)Apache:

systemctl enable httpd && systemctl start httpd[DY4]

c. 編寫一個(gè)靜態(tài)文件和一個(gè)php腳本測試Apache對(duì)于動(dòng)、靜態(tài)文件是否解析正常

注意:Apache的默認(rèn)站點(diǎn)位于“/var /www/html

創(chuàng)建index.html、index.php文件,內(nèi)容隨意:

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

使用瀏覽器進(jìn)行測試訪問:

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

4、安裝Mariadb[DY5]

此處安裝的Mariadb為MySQL的一大分支,在使用上與MySQL沒有太大的差別。

a. 執(zhí)行安裝指令

yum -y install mariadb-server

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

b. 啟動(dòng)Mariadb服務(wù)并且設(shè)置開機(jī)啟動(dòng)項(xiàng)

systemctl enable mariadb && systemctlstart mariadb

c. 執(zhí)行初始化Mariadb數(shù)據(jù)庫指令(設(shè)置初始密碼等操作)

mysql_secure_installation[DY6]

d. 嘗試使用命令行登錄到Mariadb

mysql -u root -p

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

5、域名解析

之前做修改hosts文件,其實(shí)就是域名解析的一種,當(dāng)時(shí)只是局限于本地,現(xiàn)在要考慮是線上。

要做解析得登錄到域名控制面板中去,解析域名之前最好先確保域名已經(jīng)備案,如果沒有備案的域名,則雖然解析會(huì)成功,但是會(huì)影響使用,在使用的時(shí)候會(huì)被服務(wù)商攔截。

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

點(diǎn)擊添加解析記錄按鈕:

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

在彈出的彈窗界面中填寫對(duì)應(yīng)的記錄信息[DY7] :

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

使用ping測試:

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

6、解壓代碼導(dǎo)入數(shù)據(jù)庫

步驟1**:導(dǎo)入sql****文件到數(shù)據(jù)庫中去**

進(jìn)入數(shù)據(jù)庫的命令行管理界面,創(chuàng)建出需要的數(shù)據(jù)庫edu16,使用source指令導(dǎo)入sql文件:

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

步驟2**:創(chuàng)建站點(diǎn)的運(yùn)行目錄,將上傳好的代碼zip****壓縮包進(jìn)行解壓,然后將代碼復(fù)制到站點(diǎn)運(yùn)行目錄中去**

a. 約定站點(diǎn)目錄為“/var/www/html”。

創(chuàng)建站點(diǎn)目錄:

目錄已經(jīng)存在,不需要?jiǎng)?chuàng)建

b. 復(fù)制先前上傳的代碼壓縮包到當(dāng)前站點(diǎn)目錄下,解壓壓縮包,解壓完畢之后可以刪除

解壓語法:unzip 壓縮包路徑

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

此時(shí)由于站點(diǎn)入口文件在public目錄下,而當(dāng)前項(xiàng)目的站點(diǎn)在/var/www/html中,缺少個(gè)public,所以此時(shí)需要修改apache的配置文件中的DocumentRoot一項(xiàng)。

# vim /etc/httpd/conf/httpd.conf
Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

同時(shí)賦予臨時(shí)目錄寫權(quán)限:

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析
解決偽靜態(tài)的問題(不解決只能訪問首頁,其他頁面都404):

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

思路:開啟當(dāng)前站點(diǎn)根目錄下的AllowOverride配置項(xiàng),設(shè)置為All即可,然后重啟apache。

7、創(chuàng)建虛擬主機(jī)

目標(biāo):要求上線能夠使用https協(xié)議進(jìn)行訪問?!咎岣甙踩?,增強(qiáng)用戶對(duì)網(wǎng)站的信心】

a. 申請SSL證書

要想站點(diǎn)支持https協(xié)議,先得先去向CA申請服務(wù)器證書。目前有很多免費(fèi)的證書可供申請,例如與阿里云合作的Sysmantec一年免費(fèi)證書,一般免費(fèi)的證書只能綁定一個(gè)域名。除了1年免費(fèi)的,還有三個(gè)月免費(fèi)的,但是不限次數(shù),不限域名個(gè)數(shù),甚至還支持通配符。

以阿里云為例:

https://common-buy.aliyun.com/?spm=5176.2020520163.cas.3.267d56a7EBRcYw&commodityCode=cas#/buy

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

付款完畢之后點(diǎn)擊“待申請證書”:
Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析
Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析
Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

等待證書簽發(fā)完成,隨后下載證書:

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

解壓壓縮包之后得到的證書公私玥文件:

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

將三個(gè)文件上傳到服務(wù)器上去,并且固定保存路徑,盡量不要變化。

約定,將證書公私玥文件存儲(chǔ)在“/ssl/”
Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

b. 安裝Apache的mod_ssl模塊

yum -y install mod_ssl

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

c. 虛擬主機(jī)的配置參考(80+443):

注意:yum方式安裝的apache的默認(rèn)主配置文件位于/etc/httpd/conf/httpd.conf

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

根據(jù)主配置文件中的配置可以看出,其引入了conf.d目錄下的全部conf文件,那么可以在該目錄中創(chuàng)建一個(gè)vhosts.conf****文件,作為虛擬主機(jī)的配置文件:

80端口主機(jī):

<VirtualHost *:80>
ServerAdmin cherish@cherish.pw
DocumentRoot"PATH"
ServerName “yourdomain.com”
<Directory “PATH”>
Allow from all
AllowOverride all
Options -indexes
Require all granted

443端口主機(jī):

<VirtualHost *:443>
SSLEngine on
SSLCertificateFile “公鑰文件路徑”
SSLCertificateKeyFile “私鑰文件路徑”
SSLCertificateChainFile “證書鏈文件路徑”
SSLCipherSuite"ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE"
SSLProtocol TLSv1.1 TLSv1.2
Headeralways set Strict-Transport-Security “max-age=63072000; includeSubdomains;preload”
DocumentRoot “PATH”
ServerName “yourdomain.com”
<Directory “PATH”>
Allowfrom all
AllowOverride all
Options -indexes
Require all granted

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

創(chuàng)建好之后,參考上述的框框中配置代碼,進(jìn)行修改,其中443端口的虛擬主機(jī)配置含義如下:
Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

修改完畢之后保存退出,然后重啟apache

systemctl restart httpd

d. 打開瀏覽器訪問項(xiàng)目,檢查https協(xié)議是否生效

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

問題,生效雖然生效了,但是https協(xié)議需要用戶手動(dòng)去補(bǔ)充,在直接輸入域名訪問的時(shí)候默認(rèn)還是80的http****協(xié)議,如何解決?

答:使用重寫的方法,強(qiáng)制用戶在訪問http的時(shí)候跳轉(zhuǎn)到https。操作步驟如下,在站點(diǎn)根目錄下的“.htaccess”文件中添加如下代碼,保存退出即可:
Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

RewriteCond %{HTTPS} !=on

RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]

舉手之勞:框架運(yùn)行的時(shí)候報(bào)錯(cuò)了,請解決。

錯(cuò)誤1**:權(quán)限不足**
Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

解決辦法:
Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

錯(cuò)誤2**:數(shù)據(jù)庫連接失敗**

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

解決辦法:修改項(xiàng)目目錄下的.env文件

Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析

處理完畢之后項(xiàng)目即可訪問您的項(xiàng)目了。


[DY1]如搭配使用的服務(wù)器在大陸境內(nèi),則需要域名先通過ICP備案。

[DY2]RHEL以及他的衍生發(fā)行版如CentOS、Scientific Linux為了穩(wěn)定,官方的rpm repository提供的rpm包往往是很滯后的,當(dāng)然了,這樣做這是無可厚非的,畢竟這是服務(wù)器版本,安全穩(wěn)定才是重點(diǎn)。

[DY3]EPEL:Extra Packages of EnterpriseLinux

[DY4]“指令A(yù) && 指令B”語法表示當(dāng)指令A(yù)執(zhí)行成功之后再去執(zhí)行指令B。

systemctl指令是CentOS7中特有的指令,含義如指令名稱:systemcontrol。

控制服務(wù)開關(guān):

systemctl 開關(guān)服務(wù)名

啟動(dòng)項(xiàng)管理:

  • systemctl enable/disable 服務(wù)名

  • [DY5]在CentOS7的yum源中,數(shù)據(jù)庫軟件沒有MySQL,取而代之的是Mariadb。

  • [DY6]執(zhí)行該指令后依次有以下幾個(gè)輸入內(nèi)容:

  • 輸入當(dāng)前數(shù)據(jù)庫root帳號(hào)密碼,沒有密碼則直接按回車;

  • 是否設(shè)置密碼?輸入Y后,為root用戶設(shè)置密碼;

  • 是否移除匿名用戶?選擇Y;

  • 是否禁止root用戶遠(yuǎn)程登錄?Y/n均可,不會(huì)生效;

  • 是否刪除測試的test數(shù)據(jù)庫?選擇Y/n均可;

  • 是否刷新權(quán)限?選擇Y;

[DY7]常見的幾個(gè)記錄類型:

A記錄:將域名指向一個(gè)IPv4地址;

CNAME記錄:域名的別名,將一個(gè)域名指向另一個(gè)域名;

MX記錄:一般用于做域名郵箱,將域名指向一個(gè)郵件服務(wù)器;

以上是“Linux中PHP環(huán)境部署與項(xiàng)目上線的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI