#1. プロジェクトのオンライン展開
サーバーとドメイン名の購入
まずコンソールにログインし、接続する必要があるホストの IP アドレスを取得します。
Get it パブリック IP に接続した後、リモート ターミナル ツールを使用して、オンラインで操作するサーバーに接続できます。
リモート ツールでは、Putty、CMD などを制限なく使用できます。
CentOS7.6を例に挙げると、サーバーを購入してインスタンスを生成した後、ログイン時に「yum -y update」を実行してシステム全体を更新してください。システムに抜け穴があります:
2. 現在のシステムのデフォルトの yum ソース、最新バージョンの PHP7
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
php -v
3. Apache2
yum -y install httpd
b. Apache をブートして起動するように設定します:
systemctlenable httpd && systemctl start httpd[DY4]
c. 静的ファイルとphp スクリプトは、Apache が動的ファイルと静的ファイルを正常に解析するかどうかをテストします。
注: Apacheのデフォルト サイトは、「/var /www/html」にあります。 任意のコンテンツを含むindex.html ファイルとindex.php ファイルを作成します:
テスト アクセスにはブラウザを使用します:
4. Mariadb をインストールする[DY5]
a. インストール手順を実行します
yum -y install mariadb-server
b. Mariadb サービスを開始し、スタートアップ項目を設定します
systemctl enable mariadb && systemctlstart mariadb
c. Mariadb データベースの初期化 手順 (初期パスワードの設定とその他の操作)
mysql_secure_installation[DY6]
d. コマンド ライン
mysql -u root -p
# を使用して Mariadb へのログインを試行します。
#5 , ドメイン名解決
hosts ファイルを変更する前は、これは実際にはドメイン名解決の一種であり、当時はローカルのみに限定されていましたが、現在はドメイン名解決を行う必要があります。オンラインで考慮されます。 解決を行うには、ドメイン名コントロール パネルにログインする必要があります。ドメイン名を解析する前に、ドメイン名が登録されていることを確認することをお勧めします。登録されたドメイン名がない場合は、解決が成功しても、使用に影響が生じます。使用中はサービス プロバイダーによって傍受されます。[分析レコードの追加] ボタンをクリックします。
ポップアップ ウィンドウ インターフェイスに対応するレコード情報を入力します。 [DY7 ]:
ping テストを使用:
步驟1**:匯入sql****檔案到資料庫中去**
進入資料庫的命令列管理介面,建立所需的資料庫edu16,使用source指令匯入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申請伺服器憑證。目前有許多免費的證書可供申請,例如與阿里雲合作的Sysmantec一年免費證書,一般免費的證書只能綁定一個網域。除了1年免費的,還有三個月免費的,但是不限次數,不限網域個數,甚至還支援萬用字元。
以阿里雲為例:
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 中国語 Web サイトの他の関連記事を参照してください。