首頁  >  文章  >  後端開發  >  手把手教你Linux PHP環境部署與專案上線(分享)

手把手教你Linux PHP環境部署與專案上線(分享)

慕斯
慕斯轉載
2021-06-07 09:49:575588瀏覽

這篇文章給大家分享Linux PHP環境部署與專案上線#有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

手把手教你Linux PHP環境部署與專案上線(分享)

一、專案上線部署

1、前言

要部署環境上線項目,先具備以下條件:伺服器(ip、帳號密碼、終端)、對應的軟體、網域名稱(備案解析、代碼)等。

伺服器、網域購買

先登入控制台,取得需要連線的主機ip位址:

手把手教你Linux PHP環境部署與專案上線(分享)

##取得到用於連接的公用IP後,即可使用遠端終端工具連接上待操作上線的伺服器。

遠端工具可以使用Putty、CMD等,無限制需求。

手把手教你Linux PHP環境部署與專案上線(分享)

以CentOS7.6為例,購買好伺服器並產生實例後,第一次登入系統請先執行「yum -y update」更新整個系統,防止系統有漏洞:

手把手教你Linux PHP環境部署與專案上線(分享)

2、安裝PHP7

在目前系統預設的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

手把手教你Linux PHP環境部署與專案上線(分享)


d. 測試PHP安裝狀況

php -v

手把手教你Linux PHP環境部署與專案上線(分享)

#3、安裝Apache2

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文件,內容隨意:

#使用瀏覽器進行測試存取:

手把手教你Linux PHP環境部署與專案上線(分享)

#4、安裝Mariadb[DY5]

這裡安裝的Mariadb為MySQL的一大分支,在使用上與MySQL沒有太大的差異。

a.執行安裝指令

yum -y install mariadb-server

手把手教你Linux PHP環境部署與專案上線(分享)

b. 啟動Mariadb服務並且設定開機啟動項目

systemctl enable mariadb && systemctlstart mariadb

c. 執行初始化Mariadb資料庫指令(設定初始密碼等操作)

mysql_secure_installation[DY6]

d. 嘗試使用命令列登入Mariadb

mysql -u root -p

手把手教你Linux PHP環境部署與專案上線(分享)

##5 、網域解析

之前做修改hosts文件,其實就是網域解析的一種,當時只是侷限於本地,現在要考慮是線上。

要做解析得登入域名控制面板中去,解析域名之前最好先確保域名已經備案,如果沒有備案的域名,則雖然解析會成功,但是會影響使用,在使用的時候會被服務商攔截。

手把手教你Linux PHP環境部署與專案上線(分享)

點選新增解析記錄按鈕:

手把手教你Linux PHP環境部署與專案上線(分享)

#在彈出的彈窗介面中填入對應的記錄資訊[DY7 ] :

手把手教你Linux PHP環境部署與專案上線(分享)

使用ping測試:

手把手教你Linux PHP環境部署與專案上線(分享)

6. Разархивируйте код и импортируйте его в базу данных

Шаг 1**: Импортируйте файл sql**** в базу данных. база данных**

Войдите в интерфейс управления базой данных из командной строки, создайте необходимую базу данных edu16 и используйте исходную команду для импорта файла sql:

手把手教你Linux PHP環境部署與專案上線(分享)

Шаг 2

* *: Создайте рабочий каталог сайта, распакуйте загруженный zip-пакет с кодом****, а затем скопируйте код в рабочий каталог сайта**

a. Каталог сайта должен иметь вид «/var /www/html».

Создать каталог сайта:

Каталог уже существует, создавать его не нужно

b. Скопируйте ранее загруженный сжатый пакет кода в текущий каталог сайта, распакуйте сжатый файл. пакет, и распаковка завершена. Вы можете удалить его позже

Синтаксис декомпрессии: распакуйте путь к сжатому пакету手把手教你Linux PHP環境部署與專案上線(分享)

В настоящее время, поскольку файл записи сайта в общедоступном каталоге, а сайт текущего проекта находится в /var. В /www/html отсутствует общедоступный файл, поэтому вам необходимо изменить элемент DocumentRoot в файле конфигурации Apache.
手把手教你Linux PHP環境部署與專案上線(分享)# vim /etc/httpd/conf/httpd.conf

手把手教你Linux PHP環境部署與專案上線(分享)

#Также предоставьте разрешение на запись во временный каталог:

手把手教你Linux PHP環境部署與專案上線(分享)

