>  기사  >  백엔드 개발  >  Linux PHP 환경 배포 및 프로젝트 시작을 단계별로 교육합니다(공유).

Linux PHP 환경 배포 및 프로젝트 시작을 단계별로 교육합니다(공유).

慕斯
慕斯앞으로
2021-06-07 09:49:575702검색

이 기사는 Linux PHP 환경 배포 및 프로젝트 시작을 공유합니다.필요한 친구들이 모두 참고할 수 있기를 바랍니다.

Linux PHP 환경 배포 및 프로젝트 시작을 단계별로 교육합니다(공유).

1. 프로젝트 온라인 배포

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

 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

Linux PHP 환경 배포 및 프로젝트 시작을 단계별로 교육합니다(공유).


d을 설치합니다.

3. Apache2를 설치합니다

Linux PHP 환경 배포 및 프로젝트 시작을 단계별로 교육합니다(공유).a. 설치 yum 명령을 실행합니다:

php -v

b. Apache를 부팅하고 시작하도록 설정합니다.

systemctl 활성화 httpd && systemctl start httpd[DY4]

c. PHP 스크립트는 Apache가 동적 및 정적 파일을 정상적으로 구문 분석하는지 테스트합니다

참고: Apache

의 기본 사이트는 "/var /www/html

"다음을 사용하여 index.html 및 index.php 파일을 만듭니다. 임의의 내용:

테스트 접속을 위해 브라우저 사용:

4. Mariadb 설치 [DY5]

Linux PHP 환경 배포 및 프로젝트 시작을 단계별로 교육합니다(공유).여기에 설치된 Mariadb는 MySQL의 주요 브랜치이며, 사용중인 MySQL과 크게 다르지 않습니다. .

a. 설치 지침 실행

yum -y install httpd

b. Mariadb 서비스 시작 및 시작 항목 설정

yum -y install mariadb-server
Linux PHP 환경 배포 및 프로젝트 시작을 단계별로 교육합니다(공유).c. Mariadb 데이터베이스 초기화 지침 실행(초기 비밀번호 설정 등)

mysql_secure_installation[DY6 ]

d. Mariadb

systemctl enable mariadb && systemctlstart mariadb

에 로그인해 보세요. 5. 도메인 이름 확인

Linux PHP 환경 배포 및 프로젝트 시작을 단계별로 교육합니다(공유). 실제로는 일종의 도메인 이름 확인인 호스트 파일을 수정했습니다. 로컬에만 국한되어 있었지만 이제는 온라인으로 고려해야 합니다.

확인을 하려면 도메인 이름 제어판에 로그인해야 합니다. 도메인 이름을 구문 분석하기 전에 등록된 도메인 이름이 없는 경우 확인하는 것이 가장 좋습니다. 성공하면 사용에 영향을 미치며 이를 사용할 때 서비스 제공자가 사용하게 됩니다.

분석 기록 추가 버튼을 클릭하세요.

Linux PHP 환경 배포 및 프로젝트 시작을 단계별로 교육합니다(공유).

팝업 창 인터페이스 [DY7]에서 해당 기록 정보를 입력하세요.

Linux PHP 환경 배포 및 프로젝트 시작을 단계별로 교육합니다(공유).

핑 테스트 사용:

Linux PHP 환경 배포 및 프로젝트 시작을 단계별로 교육합니다(공유).

6. 코드의 압축을 풀고 데이터베이스로 가져옵니다.

1단계**: sql**** 파일을 데이터베이스로 가져옵니다**

데이터베이스의 명령줄 관리 인터페이스를 입력하고 생성합니다. 필요한 데이터베이스 edu16을 사용합니다. 소스 명령은 sql 파일을 가져옵니다.

Linux PHP 환경 배포 및 프로젝트 시작을 단계별로 교육합니다(공유).

2단계**: 사이트의 실행 디렉터리를 생성하고 업로드된 코드 zip**** 압축 패키지의 압축을 푼 다음 사이트의 실행 디렉터리* *

a에 대한 코드입니다. 합의된 사이트 디렉터리는 "/var/www/html"입니다.

사이트 디렉토리 생성:

디렉토리가 이미 있으므로 생성할 필요가 없습니다.

b. 이전에 업로드한 코드 압축 패키지를 현재 사이트 디렉토리에 복사하고, 압축된 패키지의 압축을 풀고, 압축 해제가 완료된 후 삭제하세요.

압축 풀기 구문 : unzip 압축된 패키지 경로

Linux PHP 환경 배포 및 프로젝트 시작을 단계별로 교육합니다(공유).

이때 사이트 항목 파일은 public 디렉터리에 있고, 현재 프로젝트 사이트는 /var/www/html에 있기 때문에 public이 부족하므로 꼭 하셔야 합니다. Apache 구성 파일에서 DocumentRoot 항목을 수정합니다.

# vim /etc/httpd/conf/httpd.conf
Linux PHP 환경 배포 및 프로젝트 시작을 단계별로 교육합니다(공유).

Linux PHP 환경 배포 및 프로젝트 시작을 단계별로 교육합니다(공유).

동시에 임시 디렉터리에 쓰기 권한을 부여합니다:

Linux PHP 환경 배포 및 프로젝트 시작을 단계별로 교육합니다(공유).
의사 정적 문제를 해결합니다(해결되지 않으면 홈페이지에만 액세스할 수 있으며 다른 페이지에서는 404가 표시됩니다.

Linux PHP 환경 배포 및 프로젝트 시작을 단계별로 교육합니다(공유).

아이디어: 현재 사이트의 루트 디렉터리에서 AllowOverride 구성 항목을 활성화하고 All로 설정한 다음 Apache를 다시 시작하세요.

7. 가상 호스트 만들기

목표: 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

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 ):

참고: yum과 함께 설치된 apache의 기본 기본 구성 파일은 /etc/httpd/conf/httpd.conf

Linux PHP 환경 배포 및 프로젝트 시작을 단계별로 교육합니다(공유).

에 있습니다.

根据主配置文件中的配置可以看出,其引入了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

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으로 문의하시기 바랍니다. 삭제