在Android設備上使用Termux構建PHP開發環境:一個移動開髮指南
核心要點
- 利用強大的終端模擬器和Linux軟件包集合Termux,可在Android設備上搭建PHP開發環境。
- 在Android上運行Laravel需要安裝PHP、Git和Composer等軟件包,並使用簡單的
phpinfo()
測試驗證PHP安裝。 - Android設備的數據持久化可通過輕量級的無服務器文件型數據庫引擎SQLite實現,非常適合存儲少量數據。
- 雖然Android設備無法運行複雜的測試套件或MySQL,但此設置對於小型開發任務或緊急修復非常有用,允許隨時隨地進行PHP開發而無需攜帶筆記本電腦。
不久前,Christopher Pitt撰寫了一篇優秀的文章,介紹如何在iPad上編寫和運行PHP代碼。讀完後,我心想:“在Android上做同樣的事情也很酷”,例如,可以在旅途中隨時編寫和編輯代碼,而無需隨身攜帶筆記本電腦。因此,我決定進行一些研究,看看我能想出什麼。
本教程適用於任何類型的Android設備。我在手機上完成了這項工作,但配備藍牙鍵盤的Android平板電腦可能是理想的設置。
Android上有一些不同的shell應用程序。本教程將使用名為Termux的應用程序。
Termux結合了強大的終端仿真和廣泛的Linux軟件包集合。它也是完全免費且易於使用的。
從Play商店安裝Termux後,首先要運行apt update
命令。根據文檔:“此命令需要在安裝後立即運行,之後定期運行以接收更新。”
現在是令人興奮的部分。我想討論的最初兩個命令是apt list
和apt list --installed
命令。第一個命令將列出Termux可用的所有軟件包。我們可以看到它支持許多不同的編程語言、文本編輯器,並具有一些有用的實用程序包,例如zip、tar等等。第二個命令將列出所有已安裝的軟件包。我們可以看到Termux已經預安裝了一些軟件包,例如apt和bash。
我在測試Termux時的目標是查看我是否可以組裝一個合適的*PHP開發環境,所以我首先安裝了一個文本編輯器。我更喜歡Vim,但還有一些其他選項可用,例如Emacs和Nano。 Vim的學習曲線有點陡峭,但是一旦你掌握了它的基礎知識,就會變得非常舒適。你可以使用apt install vim
命令獲得Vim。
如果你想了解更多關於vim的信息,這裡有一篇非常好的文章,或者,安裝後,鍵入vimtutor
以使用內置教程。
如果你在Android手機上測試這個,運行vim會帶來第一組問題。我該如何按下Escape鍵? Termux有一個大型快捷鍵列表,可用於模擬Android鍵盤上不可用的按鈕:
命令 | 键 |
---|---|
Volume Up E | Escape键 |
Volume Up T | Tab键 |
Volume Up 1 | F1 (Volume Up 2 → F2,以此类推) |
Volume Up 0 | F10 |
Volume Up B | Alt B (使用readline时向后一个单词) |
Volume Up F | Alt F (使用readline时向前一个单词) |
Volume Up X | Alt X |
Volume Up W | 上箭头键 |
Volume Up A | 左箭头键 |
Volume Up S | 下箭头键 |
Volume Up D | 右箭头键 |
Volume Up L | | (管道字符) |
Volume Up U | _ (下划线) |
Volume Up P | Page Up |
Volume Up N | Page Down |
Volume Up . | Ctrl (SIGQUIT) |
Volume Up V | 显示音量控制 |
現在我們的編輯器已經啟動並運行,是時候安裝我們需要的軟件包了:PHP、Git和Composer。
apt install php apt install git
這將安裝最新的PHP和Git軟件包。
對於Composer,我們需要做一些額外的工作。我們需要轉到Composer下載頁面並使用命令行安裝說明:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('SHA384', 'composer-setup.php') === '55d6ead61b29c7bdee5cccfb50076874187bd9f21f65d8991d46ec5cc90518f447387fb9f76ebae1fbbacf329e583e30') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');"
這將下載安裝程序、驗證它、運行它並刪除它。如果一切順利,我們應該能夠從Termux運行Composer。
現在我們已經安裝了所有工具,我們應該測試我們的PHP安裝是否正確運行。為此,讓我們進行一個簡單的phpinfo()
測試。讓我們創建一個新文件夾並測試我們的PHP安裝。
mkdir test cd test echo "<?php phpinfo();" ?> > index.php php -S localhost:8080
這將創建一個新文件夾,然後在其中創建一個包含phpinfo()
命令的index.php
文件。我直接將其回顯到文件中,但你可以使用Vim來完成它。最後,我們使用PHP服務器將其提供給我們的localhost。當在瀏覽器中訪問localhost:8080時,我們應該看到類似這樣的內容:
我們現在擁有用於依賴項管理的Composer和用於版本控制的git。但是我知道你在想什麼:“我們剛剛進行了一個簡單的phpinfo
測試,其餘的呢?”
我們可以在Android設備上安裝Laravel嗎?
此時,我們擁有在Android設備上安裝和運行Laravel所需的一切。要創建一個新的Laravel項目,我們需要運行以下命令:
php composer.phar create-project --prefer-dist laravel/laravel new_project
這將在new_project
文件夾中創建一個新的Laravel項目。 --prefer-dist
選項在此處有很好的文檔說明。安裝可能需要一段時間。完成後,我們可以使用Laravel自己的Artisan命令行界面運行我們新創建的項目。在new_project
文件夾內,我們可以運行以下命令:
php artisan serve
在瀏覽器中訪問localhost:8000 URL應該現在顯示Laravel的首頁。
成功!我們的Laravel安裝已完成。我們已成功安裝了編寫和執行代碼所需的工具。但是,如果沒有持久化數據的方法,任何開發環境都不完整。
對於Android設備,大多數情況下,內存和存儲容量都是實際問題。因此,Termux僅提供SQLite作為持久化數據的方法。 SQLite是一個無服務器的文件型數據庫引擎。它很輕量級,非常適合少量數據,正如你在這里和這篇超越基礎知識的文章中所讀到的那樣。首先,我們需要安裝它。
apt install php apt install git
接下來,我們需要配置我們的Laravel項目以使用SQLite。在項目的根目錄中,我們有一個.env
文件。這是環境配置文件,是我們需要編輯的第一個文件。使用你選擇的編輯器來編輯以下幾行:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('SHA384', 'composer-setup.php') === '55d6ead61b29c7bdee5cccfb50076874187bd9f21f65d8991d46ec5cc90518f447387fb9f76ebae1fbbacf329e583e30') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');"
然後轉到config/database.php
文件並將以下行從:
mkdir test cd test echo "<?php phpinfo();" ?> > index.php php -S localhost:8080
更改為:
php composer.phar create-project --prefer-dist laravel/laravel new_project
這將使SQLite成為connections
數組中的默認連接。 確保database.sqlite
文件路徑正確指向你的數據庫文件。
database.sqlite
文件尚不存在,因此我們需要創建它:
php artisan serve
這是我們需要告訴Laravel使用SQLite的所有配置——我們現在可以測試它了。我們將使用Laravel預構建的身份驗證系統。要創建腳手架,我們需要運行以下命令:
apt install sqlite
之後,我們將運行遷移以構建我們的數據庫模式。這將創建users
和password_reset
表。
<code>DB_CONNECTION=sqlite DB_DATABASE=homestead # 或者更改为你的数据库名称</code>
如果我們再次運行php artisan serve
,我們將看到現在可以選擇註冊和登錄。我們的身份驗證CRUD已成功創建!
結論
我在我的Android手機上完成了所有這些操作。此設置非常適合小型開發任務,因為它擁有開始在較小設備上進行開發所需的所有工具,無需隨身攜帶筆記本電腦。
雖然它並非生產力的巔峰之作,但在需要緊急修復或想要查看可以從Android設備中榨取多少PHP性能時,它很容易派上用場。
嘗試一下並告訴我們你的想法,如果你在Android上用PHP構建了一些有趣的東西,請向我們推銷你的概念,我們將撰寫關於它的文章!
*“合適”指針對上下文的合適。 Android手機不會運行MySQL,也無法運行複雜的測試套件,尤其是端到端測試,但其他一些東西可能運行得足夠好,可以完成一些工作。
(FAQs部分略去,因為與偽原創目標不符,且篇幅過長。)
以上是Android Elephpant-您的Android手機上的Laravel?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