Решите псевдостатическую проблему (если вы ее не решите, вы сможете получить доступ только к главной странице, а другие страницы получат 404):

手把手教你Linux PHP環境部署與專案上線(分享)

Идея: откройте корневой каталог элемента конфигурации AllowOverride текущего сайта, установите для него значение «Все», а затем перезапустите Apache.

7.Создать виртуальный хост

Цель: Требуется, чтобы доступ к онлайн-серверу был возможен по протоколу https. [Повышение безопасности и повышение доверия пользователей к веб-сайту]

a. Подайте заявку на сертификат SSL

Если вы хотите, чтобы ваш сайт поддерживал протокол https, вы должны сначала подать заявку на сертификат сервера от CA. В настоящее время существует множество бесплатных сертификатов, доступных для применения, например, бесплатный сертификат Sysmantec сроком на один год в сотрудничестве с Alibaba Cloud. Как правило, бесплатные сертификаты могут быть привязаны только к одному доменному имени. Помимо одного года бесплатного обслуживания, есть еще три месяца бесплатного обслуживания, но нет ограничений на количество раз, количество доменных имен и даже поддерживаются подстановочные знаки.

В качестве примера рассмотрим Alibaba Cloud:

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

手把手教你Linux PHP環境部署與專案上線(分享)


После оплаты нажмите «Сертификат для подачи заявки»: 手把手教你Linux PHP環境部署與專案上線(分享)
手把手教你Linux PHP環境部署與專案上線(分享)

手把手教你Linux PHP環境部署與專案上線(分享)
手把手教你Linux PHP環境部署與專案上線(分享)

# Дождитесь завершения выдачи сертификата, а затем загрузите сертификат:

手把手教你Linux PHP環境部署與專案上線(分享)

Файлы общедоступного и частного сертификата, полученные после распаковки сжатого пакета:

手把手教你Linux PHP環境部署與專案上線(分享)

Загрузите три файла на сервер, исправьте путь сохранения и постарайтесь не менять его.

Договорено хранить общедоступные и частные файлы сертификатов в "/ssl/"
手把手教你Linux PHP環境部署與專案上線(分享)

b. Установите модуль Apache mod_ssl

yum -y install mod_ssl

手把手教你Linux PHP環境部署與專案上線(分享)

c.Справочник по конфигурации виртуального хоста (80 443):

Примечание: apache установлен способом yum # Основной файл конфигурации по умолчанию для ## находится в /etc/httpd/conf/httpd.conf

手把手教你Linux PHP環境部署與專案上線(分享)

根据主配置文件中的配置可以看出,其引入了conf.d目录下的全部conf文件,那么可以在该目录中创建一个vhosts.conf****文件,作为虚拟主机的配置文件:

80端口主机:


ServerAdmin cherish@cherish.pw
DocumentRoot"PATH"
ServerName “yourdomain.com”

Allow from all
AllowOverride all
Options -indexes
Require all granted

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”

Allowfrom all
AllowOverride all
Options -indexes
Require all granted

手把手教你Linux PHP環境部署與專案上線(分享)

创建好之后,参考上述的框框中配置代码,进行修改,其中443端口的虚拟主机配置含义如下:
手把手教你Linux PHP環境部署與專案上線(分享)

修改完毕之后保存退出,然后重启apache

systemctl restart httpd

d. 打开浏览器访问项目,检查https协议是否生效

手把手教你Linux PHP環境部署與專案上線(分享)

问题,生效虽然生效了,但是https协议需要用户手动去补充,在直接输入域名访问的时候默认还是80的http****协议,如何解决?

答:使用重写的方法,强制用户在访问http的时候跳转到https。操作步骤如下,在站点根目录下的“.htaccess”文件中添加如下代码,保存退出即可:
手把手教你Linux PHP環境部署與專案上線(分享)

RewriteCond %{HTTPS} !=on

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

举手之劳:框架运行的时候报错了,请解决。

错误1**:权限不足**
手把手教你Linux PHP環境部署與專案上線(分享)

解决办法:
手把手教你Linux PHP環境部署與專案上線(分享)

错误2**:数据库连接失败**

手把手教你Linux PHP環境部署與專案上線(分享)

解决办法:修改项目目录下的.env文件

手把手教你Linux PHP環境部署與專案上線(分享)

处理完毕之后项目即可访问您的项目了。


[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记录:一般用于做域名邮箱,将域名指向一个邮件服务器;

推荐学习:《PHP视频教程

以上是手把手教你Linux PHP環境部署與專案上線(分享)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除