概述
本系列教程写于2016年9月,所用开发环境是
XCODE(7.3.1),
SWIFT(3.0),
PHP(5.5.36),
APACHE(2.4.18)
禁止转载!
如果在看这篇教程之前,如果没有看过前面的章节,你可以回去看看一看前面的章节
在这一章,我将要做两件事
1.在MAC上部署一个Apache+PHP的开发环境
2.用php写一个provider程序用来发送推送通知
在这里我省略了Mysql的配置工作,因为对这篇教程而言是用不到的,毕竟MAC是集成好Apache+PHP5的,如果多加一个Mysql,中间出问题的机会就会变多,我的目的就是尽量简单的配置服务器(Provider)成功,不是吗?
上面说到MAC是集成好Apache+PHP5的,但是默认是关闭的,那我们就开启这项服务就好了
1. 打开终端(command+space -> 输入terminal->回车)
2. 输入sudo apachectl start
,输入密码,启动apache服务器
这时候打开浏览器,输入http://localhost
,会显示”it works!”,证明apache服务启动成功
apache服务器的根目录在/Library/WebServer/Documents/
这个地址下
3. 在终端里输入 cd /Library/WebServer/Documents/
,回车,ls
,会看到这个目录下有一个叫做index.html.en
的文件,这个就是我们刚刚访问的localhost
目录下的html
文件
4. 接着我们在终端输入 cd /etc/apache2
,回车,移动到apache配置文件所在的文件夹下
- 输入
cp httpd.conf httpd.conf.bak
,回车,这句话是对apache的配置文件做一个备份,以后改乱了好恢复 - 这时在输入
ls
应该可以看到httpd.conf和httpd.conf.bak这两个文件,我要修改以下httpd.conf文件让apache开启对php5的支持 - 输入
sudo vim httpd.conf
,回车,用vim打开httpd.conf文件,当然你也可以用别的你喜欢的工具打开,只要可以修改文件内容就可以 - 找到
#LoadModule php5_module libexec/apache2/libphp5.so
这一行,将前面的注释#
去掉,保存文件并退出 - 现在验证php服务是不是启动了,在终端输入下面这几行在服务器目录下建立一个php文件并打开它
cd /Library/WebServer/Documents/
touch index.php
sudo vim index.php
10.将index.php
写成这样,保存并退出,phpinfo()
输出的是当前的php信息,如果成功输出说明php服务启动成功
<?php
echo phpinfo();
?>
11.现在打开浏览器,输入http://localhost/index.php
,回车,如果出现的php的信息,那么恭喜你,php+apache服务在你的电脑上开启成功了
上面配置好了Apache+PHP的服务端环境,下面就要写一个PHP程序来连接APNs服务器发送推送通知了,这里最好需要一些PHP的基础知识,当然如果你有其他语言的(至少有SWIFT不是吗)经验也应该能看懂的,理解后用其他语言实现大同小异。
在这之前有些工作要做,服务器端(Provider)和APNs连接是通过SSL/TLS的,需要证书认证,也就是我上一章申请的那张aps_development.cer(推送服务认证证书)
还需要你的私钥配合,这两个东西(证书+私钥)加载一起可以导出成一个扩展名是.p12
的文件,我们管这种文件叫做信息交换文件
,这个.p12文件是需要保密的,如果有人得到这个文件,就可以部署一个服务器冒充你给你的APP发送通知。
现在我们来导出这个.p12文件
1. 打开桌面的APNsDemoFiles文件夹,双击aps_development.cer文件,它会自动安装到你的电脑上并配合上对应的私钥。
2. 打开Keychain Access,点击左边的My Certificates,在右边找到这个证书
3. 右键点击,选中那个Export打头的选项,选中.p12类型,默认名称不用变,保存到桌面
4. 点击Save,系统会让你输入一个密码来加密这个文件,我在这里输入的是apnsdemo
,你也可以输入别的,只要记得住就好
5. 然后将这个文件移动到APNsDemoFiles文件夹里
6. 打开终端,输入下面这些命令
openssl pkcs12 -in ~/DeskTop/APNsDemoFiles/Certificates.p12 -out ~/DeskTop/APNsDemoFiles/ck.pem -nodes
接着会让你输入密码,就输入刚才保存.p12文件的那个密码就可以,我的是
apnsdemo
,上面这句话的意思是用openssl这个工具将.p12文件转换成一个php可以用的.pem文件,php是用不了.p12文件的,所以有了上面这段话。现在APNsDemoFiles是这样的
现在我们就用不到刚才的.p12文件了,用新生成的
ck.pem
就可以了。在终端里将这个文件拷贝到服务器根目录里,留作一会我们写的php文件调用
sudo cp ~/DeskTop/APNsDemoFiles/ck.pem /Library/WebServer/Documents/ck.pem
接着我们要在服务器跟目下建立一个push.php
文件,用以和APNs连接并发送推送消息给设备
cd /Library/WebServer/Documents/
touch push.php
sudo vim push.php
这里有push.php的连接,你可以直接下载下来
不过你需要改一些地方
$deviceToken= 'bb222b83db70e2113f4d207aa7fba17e753d23e96506a9bd1f103bded4aa30f5';
$pem = "ck.pem";
$pass = "apnsdemo";
上面三个分别是设备的device token、.pem文件的文件名、还有刚才加密的那个密码,都改成对应的名字就可以了,如果你前面都是按照我说的做的,那么这一步只需改变$deviceToken
就可以了。
具体的php代码我就不在这里分析了,大概就是设置一些参数->连接APNS服务器->发送数据->接收返回数据 这个样子。
这个代码发送的推送通知的格式用的是苹果第一版协议,最新的是第三版。所以如果你是看苹果的开发者手册可能跟这个格式对不上,看看这个就明白了
程序写好了,下面运行程序吧
sudo php /Libray/WebServer/Documents/Push.php
如果推送成功,会显示上面这段话,再看看你的IPhone,应该已经出现推送消息了吧!
最后
以上就是哭泣羊为你收集整理的APNS部署教程4(服务器/Provider开发)的全部内容,希望文章能够帮你解决APNS部署教程4(服务器/Provider开发)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复