發表文章

目前顯示的是有「lamp」標籤的文章

使用 devilbox 建置 LAMP 環境

 docker 功能很強,可以(被)玩的東西很多,雖然要用 docker 自已建置一個 LAMP 環境也不算太難,單藍如果有人建好 LAMP 可以拿來用不就不難了(嗎?)… 工作環境:     Ubuntu Server 22          docker               devilbox  選用這個套件主要是它把很多伺服器 參數 的控制項都寫好了,整體上來說非常方便設定和使用,使用時透過 .env 來設定就行,(被)玩了好一會兒,覺得這個套件主要還是針對開發人員在本機上運行的,如果是放在伺服器遠端連過去的話,dashboard 會和 vhost 打架… 如果你的不打架,可以留言教一下,感激不盡   列出可能會動到的設定 DEBUG_ENTRYPOINT =4 TLD_SUFFIX =yourdomain.name NEW_UID =1000 NEW_GID =1000 TIMEZONE =Asia/Taipei DEVILBOX_UI_SSL_CN =localhost,*.localhost,devilbox,*.dvl.to DEVILBOX_UI_PROTECT =1 DEVILBOX_UI_PASSWORD =your_password DEVILBOX_UI_ENABLE =0 DEVILBOX_HTTPD_MGMT_USER =userName DEVILBOX_HTTPD_MGMT_PASS =your_password HTTPD_VHOST_SSL_TYPE =redir   #自動將 http 導轉到 https PHP_SERVER =uncomment_version_you_like HTTPD_SERVER =uncomment_version_you_like MYSQL_SERVER =uncomment_version_you_like HTTPD_DOCROOT_DIR =dirNameYouLike MYSQL_ROOT_PASSWORD =your_password PGSQL_ROOT...

耍廢文之裝裝老程式到新系統

 想把老程式裝到新的作業系統上,說是都用 Linux 那就 docker 給它開下去,然後就…   發現了骨感的現實 工作環境:     Ubuntu Server 22 TLS for host     Windows host for Ubuntu 14 PHP 5 VM  先把之前的 vm 從老硬碟裏挖出來  確認一下作業環境、使用的應用程式和套件的版本  開始試那家的 docker 可以少花點力氣,一開始選的 lamp 看起來蠻威的,沒想到開下去沒過多久就卡關了,調了很久,因為就算登進去容器裏也因為拔得作業系統很乾淨了,難搞,常用指令找不到,常用的應用程式沒裝,也沒辦法加裝,就醬花了好幾天,換個好幾個 docker ,終於找到了個不錯的傢伙 compose: apache/nginx 前可以,還可以選版本,PHP 可以從 5 選到 8 版,MySQL/mariadb 都支援選版本,如果想要 pgsql 也行,還支持 redis,又能用 .env 來設定參數,這麼威的工具,而我只需要 LAMP … XD...... 為了讓老物運行起來,應用程式版本盡量貼近 VM 裏的作業系統的版本,省(還)得(是)折騰,好在皇天不負苦(老)心(灰)人(啊),被搞了幾天之後,總算摸出一點路子,希望別花太多生命,腦細胞已死不少,不都說嗎,人腦死就是死了… 收工!

PHP 重新導向失效修復

 最近,把以前的程式拿出來,準備移植到新的舊平台上,怎麼說呢?程式很舊,用的環境很舊,偏偏作業系統很新,而程式很老,只能用老的套件,這有什麼問題嗎?問題就在新的作業系統本身不提供老的套件,也就是說,老程式就算會跳舞也沒舞臺了 另外還發現人也老了…還有就是修舊如舊也是得花很多工夫的… 能修好嗎?問題是 工作環境:   Ubuntu Server 22 LTS     docker: lamp stack          PHP 5.5  光是修這個重新導向可能就要花好多功了,因為之前寫的時侯用了很多跳轉的做法  找到了個不用自已折騰那麼多的做法,把要跳轉的部份從原本的 header(Location: ...) 換成 redirect_rel($relative_url) 就行了 function server_url () {       $proto = "http" .         (( isset ( $_SERVER [ 'HTTPS' ]) && $_SERVER [ 'HTTPS' ] == "on" ) ? "s" : "" ) . "://" ;     $server = isset ( $_SERVER [ 'HTTP_HOST' ]) ?         $_SERVER [ 'HTTP_HOST' ] : $_SERVER [ 'SERVER_NAME' ];     return $proto . $server ; }     function redirect_rel ( $relative_url ) {     $url = server_url () . dirname ( $_SERVER [ 'PHP_SELF' ]) . "/" . $relative_url ;     if (! headers_sent ())   ...