樹莓派4B踩坑指南 - (15)搭建線上python IDE
阿新 • • 發佈:2020-05-08
> 今天想在樹莓派上自己搭一個線上的python IDE,於是找到了一篇教程--Fred913大神的[從頭開始製作OJ-線上IDE的搭建](https://www.cnblogs.com/sheng-fan/p/11357074.html)
> 自己嘗試動手做了一下, 還是發現不少細節需要注意, 記錄在此
> 如果不知道怎麼用樹莓派搭建網站的可以參考我之前的文章: [樹莓派4B踩坑指南 - (11)免費搭建網站(寶塔,花生殼)](https://www.cnblogs.com/bowen404/p/11979429.html)
> demo地址: [http://bowen.51mypc.cn/editor/](http://bowen.51mypc.cn/editor/)
# 主要環境
- PHP
- Nginx/Apache
- Python3
# 主要步驟
## 1) /api/python.php
1. 網站根目錄下新建資料夾`api`, 注意這裡需要sudo或者su許可權(下同), 然後使用`mkdir api`來建立
2. `touch python.php` # 在`api`中新建檔案`python.php`,
3. `nano python.php` # 在檔案中貼上以下內容
```php
",passthru("python3 /tmp/usrcode".$randint.".py 2>&1")); //把換行轉為html格式
unlink("/tmp/usrcode".$randint.".py"); //刪除使用者程式碼,以免造成tmp目錄擁擠
```
4. 儲存退出
## 2) /editor/src
1. 回到網站根目錄, `mkdir editor`
2. 去這裡(https://github.com/ajaxorg/ace-builds)點`download zip`, 然後把`ace-builds-master.zip`隨便解壓到哪個地方, 然後把`ace-builds-master`裡邊所有的東西複製到`editor`資料夾, 如`cp -r /home/pi/Desktop/n/ace-builds-master/* /www/wwwroot/bowen.51mypc.cn/editor/`, 命令中的 `-r` 和 `/*` 不要漏了. 複製完確認一下應該有這樣的一個目錄:`/editor/src`
3. 新建`index.php`, `touch index.php`(這裡跟原文有出入, 下載的包裡沒有index.html)
4. 在`index.php`中放入如下程式碼(這裡跟原文有出入, 原文寫的是作者自己的網址, 這裡刪掉了php和html的選項並將python.php的地址改成了相對路徑):
```php
FredTools IDE
``` ## 3) 除錯執行 1. 滿心歡喜的開啟`bowen.51mypc.cn/editor`, 然後就悲劇了:![無法使用](https://img2020.cnblogs.com/blog/1044828/202005/1044828-20200507234157540-1861225697.jpg) 2. 仔細讀程式碼發現裡邊有一行` ` 哦, 原來沒有這個檔案所以卡這了, 那就回去新建一個吧
3. 回到網站根目錄, `nano skin.html`, 寫入一行``, 儲存退出. (這裡跟原文有出入, 因為實際上並沒有面板可以換, 就把其他的刪掉了...)
4. 重新整理頁面, 誒, 果然可以了...嗎? ![](https://img2020.cnblogs.com/blog/1044828/202005/1044828-20200507234741702-1090515190.png)
5. 百度了一下, 這個問題應該是`php.ini`中的`passthru函式`被禁用了, 本想去找這個ini檔案, 後來想想這種東西估計寶塔面板裡就有,就去找了一下, 還真找到了: ![](https://img2020.cnblogs.com/blog/1044828/202005/1044828-20200507234930925-1421788028.jpg)
6. 大功告成! `print("hello world")` ![](https://img2020.cnblogs.com/blog/1044828/202005/1044828-20200507235017870-2002055605.jpg)
## 待解決問題
1. 試了下, 這裡用不了input()函式(`EOFError: EOF when reading a line`), 估計是互動性沒法滿足, 希望後續能補上這個不足吧!
2. 不知道效能佔用怎麼樣, 如果多人同時呼叫的話, 有可能會有新問題, 以後再
執行結果:
自由模式
在此模式下,你可以自由的使用FredTools IDE。
任務:無
``` ## 3) 除錯執行 1. 滿心歡喜的開啟`bowen.51mypc.cn/editor`, 然後就悲劇了:![無法使用](https://img2020.cnblogs.com/blog/1044828/202005/1044828-20200507234157540-1861225697.jpg) 2. 仔細讀程式碼發現裡邊有一行`