【发布时间】:2015-12-28 07:25:06
【问题描述】:
我正在为一个应用程序使用 Ionic 框架。代码在linux服务器上。我正在通过 putty 使用ionic serve 命令运行应用程序。
但是,问题是如果我关闭腻子,应用程序就会停止。有什么方法可以将离子服务永久地作为守护进程运行?
【问题讨论】:
标签: angularjs linux cordova ionic-framework
我正在为一个应用程序使用 Ionic 框架。代码在linux服务器上。我正在通过 putty 使用ionic serve 命令运行应用程序。
但是,问题是如果我关闭腻子,应用程序就会停止。有什么方法可以将离子服务永久地作为守护进程运行?
【问题讨论】:
标签: angularjs linux cordova ionic-framework
我怀疑您尝试这样做是因为您想将您的 Ionic 应用程序作为网络应用程序提供服务,对吗?
在这种情况下 - 您不必永久运行 ionic serve。您所要做的就是从www 文件夹中取出所有代码并将其放在您的Web 服务器的http 文件夹(或任何其他对您的系统有效的文件夹)中。
所以,基本上,启动 apache(或 nginx)并从 Ionic 的 www 文件夹中提供代码。基本上,ionic serve 命令做同样的事情 - 它启动本地 Web 服务器并提供来自 www 文件夹的内容。这样做是为了加快本地测试。
您可以查看this SO question,了解有关如何将 Ionic 部署为网站的更多信息。
【讨论】:
我想在我的服务器上使用 Ionic 和 Capacitor 进行测试,但 www 文件夹没有运行第三方应用程序。
虽然未经测试,但从技术上讲,该设置应该能够与其他框架(例如 Vue、React 等)一起为 Ionic 工作。
使用 nginx 和 supervisor 我得到了它的工作。
Nginx 配置
sudo apt-get install nginx
sudo apt-get install nano
创建一个conf 文件
sudo nano /etc/nginx/sites-available/ionic
在文件中添加以下内容。
server {
listen 8100;
server_name your-domain.com your-ip-address;
charset utf-8;
client_max_body_size 10M;
#Django media and static files
location / {
proxy_pass http://127.0.0.1:8101;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
注意,我正在侦听端口 8100,但您可以使用任何其他端口,例如80. 此外,proxy_pass 设置为 8101,因为 ionic 将在此端口上运行。请参阅下面的 Supervisor 配置
主管配置
sudo apt-get install supervisor
然后创建一个conf 文件
sudo nano /etc/supervisor/conf.d/ionic.conf
在里面添加以下内容
[program:ionic]
command=ionic serve --port=8101
directory=/path/to/your/ionic/folder
autostart=true
autorestart=true
startretries=3
stderr_logfile=/var/log/supervisor/ionic/error.log
stdout_logfile=/var/log/supervisor/ionic/out.log
如前面 Nginx 配置中所述,我在端口 8101 上提供离子服务。
注意:不要报错,在日志中创建 ionic 文件夹
sudo mkdir /var/log/supervisor/ionic
然后启用并重新启动服务
sudo ln -s /etc/nginx/sites-available/ionic /etc/nginx/sites-enabled
sudo systemctl restart nginx
sudo systemctl restart supervisor
sudo supervisord
在打开您的网站之前,请检查 ionic 在日志输出文件中的正确端口上运行
tail -80 /var/log/supervisor/ionic/out.log
sudo systemctl enable supervisor
sudo systemctl enable nginx
http://your-domain.com:8100 或 http://your-ip-address:8100
【讨论】: