我不生产代码
我只是代码的搬运工

搭建Jetbrains家族IDE授权服务器

工欲善其事,必先利其器。拥有一个好的工具不仅可以事半功倍,而且也令人神清气爽。做为一名PHP码农,相对于zend studio的臃肿,感觉phpstorm更加清爽,并且功能也很齐全,占用的系统资源也少很多,所以一直在用phpstorm。但是由于phpstorm本身是收费软件,而且价格不低,所以一直用破解版的。然后网上找到的授权服务器地址用一段时间就不能用了,所以今天在自己服务器上搭了一个phpstorm的授权服务器。有需要的朋友可以参考下面方法。

喝水不忘挖井人,在此首先感谢 Lanyu,无偿的为我们提供了授权服务器的软件。但是在 Lanyu 博客中找到的服务器授权软件下载地址都为404,所以在第三方网站上找到了相应的软件,可以在https://mega.nz/#!7B5UVY6b!Hae2ceTBPIrTowQN0sV9fQ5lGOKzGxas2ug02RZAdGU 下载。

将下载的软件解压,里面有很多文件,可以在windows、mac和linux中使用。其中扩展名为.exe的在windows中使用,后缀为drawin的在mac中使用,没有后缀的在linux中使用,但是要注意区分32/位和64位,385的为32位,amd64的为64位。在windows中,只需要运行扩展名为exe的文件即可以,在此,只介绍linux中安装的方法。

将下载的IntelliJIDEALicenseServer(0.0.0.0_1017).zip文件上传到服务器上并解压

unzip IntelliJIDEALicenseServer(0.0.0.0_1017).zip

由于我的服务器是centos 64位的,所以我使用的为 IntelliJIDEALicenseServer_linux_amd64,由于文件太长,所以将文件改短方便操作和记忆:

mv IntelliJIDEALicenseServer_linux_amd64 IdeaServer

为了让它可执行,需要添加可执行权限

chmod +x IdeaServer

由于我将文件放在目录 /usr/bin/IdeaServer 中,所以通过执行下面命令启动程序

/usr/bin/IdeaServer -p 1017 -prolongationPeriod 999999999999

可用参数为

-l 指定绑定监听到哪个IP(私人用)
-u 用户名参数,当未设置-u参数,且计算机用户名为^[a-zA-Z0-9]+$时,使用计算机用户名作为idea用户名
-p 参数,用于指定监听的端口
-prolongationPeriod 指定过期时间参数

但是在实际使用过期中,发现 -u 参数指定用户名并不起使用,不知道是不是我使用错了。当看到如下信息,表示服务成功启动

1490888750456567.png

然后,将自己的实际域名解析到自己的服务器上,并服务器上使用nginx做反正代码,监听本机IdeaServer服务的端口,反向代理配置如下:

server
{
    listen 80;
    server_name idea.scloud.top;

    root  /data/www/html/idea.scloud.top;
    include none.conf;

   location / {
           proxy_pass http://127.0.0.1:1017;
           proxy_redirect off;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   }
   access_log off;
}

重启服务器器,此时就可以通过所配置的域名授权phpstorm了。

1490892497539877.png

但是由于我们希望IdeaServer服务以后台进程运行,并且服务器开机自己启动,还需要对服务器做如下配置(如果不怕麻烦,可以省略下面步骤)。

为了使IdeaServer服务以后台守护进行运程,在此安装进程管理工具Supervisord

yum -y install supervisor

默认安装路径为/usr/bin/supervisord,配置文件为/etc/supervisor.conf。

手动启动Supervisord服务:

/usr/bin/supervisord -c /etc/supervisor.conf

手动关闭Supervisord服务:

/usr/bin/supervisorctl stop all

在服务器上装上一个新的软件时,在修改配置文件前,最好先将配置文件备份

cp /etc/supervisor.conf /etc/supervisor.conf.default

打开文件配置文件/etc/supervisor.conf,在其尾部为

[include]
files = supervisord.d/*.ini

由此可判断单个程序的守护进程启动脚本放在/etc/supervisor.d/目录下面,所以我们在 /etc/supervisor.d/目录下面创建IdeaServer服务守护进程启动文件

vim /etc/supervisor.d/IdeaServer.ini

然后在新创建的文件里添加启动命令

[program:idea-server]
command = /usr/bin/IdeaServer -p 1017 -u sunwq -prolongationPeriod 999999999 -l 127.0.0.1
autostart=true
autorestart=true
startsecs=3

然后将supervisord添加到开机启动中,supervisord不同版本系统开机启动方式详见https://github.com/Supervisor/initscripts。以下为我自己服务器 centos 7.0 设置开机启动方法。

修改 /lib/systemd/system/supervisord.service内容如下:

# supervisord service for systemd (CentOS 7.0+)    
# by ET-CS (https://github.com/ET-CS)    
[Unit]    
Description=Supervisor daemon    
[Service]    
Type=forking    
ExecStart=/usr/bin/supervisord    
ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown    
ExecReload=/usr/bin/supervisorctl $OPTIONS reload    
KillMode=process    
Restart=on-failure    
RestartSec=42s    
[Install]    
WantedBy=multi-user.target

然后修改配置文件/etc/supervisord.conf,将 nodaemon改为true

nodaemon=true  ;我的配置文件中为21行

这样就会将 supervisord 服务添加到 systemctl 的自启动服务中。以为到这里就结束了,当执行命令

systemctl is-enabled supervisord

发现结果为 disabled,表示 supervisord 并不能开机启动。然后通过执行命令

systemctl enable supervisord

此时再执行systemctl is-enabled supervisord 命令,结果为enabled,表示 supervisord 服务可以开机中自启。至此,phpstorm授权服务器搭建完成。

当把phpstorm成功授权后,考虑到 phpstorm 是 Jebrains 软件家族中的一个,所以就想此授权方法是否适用于 Jebrains 家族中其他的软件呢?通过亲测webstorm、pycharm,都可以成功授权,由于身边没有其他 Jebrains 家族中的软件,所以只测试了这3款软件,更多软件是否能通过此种方式授权,有待测试。

本文章为本站原创,如转载请注明文章出处:https://www.sviping.com/archives/29

分享到:
上一篇: linux中强大且常用命令:find、grep 下一篇: CHROME开发者工具的小技巧

相关文章

12