要部署環境上線項目,先具備以下條件:伺服器(ip、帳號密碼、終端)、對應的軟體、網域名稱(備案解析、代碼)等。
伺服器、網域購買
先登入控制台,取得需要連線的主機ip位址:
##取得到用於連接的公用IP後,即可使用遠端終端工具連接上待操作上線的伺服器。 遠端工具可以使用Putty、CMD等,無限制需求。 以CentOS7.6為例,購買好伺服器並產生實例後,第一次登入系統請先執行「yum -y update」更新整個系統,防止系統有漏洞: 2、安裝PHP7在目前系統預設的yum來源中,PHP最新的版本為5.4.16[DY2] ,而需要上線的項目要求最低版本為PHP7.0,此時,EPEL[DY3] 恰恰可以解決這的問題。 a. 安裝CentOS7適用的epelrpm -Uvhhttps://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmb. 取得PHP7的yum來源
rpm -Uvhhttps://mirror.webtatic.com/yum/el7/webtatic-release.rpmc. 安裝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
php -v#3、安裝Apache2a. 執行安裝的yum指令:
yum -y install httpdb. 設定Apache開機啟動並且啟動Apache:systemctl enable httpd && systemctl start httpd[DY4]c. 寫一個靜態檔案和一個php腳本測試Apache對於動、靜態檔案是否解析正常
注意:Apache的預設網站位於「/var /www/html」
建立index.html、index.php文件,內容隨意: #使用瀏覽器進行測試存取:#4、安裝Mariadb[DY5]這裡安裝的Mariadb為MySQL的一大分支,在使用上與MySQL沒有太大的差異。 a.執行安裝指令
yum -y install mariadb-serverb. 啟動Mariadb服務並且設定開機啟動項目
systemctl enable mariadb && systemctlstart mariadbc. 執行初始化Mariadb資料庫指令(設定初始密碼等操作)mysql_secure_installation[DY6]d. 嘗試使用命令列登入Mariadb
mysql -u root -p##5 、網域解析之前做修改hosts文件,其實就是網域解析的一種,當時只是侷限於本地,現在要考慮是線上。 要做解析得登入域名控制面板中去,解析域名之前最好先確保域名已經備案,如果沒有備案的域名,則雖然解析會成功,但是會影響使用,在使用的時候會被服務商攔截。 點選新增解析記錄按鈕: #在彈出的彈窗介面中填入對應的記錄資訊[DY7 ] : 使用ping測試:
Шаг 1**: Импортируйте файл sql**** в базу данных. база данных**
Войдите в интерфейс управления базой данных из командной строки, создайте необходимую базу данных edu16 и используйте исходную команду для импорта файла sql:
Шаг 2
* *: Создайте рабочий каталог сайта, распакуйте загруженный zip-пакет с кодом****, а затем скопируйте код в рабочий каталог сайта**
a. Каталог сайта должен иметь вид «/var /www/html».
Создать каталог сайта:
Каталог уже существует, создавать его не нужно
b. Скопируйте ранее загруженный сжатый пакет кода в текущий каталог сайта, распакуйте сжатый файл. пакет, и распаковка завершена. Вы можете удалить его позже
Синтаксис декомпрессии: распакуйте путь к сжатому пакету
В настоящее время, поскольку файл записи сайта в общедоступном каталоге, а сайт текущего проекта находится в /var. В /www/html отсутствует общедоступный файл, поэтому вам необходимо изменить элемент DocumentRoot в файле конфигурации Apache.
# vim /etc/httpd/conf/httpd.conf
После оплаты нажмите «Сертификат для подачи заявки»:
# Дождитесь завершения выдачи сертификата, а затем загрузите сертификат:
Файлы общедоступного и частного сертификата, полученные после распаковки сжатого пакета:
Загрузите три файла на сервер, исправьте путь сохранения и постарайтесь не менять его.
Договорено хранить общедоступные и частные файлы сертификатов в "/ssl/"
b. Установите модуль Apache mod_ssl
yum -y install mod_ssl
c.Справочник по конфигурации виртуального хоста (80 443):
Примечание: apache установлен способом yum # Основной файл конфигурации по умолчанию для ## находится в /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记录:一般用于做域名邮箱,将域名指向一个邮件服务器;
推荐学习:《PHP视频教程》
以上是手把手教你Linux PHP環境部署與專案上線(分享)的詳細內容。更多資訊請關注PHP中文網其他相關文章!