Docker + LAMP + Codeigniter

上班沒事玩一下新玩意,順便記錄一下

Docker →使用手冊

安裝Docker這件事有點困難,暫時放棄,有VPS提供一鍵安裝的,先用

比較常用的Docker指令

列出所有映像檔
Docker images
建立容器並進入
docker run -p 80:80 -t -i linode/lamp /bin/bash
離開容器
Ctrl+p + Ctrl+q 或 exit
列出正在執行的容器
docker ps
刪除正在執行的容器
docker stop [names]
匯出容器
docker export [names] > myapp.tar
匯入容器到映像檔
cat myapp.tar | sudo docker import – mylamp/mylamp:latest

有時候映像檔的名字和標籤會變成none,可以用這個指令修改
docker tag e4209f97e819 myName/myApp:latest

Docker + lamp → https://www.linode.com/docs/applications/containers/how-to-install-docker-and-deploy-a-lamp-stack
相關設定在這 → https://hub.docker.com/r/linode/lamp/

裝好了以後大概會看到這個畫面

安裝composer,之後可以一鍵安裝ci
https://getcomposer.org/download/

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

其實也可以用wget安裝,只是這個映像檔裡面預設沒有裝wgetd,要再裝一下

apt-get install wget

然後wget安裝檔
wget https://getcomposer.org/installer
php installer

安裝好之後就會有,composer.phar,執行只要
php composer.phar

移到bin下面,可以全域使用composer指令
mv composer.phar /usr/local/bin/composer

安裝Codeigniter→https://github.com/kenjis/codeigniter-composer-installer
這個目錄結構有被改過,好處就是可以直接用composer安裝更新
也可以到官網下載原本的→https://codeigniter.org.tw/userguide3/general/welcome.html
原本想用Codeigniter 4,但這個映像檔只提供php5.5,4要用php7
關於Codeigniter 4 → https://bcit-ci.github.io/CodeIgniter4/intro/index.html

裝好了之後,瀏覽http://[server_ip]/codeigniter/public/
應該就能看到畫面

一般都會希望去index.php,要啟動mod_rewrite
很討厭設這個,因為每次都失敗,不過這次有點意外順利
參考這個→https://www.digitalocean.com/community/tutorials/how-to-set-up-mod_rewrite-for-apache-on-ubuntu-14-04
使用的指令
a2enmod rewrite

設定讓apache能使用.htaccess
vi /etc/apache2/sites-enabled/example.com.conf
加入
<Directory /var/www/html>
# Options Indexes FollowSymLinks MultiViews <-建議拿掉不然會有錯誤
AllowOverride All
Order allow,deny
allow from all
</Directory>
存好後重啟apache
service apache2 restart

然後這個版本的ci,說因為安全考量,把index.php搬到public裡面
所以為了縮短網址,要把根目錄設到public
vi /etc/apache2/sites-enabled/example.com.conf

加入以下設定
DocumentRoot “/var/www/example.com/public_html/ci/public”
記得把原本的設定mark掉,不然還是原本的畫面
改好後再重啟apache
瀏覽 http://[server_ip]/ 一樣就可以看到ci歡迎畫面

Leave a Reply

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *