환경 온라인 프로젝트를 배포하려면 먼저 다음 조건을 충족해야 합니다. 서버(ip, 계정 비밀번호, 터미널), 해당 소프트웨어, 도메인 이름(기록 구문 분석, 코드) 등
서버 및 도메인 이름 구매
먼저 콘솔에 로그인하고 연결해야 하는 호스트의 IP 주소를 얻습니다.
연결을 위한 공인 IP를 얻은 후 원격 터미널 도구를 사용할 수 있습니다. 온라인으로 운영할 호스트에 접속합니다.
원격 도구는 Putty, CMD 등을 제한 없이 사용할 수 있습니다.
CentOS7.6을 예로 들어보겠습니다. 서버를 구입하고 인스턴스를 생성한 후 처음 시스템에 로그인할 때 "yum -y update"를 실행하여 시스템 취약점을 예방하세요.
현재 시스템 기본 yum 소스에서 최신 PHP 버전은 5.4.16[DY2]이며, 온라인에 접속해야 하는 프로젝트의 경우 최소 버전이 PHP7.0이어야 합니다. 이때 EPEL[DY3]은 이 문제를 정확하게 해결할 수 있습니다.
a. CentOS7
rpm -Uvhhttps://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
b용 epel을 설치합니다. PHP7
rpm -Uvhhttps://mirror.webtatic.com/yum/el7/webtatic-release.rpm
c의 yum 소스를 구합니다. 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을 설치합니다.
3. Apache2를 설치합니다a. 설치 yum 명령을 실행합니다:
php -v
systemctl 활성화 httpd && systemctl start httpd[DY4]
c. PHP 스크립트는 Apache가 동적 및 정적 파일을 정상적으로 구문 분석하는지 테스트합니다
참고: Apache의 기본 사이트는 "/var /www/html"다음을 사용하여 index.html 및 index.php 파일을 만듭니다. 임의의 내용:
테스트 접속을 위해 브라우저 사용: 4. Mariadb 설치 [DY5]여기에 설치된 Mariadb는 MySQL의 주요 브랜치이며, 사용중인 MySQL과 크게 다르지 않습니다. .
yum -y install httpd
yum -y install mariadb-server
mysql_secure_installation[DY6 ]
d. Mariadb
systemctl enable mariadb && systemctlstart mariadb
실제로는 일종의 도메인 이름 확인인 호스트 파일을 수정했습니다. 로컬에만 국한되어 있었지만 이제는 온라인으로 고려해야 합니다.
1단계**: sql**** 파일을 데이터베이스로 가져옵니다**
데이터베이스의 명령줄 관리 인터페이스를 입력하고 생성합니다. 필요한 데이터베이스 edu16을 사용합니다. 소스 명령은 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에서 서버 인증서를 신청해야 합니다. 현재 Alibaba Cloud와 협력하는 Sysmantec의 1년 무료 인증서 등 신청할 수 있는 무료 인증서가 많이 있습니다. 일반적으로 무료 인증서는 하나의 도메인 이름에만 바인딩될 수 있습니다. 1년 무료 서비스 외에 3개월 무료 서비스도 제공되는데 횟수, 도메인 이름 수에 제한이 없으며 와일드카드까지 지원합니다.
Alibaba Cloud를 예로 들어보세요.
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记录:一般用于做域名邮箱,将域名指向一个邮件服务器;
推荐学习:《PHP视频教程》
위 내용은 Linux PHP 환경 배포 및 프로젝트 시작을 단계별로 교육합니다(공유).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!