# 僅記錄安裝composer+laravel+mysql **相關參考網址:** https://vocus.cc/article/6299f859fd89780001bd2895 **Nginx安裝參考:** 由於nginx一開始就裝了,也就忘記怎麼裝的。 相關路徑:/etc/nginx、/usr/share/nginx 配置php-fpm: `vi /etc/php-fpm.d/www.conf` 24、26從apache改nginx。 **composer安裝參考:** https://tony915.gitbooks.io/laravel4/content/install/install_composer.html 遇到問題: ``` Some settings on your machine make Composer unable to work properly. Make sure that you fix the issues listed below and run this script again: The json extension is missing. Install it or recompile php without --disable-json ``` 解決的相關網址:https://stackoverflow.com/questions/27437206/composer-installing-the-json-extension-is-missing 安裝路徑:/usr/local/bin (這樣才會是全域指令) 已經將名稱改為composer,可確認版本指令: ``` composer -V ``` **laravel安裝參考:** 路徑:/var/www/laravel 遇到錯誤: ``` Loading composer repositories with package information Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - phpunit/phpunit[8.5.8, ..., 8.5.x-dev] require ext-dom * -> it is missing from your system. Install or enable PHP's dom extension. - phpunit/phpunit[9.3.3, ..., 9.3.8] require php ^7.3 || ^8.0 -> your php version (7.2.24) does not s atisfy that requirement. - phpunit/phpunit[9.3.9, ..., 9.6.x-dev] require php >=7.3 -> your php version (7.2.24) does not sati sfy that requirement. - Root composer.json requires phpunit/phpunit ^8.5.8|^9.3.3 -> satisfiable by phpunit/phpunit[8.5.8, ..., 8.5.x-dev, 9.3.3, ..., 9.6.x-dev]. To enable extensions, verify that they are enabled in your .ini files: - /etc/php.ini - /etc/php.d/20-bz2.ini - /etc/php.d/20-calendar.ini - /etc/php.d/20-ctype.ini - /etc/php.d/20-curl.ini - /etc/php.d/20-exif.ini - /etc/php.d/20-fileinfo.ini - /etc/php.d/20-ftp.ini - /etc/php.d/20-gettext.ini - /etc/php.d/20-iconv.ini - /etc/php.d/20-json.ini - /etc/php.d/20-phar.ini - /etc/php.d/20-sockets.ini - /etc/php.d/20-tokenizer.ini You can also run `php --ini` in a terminal to see which files are used by PHP in CLI mode. Alternatively, you can run Composer with `--ignore-platform-req=ext-dom` to temporarily ignore these requ ired extensions. [root@localhost laravel]# composer install --ignore-platform-req=php No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information. Loading composer repositories with package information Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - phpunit/phpunit[8.5.8, ..., 8.5.x-dev, 9.3.3, ..., 9.6.x-dev] require ext-dom * -> it is missing from your system. Install or enable PHP's dom extension. - Root composer.json requires phpunit/phpunit ^8.5.8|^9.3.3 -> satisfiable by phpunit/phpunit[8.5.8, ..., 8.5.x-dev, 9.3.3, ..., 9.6.x-dev]. To enable extensions, verify that they are enabled in your .ini files: - /etc/php.ini - /etc/php.d/20-bz2.ini - /etc/php.d/20-calendar.ini - /etc/php.d/20-ctype.ini - /etc/php.d/20-curl.ini - /etc/php.d/20-exif.ini - /etc/php.d/20-fileinfo.ini - /etc/php.d/20-ftp.ini - /etc/php.d/20-gettext.ini - /etc/php.d/20-iconv.ini - /etc/php.d/20-json.ini - /etc/php.d/20-phar.ini - /etc/php.d/20-sockets.ini - /etc/php.d/20-tokenizer.ini You can also run `php --ini` in a terminal to see which files are used by PHP in CLI mode. Alternatively, you can run Composer with `--ignore-platform-req=ext-dom` to temporarily ignore these requ ired extensions. ``` 解決方法:https://stackoverflow.com/questions/43408604/php7-install-ext-dom-issue 之後直接輸入 ``` composer install ``` 就行了 **mysql安裝參考**: 不知道為什麼已經安裝好了,但還是找了一個參考網址 https://vocus.cc/article/61891655fd89780001e85c44 路徑:/usr/local/mysql/bin、/var/log/mysql 帳號是root,密碼跟linux的root的密碼一樣。 mysql對資料庫的操作:https://medium.com/web-design-zone/mysql%E8%B3%87%E6%96%99%E5%BA%AB%E7%9A%84%E5%AE%89%E8%A3%9D%E8%88%87%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C-f36a079afd85 **SQL語法:** https://blog.techbridge.cc/2020/02/09/sql-basic-tutorial/ # Nginx 的設定 http://blog.tonycube.com/2018/09/vps-centos-7-nginx-php-fpm-mariadb-8-using-nginx.html # 用RESTful API對user、table進行CRUD等操作 **api與RESTful api:** https://medium.com/itsems-frontend/api-%E6%98%AF%E4%BB%80%E9%BA%BC-restful-api-%E5%8F%88%E6%98%AF%E4%BB%80%E9%BA%BC-a001a85ab638 **laravel設置api:** https://angela52799.medium.com/php-%E5%9F%BA%E6%9C%AC%E9%85%8D%E7%BD%AE%E8%88%87-restful-api-%E5%85%A5%E9%96%80-17a4284b0100 注意:文中的程式碼的 ' 是不一樣的,須改掉 關於Usercontroller.php,chatgpt的解釋: ``` 這是一個用於處理CRUD操作(創建、讀取、更新和刪除)的RESTful API的PHP代碼,針對 UserInfo 模型進行操作。 namespace 表示這是位於 App\Http\Controllers\api 命名空間中的控制器類別。這個類別擴展了Laravel提供的基礎控制器類別 Controller。 UserInfoController 類別有五個方法,每個方法都代表一個CRUD操作: index() 方法返回數據庫中的所有 UserInfo 記錄作為JSON響應,HTTP狀態碼為200。 store(Request $request) 方法接受POST請求,請求體內包含以JSON格式提交的 UserInfo 數據。它使用提供的數據在數據庫中創建一條新的 UserInfo 記錄,並將創建的記錄作為JSON響應返回,HTTP狀態碼為201。 show($id) 方法返回一個以 $id 參數為標識的 UserInfo 記錄,作為JSON響應返回,HTTP狀態碼為200。 update(Request $request, $id) 方法接受PUT/PATCH請求,請求體內包含以JSON格式提交的 UserInfo 數據。它使用提供的數據更新以 $id 參數為標識的 UserInfo 記錄,在更新完成後將更新的記錄作為JSON響應返回,HTTP狀態碼為200。 destroy($id) 方法刪除以 $id 參數為標識的 UserInfo 記錄,返回一個JSON響應,HTTP狀態碼為204,表示請求成功但沒有內容返回。 這個代碼使用了Laravel內置的 response() 方法來返回帶有適當HTTP狀態碼的JSON響應。它還使用了Laravel內置的 findOrFail() 方法來通過ID檢索 UserInfo 記錄,如果未找到該記錄,則會拋出 ModelNotFoundException。 ``` **laravel 與 nginx 設置:** https://hackmd.io/D1FIJHToSpex0rYwQgKJ1w?both Regenerate response