您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Linux中PHP環境部署與項目上線的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Linux中PHP環境部署與項目上線的示例分析”這篇文章吧。
一、項目上線部署
要想部署環境上線項目,先具備以下條件:服務器(ip、帳號密碼、終端)、相應的軟件、域名(備案解析、代碼)等。
服務器、域名購買
首先登錄控制臺,獲取需要連接的主機ip地址:
獲取到用于連接的公網IP后,即可使用遠程終端工具連接上待操作上線的服務器。
遠程工具可以使用Putty、CMD等,無限制要求。
以CentOS7.6為例,在購買好服務器并產生實例后,首次登錄進系統請先執行“yum -y update”來更新整個系統,防止系統存在漏洞:
在當前系統默認的yum源中,PHP最新的版本為5.4.16[DY2] ,而需要上線的項目要求最低版本為PHP7.0,此時,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及其常用擴展
yum install php72w php72w-cli php72w-common php72w-develphp72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlndphp72w-opcache php72w-pdo php72w-xml
d. 測試PHP安裝情況
php -v
a. 執行安裝的yum指令:
yum -y install httpd
b. 設置Apache開機啟動并且啟動Apache:
systemctl enable httpd && systemctl start httpd[DY4]
c. 編寫一個靜態文件和一個php腳本測試Apache對于動、靜態文件是否解析正常
注意:Apache的默認站點位于“/var /www/html”
創建index.html、index.php文件,內容隨意:
使用瀏覽器進行測試訪問:
此處安裝的Mariadb為MySQL的一大分支,在使用上與MySQL沒有太大的差別。
a. 執行安裝指令
yum -y install mariadb-server
b. 啟動Mariadb服務并且設置開機啟動項
systemctl enable mariadb && systemctlstart mariadb
c. 執行初始化Mariadb數據庫指令(設置初始密碼等操作)
mysql_secure_installation[DY6]
d. 嘗試使用命令行登錄到Mariadb
mysql -u root -p
之前做修改hosts文件,其實就是域名解析的一種,當時只是局限于本地,現在要考慮是線上。
要做解析得登錄到域名控制面板中去,解析域名之前最好先確保域名已經備案,如果沒有備案的域名,則雖然解析會成功,但是會影響使用,在使用的時候會被服務商攔截。
點擊添加解析記錄按鈕:
在彈出的彈窗界面中填寫對應的記錄信息[DY7] :
使用ping測試:
步驟1**:導入sql****文件到數據庫中去**
進入數據庫的命令行管理界面,創建出需要的數據庫edu16,使用source指令導入sql文件:
步驟2**:創建站點的運行目錄,將上傳好的代碼zip****壓縮包進行解壓,然后將代碼復制到站點運行目錄中去**
a. 約定站點目錄為“/var/www/html”。
創建站點目錄:
目錄已經存在,不需要創建
b. 復制先前上傳的代碼壓縮包到當前站點目錄下,解壓壓縮包,解壓完畢之后可以刪除
解壓語法:unzip 壓縮包路徑
此時由于站點入口文件在public目錄下,而當前項目的站點在/var/www/html中,缺少個public,所以此時需要修改apache的配置文件中的DocumentRoot一項。
# vim /etc/httpd/conf/httpd.conf
同時賦予臨時目錄寫權限:
解決偽靜態的問題(不解決只能訪問首頁,其他頁面都404):
思路:開啟當前站點根目錄下的AllowOverride配置項,設置為All即可,然后重啟apache。
目標:要求上線能夠使用https協議進行訪問。【提高安全性,增強用戶對網站的信心】
a. 申請SSL證書
要想站點支持https協議,先得先去向CA申請服務器證書。目前有很多免費的證書可供申請,例如與阿里云合作的Sysmantec一年免費證書,一般免費的證書只能綁定一個域名。除了1年免費的,還有三個月免費的,但是不限次數,不限域名個數,甚至還支持通配符。
以阿里云為例:
https://common-buy.aliyun.com/?spm=5176.2020520163.cas.3.267d56a7EBRcYw&commodityCode=cas#/buy
付款完畢之后點擊“待申請證書”:
等待證書簽發完成,隨后下載證書:
解壓壓縮包之后得到的證書公私玥文件:
將三個文件上傳到服務器上去,并且固定保存路徑,盡量不要變化。
約定,將證書公私玥文件存儲在“/ssl/”
b. 安裝Apache的mod_ssl模塊
yum -y install mod_ssl
c. 虛擬主機的配置參考(80+443):
注意:yum方式安裝的apache的默認主配置文件位于/etc/httpd/conf/httpd.conf
根據主配置文件中的配置可以看出,其引入了conf.d目錄下的全部conf文件,那么可以在該目錄中創建一個vhosts.conf****文件,作為虛擬主機的配置文件:
80端口主機:
<VirtualHost *:80> ServerAdmin cherish@cherish.pw DocumentRoot"PATH" ServerName “yourdomain.com” <Directory “PATH”> Allow from all AllowOverride all Options -indexes Require all granted
443端口主機:
<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
創建好之后,參考上述的框框中配置代碼,進行修改,其中443端口的虛擬主機配置含義如下:
修改完畢之后保存退出,然后重啟apache
systemctl restart httpd
d. 打開瀏覽器訪問項目,檢查https協議是否生效
問題,生效雖然生效了,但是https協議需要用戶手動去補充,在直接輸入域名訪問的時候默認還是80的http****協議,如何解決?
答:使用重寫的方法,強制用戶在訪問http的時候跳轉到https。操作步驟如下,在站點根目錄下的“.htaccess”文件中添加如下代碼,保存退出即可:
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
舉手之勞:框架運行的時候報錯了,請解決。
錯誤1**:權限不足**
解決辦法:
錯誤2**:數據庫連接失敗**
解決辦法:修改項目目錄下的.env文件
處理完畢之后項目即可訪問您的項目了。
[DY1]如搭配使用的服務器在大陸境內,則需要域名先通過ICP備案。
[DY2]RHEL以及他的衍生發行版如CentOS、Scientific Linux為了穩定,官方的rpm repository提供的rpm包往往是很滯后的,當然了,這樣做這是無可厚非的,畢竟這是服務器版本,安全穩定才是重點。
[DY3]EPEL:Extra Packages of EnterpriseLinux
[DY4]“指令A && 指令B”語法表示當指令A執行成功之后再去執行指令B。
systemctl指令是CentOS7中特有的指令,含義如指令名稱:systemcontrol。
控制服務開關:
systemctl 開關服務名
啟動項管理:
systemctl enable/disable 服務名
[DY5]在CentOS7的yum源中,數據庫軟件沒有MySQL,取而代之的是Mariadb。
[DY6]執行該指令后依次有以下幾個輸入內容:
輸入當前數據庫root帳號密碼,沒有密碼則直接按回車;
是否設置密碼?輸入Y后,為root用戶設置密碼;
是否移除匿名用戶?選擇Y;
是否禁止root用戶遠程登錄?Y/n均可,不會生效;
是否刪除測試的test數據庫?選擇Y/n均可;
是否刷新權限?選擇Y;
[DY7]常見的幾個記錄類型:
A記錄:將域名指向一個IPv4地址;
CNAME記錄:域名的別名,將一個域名指向另一個域名;
MX記錄:一般用于做域名郵箱,將域名指向一個郵件服務器;
以上是“Linux中PHP環境部署與項目上線的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。