linux部署php项目并配置ssl证书
1.前提条件
1.1 域名已注册且完成DNS解析。在cmd输入以下命令查看是否完成域名解析。
nslookup 域名
例:nslookup www.abc.com
如上图所示,解析出来ip地址即为成功。
1.2 下载好域名对应的证书文件
我使用了华为云的 云证书管理服务 CCM 。
下载好证书文件,如下图所示。
进入Apache相关的文件夹,看到有三个文件,如下图所示。
将这三个文件放到linux服务器的某个位置,我放到了
/cert/apache
(这个路径自定义),为了方便,我将对应的文件名改成了
ca.crt、server.crt、server.key
2.安装Apache和php
2.1 安装Apache
执行以下命令,等待成功安装完即可。
yum install httpd
2.2 安装php
执行以下命令,等待成功安装完即可。
yum install php
3.配置
配置文件在
/etc/httpd/
目录下
3.1 设置 php运行权限
vim /etc/httpd/conf.d/php.conf
在下图位置添加
AddHandler application/x-httpd-php .php
4. 配置http://ip 访问php
默认的项目根目录为:
/var/www/html
配置在
/etc/httpd/conf/httpd.conf
,如下图所示。
在项目根目录(
/var/www/html
)放进一个
hello.php
,
hello.php
的代码如下:
<html><head><title>hello world</title><meta charset="UTF-8"></head><body><?php$msg='这里是hello.php!!!!';?><h2><?php echo$msg;?></h2></body></html>
启动apache:
systemctl restart httpd
查看状态,确保启动成功。
systemctl status httpd
如上图,启动成功。
本机访问一下(端口没做配置,默认使用80端口)
curl http://127.0.0.1/hello.php
如上图所示,访问成功。
开放外网80端口
firewall-cmd --zone=public --add-port=80/tcp –permanent
firewall-cmd --reload
使用
http://ip:端口/hello.php
访问,如下图所示(端口由于是80,是http的默认端口,所以可忽略)。
至此,已经完成通过 http://ip访问php。
5. 配置https://ip 访问php
安装
mod_ssl
模块
yum install-y mod_ssl
等待安装完成即可。
重启apache:
systemctl restart httpd
这时候默认端口为443,在
/etc/httpd/conf.d/ssl.conf
可以看到,如下图所示、
开放443端口
firewall-cmd --zone=public --add-port=443/tcp –permanent
firewall-cmd --reload
访问:
https://ip/hello.php
,效果如下图所示。
访问成功。
6. 配置https://域名 访问php
6.1 添加证书文件
vim /etc/httpd/conf.d/ssl.conf
在</ VirtualHost> 节点里面增加
SSLCertificateFile /cert/apache/server.crt #/server.crt的绝对路径
SSLCertificateKeyFile /cert/apache/server.key #server.key的绝对路径
SSLCertificateChainFile /cert/apache/ca.crt #ca.crt的绝对路径
这三个文件怎么来的,请看 1.2 下载好域名对应的证书文件
6.2 自定义php项目的根目录
vim /etc/httpd/conf.d/ssl.conf
在</ VirtualHost> 节点里面增加
DocumentRoot "/home/php-project"<Directory "/home/php-project">
Options -Indexes +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
6.3 添加域名
vim /etc/httpd/conf.d/ssl.conf
在</ VirtualHost> 节点里面增加
ServerName 域名
在php项目根目录(
/home/php-project
)下放入前面的
hello.php
重启apache:
systemctl restart httpd
访问:https://域名/hello.php,如下图所示:
访问成功!
版权归原作者 一杯大白兔 所有, 如有侵权,请联系我们删除。