負載均衡會影響會話管理,但可以通過會話複製、會話粘性和集中式會話存儲解決。 1.會話複製在服務器間複製會話數據。 2.會話粘性將用戶請求定向到同一服務器。 3.集中式會話存儲使用獨立服務器如Redis存儲會話數據,確保數據共享。

Sessionlockingisatechniqueusedtoensureauser'ssessionremainsexclusivetooneuseratatime.Itiscrucialforpreventingdatacorruptionandsecuritybreachesinmulti-userapplications.Sessionlockingisimplementedusingserver-sidelockingmechanisms,suchasReentrantLockinJ

PHP會話的替代方案包括Cookies、Token-basedAuthentication、Database-basedSessions和Redis/Memcached。 1.Cookies通過在客戶端存儲數據來管理會話,簡單但安全性低。 2.Token-basedAuthentication使用令牌驗證用戶,安全性高但需額外邏輯。 3.Database-basedSessions將數據存儲在數據庫中,擴展性好但可能影響性能。 4.Redis/Memcached使用分佈式緩存提高性能和擴展性,但需額外配

Sessionhijacking是指攻擊者通過獲取用戶的sessionID來冒充用戶。防範方法包括:1)使用HTTPS加密通信;2)驗證sessionID的來源;3)使用安全的sessionID生成算法;4)定期更新sessionID。

本文比較了PHP和ASP.NET,重點是它們對大規模Web應用程序,性能差異和安全功能的適用性。兩者對於大型項目都是可行的,但是PHP是開源和無關的,而ASP.NET,


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

WebStorm Mac版
好用的JavaScript開發工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),