Pour déployer environnement de projets en ligne, les conditions suivantes doivent être au préalable remplies : serveur (IP, mot de passe du compte, terminal), logiciel correspondant, nom de domaine (analyse de l'enregistrement, code), etc.
Achat de serveur et de nom de domaine
Connectez-vous d'abord à la console et obtenez l'adresse IP de l'hébergeur auquel vous devez vous connecter :
Obtenir l'adresse IP Après vous être connecté à l'adresse IP publique, vous pouvez utiliser l'outil de terminal distant pour vous connecter au serveur à exploiter en ligne.
Les outils distants peuvent utiliser Putty, CMD, etc., sans restrictions.
Prenons CentOS7.6 comme exemple. Après avoir acheté un serveur et créé une instance, veuillez vous connecter au système pour la première fois et exécuter "yum -y update". pour mettre à jour l'ensemble du système pour éviter qu'il y ait des vulnérabilités dans le système :
Dans la source yum par défaut du système actuel, la dernière version. de PHP est 5.4.16[DY2], Les projets qui doivent être lancés nécessitent la version minimale de PHP7.0. Pour le moment, EPEL[DY3] peut résoudre ce problème.
a. Installez epel pour CentOS7
rpm -Uvhhttps://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
b. Obtenez la source yum de PHP7
rpm -Uvhhttps://mirror.webtatic.com/yum/el7/webtatic-release.rpm
c. Installez PHP7.2 et ses extensions communes
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
yum -y install httpd
Remarque : le site par défaut d'Apache se trouve à "/var /www/html"
Créez des fichiers index.html et index.php avec n'importe quel contenu : Utilisez un navigateur pour tester l'accès : 4. Installez Mariadb[DY5]Le Mariadb installé ici est une branche majeure de MySQL, et il n'est pas très différent de MySQL utilisé. a. Exécutez la commande d'installationyum -y install mariadb-server
systemctl enable mariadb && systemctlstart mariadb
mysql -u root -p
Étape 1** : Importez le fichier sql**** dans le base de données**
Entrez dans l'interface de gestion de ligne de commande de la base de données, créez la base de données requise edu16 et utilisez la commande source pour importer le fichier sql :
Étape 2* * : Créez le répertoire d'exécution du site, décompressez le package zip**** du code téléchargé, puis copiez le code dans le répertoire d'exécution du site**
a. Le répertoire du site est accepté comme étant "/var /www/html".
Créer le répertoire du site :
Le répertoire existe déjà, pas besoin de le créer
b Copiez le package compressé de code précédemment téléchargé dans le répertoire du site actuel, décompressez le compressé. package, et la décompression est terminée Vous pouvez le supprimer plus tard
Syntaxe de décompression : décompresser le chemin du package compressé
À ce moment, car le fichier d'entrée du site est dans le répertoire public et le site du projet actuel est dans /var Dans /www/html, il manque un public, vous devez donc modifier l'élément DocumentRoot dans le fichier de configuration Apache à ce moment-là.
# vim /etc/httpd/conf/httpd.conf
Accordez également l'autorisation d'écriture sur le répertoire temporaire :
Résolvez le problème pseudo-statique (si vous ne le résolvez pas, vous ne pouvez accéder qu'à la page d'accueil, et les autres pages recevront 404) :
Idée : ouvrez le répertoire racine de l'élément de configuration AllowOverride du site actuel, définissez-le sur Tout, puis redémarrez Apache.
Objectif : Il est nécessaire que le serveur en ligne soit accessible via le protocole https. [Améliorez la sécurité et renforcez la confiance des utilisateurs dans le site Web]
a. Demandez un certificat SSL
Si vous souhaitez que votre site prenne en charge le protocole https, vous devez d'abord demander un certificat de serveur auprès de le CA. Il existe actuellement de nombreux certificats gratuits disponibles, tels que le certificat gratuit d'un an de Sysmantec en coopération avec Alibaba Cloud. Généralement, les certificats gratuits ne peuvent être liés qu'à un seul nom de domaine. En plus d'un an de service gratuit, il existe également trois mois de service gratuit, mais il n'y a pas de limite sur le nombre de fois, le nombre de noms de domaine et prend même en charge les caractères génériques.
Prenons Alibaba Cloud comme exemple :
https://common-buy.aliyun.com/?spm=5176.2020520163.cas.3.267d56a7EBRcYw&commodityCode=cas#/buy
Une fois le paiement effectué, cliquez sur « Certificat à appliquer » :
Attendez que l'émission du certificat soit terminée, puis téléchargez le certificat :
Les fichiers publics et privés du certificat obtenus après décompression du package compressé :
Téléchargez les trois fichiers sur le serveur, corrigez le chemin de sauvegarde et essayez de ne pas le modifier.
Il est convenu que les fichiers de certificats publics et privés seront stockés dans "/ssl/"
b Installez le module mod_ssl d'Apache
yum. -y install mod_ssl
c. Référence de configuration de l'hôte virtuel (80+443) :
Remarque : Apache installé avec yum Le fichier de configuration principal par défaut pour se trouve dans /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视频教程》
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!