diff --git a/.gitignore b/.gitignore index e655bf4..9de0214 100644 --- a/.gitignore +++ b/.gitignore @@ -3,19 +3,13 @@ .DS_Store # Website -Open-RSC-Website +Website/Open-RSC-Website # Game -Open-RSC - -# Netbeans -nbproject/ -/nbproject/ -/nbproject/private/ -/nbproject/private/private.properties - -# SSL Certs -etc/ssl/ +Game/ # Database -data +Website/data + +# SSL Certs +Website/etc/ssl/ diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 8ec1978..0000000 --- a/.travis.yml +++ /dev/null @@ -1,30 +0,0 @@ -sudo: required - -env: - DOCKER_COMPOSE_VERSION: 1.18.0 - -services: - - docker - -before_install: - - sudo apt update - - sudo rm /usr/local/bin/docker-compose - - curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose - - chmod +x docker-compose - - sudo mv docker-compose /usr/local/bin - - docker-compose --version - -before_script: - - sudo make docker-start - - sleep 2m - -script: - - sudo make apidoc - - sudo make gen-certs - - sudo make mysql-dump - - sudo make mysql-restore - - sudo make phpmd - - sudo make test - -after_script: - - sudo make docker-stop \ No newline at end of file diff --git a/Makefile b/Makefile index bc30029..ae47f8c 100644 --- a/Makefile +++ b/Makefile @@ -3,23 +3,23 @@ include .env # MySQL -MYSQL_DUMPS_DIR=data/db/dumps +MYSQL_DUMPS_DIR=data/db help: @echo "" @echo "usage: make COMMAND" @echo "" @echo "Commands:" - @echo " clone Clone the GitHub repos" - @echo " pull Get the latest GitHub repo updates" + @echo " clone Clone the git repository folders" + @echo " pull Get the latest git repository updates" @echo " start Create and start containers" - @echo " stop Stop all services" - @echo " restart Restart containers" - @echo " logs Follow log output" - @echo " import Import all databases from the GitHub repos" - @echo " dump Create backup of all local databases" + @echo " stop Stop all containers" + @echo " restart Restart all containers" + @echo " logs Display log output" + @echo " import Import all databases from git repositories" + @echo " backup Create backup of all local databases" @echo " restore Restore backup of all local databases" - @echo " flush Delete local GitHub repos" + @echo " flush Delete local git repository folders" @echo "" start: init @@ -33,34 +33,32 @@ restart: init docker-compose up -d clone: - @$(shell git clone https://github.com/Marwolf/Open-RSC-Website.git) - @$(shell git clone https://github.com/Marwolf/Open-RSC) - @$(shell sudo chmod -R 777 Open-RSC-Website/board/cache/ && sudo chmod 644 Open-RSC-Website/board/config.php) + @$(shell cd Website && git clone https://github.com/Marwolf/Open-RSC-Website.git) + @$(shell cd Game && git clone https://github.com/Marwolf/Open-RSC-Game.git) + @$(shell sudo chmod -R 777 Website/Open-RSC-Website && sudo chmod -R 777 Game/Open-RSC-Game && sudo chmod 644 Website/Open-RSC-Website/board/config.php) pull: - @$(shell cd Open-RSC-Website && git pull && cd .. && cd Open-RSC && git pull && cd ..) + @$(shell cd Website/Open-RSC-Website && git pull) + @$(shell cd Game/Open-RSC-Game && git pull) logs: @docker-compose logs -f -dump: +backup: @mkdir -p $(MYSQL_DUMPS_DIR) - @docker exec $(shell docker-compose ps -q mysqldb) mysqldump --all-databases -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" > $(MYSQL_DUMPS_DIR)/db.sql 2>/dev/null + @docker exec $(shell docker-compose ps -q mysqldb) mysqldump --all-databases -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" > Website/$(MYSQL_DUMPS_DIR)/db.sql 2>/dev/null @make resetOwner restore: - @docker exec -i $(shell docker-compose ps -q mysqldb) mysql -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" < $(MYSQL_DUMPS_DIR)/db.sql 2>/dev/null + @docker exec -i $(shell docker-compose ps -q mysqldb) mysql -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" < Website/$(MYSQL_DUMPS_DIR)/db.sql 2>/dev/null import: - @docker exec -i $(shell docker-compose ps -q mysqldb) mysql -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" < Open-RSC/Databases/openrsc_config.sql 2>/dev/null - @docker exec -i $(shell docker-compose ps -q mysqldb) mysql -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" < Open-RSC/Databases/openrsc_logs.sql 2>/dev/null - @docker exec -i $(shell docker-compose ps -q mysqldb) mysql -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" < Open-RSC/Databases/openrsc.sql 2>/dev/null - @docker exec -i $(shell docker-compose ps -q mysqldb) mysql -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" < Open-RSC-Website/openrsc_forum.sql 2>/dev/null + @docker exec -i $(shell docker-compose ps -q mysqldb) mysql -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" < Game/Open-RSC-Game/Databases/openrsc_config.sql 2>/dev/null + @docker exec -i $(shell docker-compose ps -q mysqldb) mysql -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" < Game/Open-RSC-Game/Databases/openrsc_logs.sql 2>/dev/null + @docker exec -i $(shell docker-compose ps -q mysqldb) mysql -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" < Game/Open-RSC-Game/Databases/openrsc.sql 2>/dev/null + @docker exec -i $(shell docker-compose ps -q mysqldb) mysql -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" < Website/Open-RSC-Website/openrsc_forum.sql 2>/dev/null flush: - @$(shell rm -rf Open-RSC-Website && rm -rf Open-RSC) - -resetOwner: - @$(shell chown -Rf $(SUDO_USER):$(shell id -g -n $(SUDO_USER)) $(MYSQL_DUMPS_DIR) "$(shell pwd)/etc/ssl" 2> /dev/null) + @$(shell rm -rf Website/Open-RSC-Website && rm -rf Game/Open-RSC-Game) .PHONY: clean test code-sniff init diff --git a/README.md b/README.md index 6c736c0..f44a2de 100644 --- a/README.md +++ b/README.md @@ -1,42 +1,16 @@ -# Nginx PHP MySQL [![Build Status](https://travis-ci.org/nanoninja/docker-nginx-php-mysql.svg?branch=master)](https://travis-ci.org/nanoninja/docker-nginx-php-mysql) [![GitHub version](https://badge.fury.io/gh/nanoninja%2Fdocker-nginx-php-mysql.svg)](https://badge.fury.io/gh/nanoninja%2Fdocker-nginx-php-mysql) - -Docker running Nginx, PHP-FPM, Composer, MySQL and PHPMyAdmin. - ## Overview 1. [Install prerequisites](#install-prerequisites) - Before installing project make sure the following prerequisites have been met. - 2. [Clone the project](#clone-the-project) - We’ll download the code from its repository on GitHub. - -3. [Configure Nginx With SSL Certificates](#configure-nginx-with-ssl-certificates) [`Optional`] - - We'll generate and configure SSL certificate for nginx before running server. - -4. [Configure Xdebug](#configure-xdebug) [`Optional`] - - We'll configure Xdebug for IDE (PHPStorm or Netbeans). - -5. [Run the application](#run-the-application) - - By this point we’ll have all the project pieces in place. - -6. [Use Makefile](#use-makefile) [`Optional`] - - When developing, you can use `Makefile` for doing recurrent operations. - -7. [Use Docker Commands](#use-docker-commands) - - When running, you can use docker commands for doing recurrent operations. +3. [Run the application](#run-the-application) ___ ## Install prerequisites -For now, this project has been mainly created for Unix `(Linux/MacOS)`. Perhaps it could work on Windows. +This project has been created for `(Linux/MacOS)`. All requisites should be available for your distribution. The most important are : @@ -44,47 +18,25 @@ All requisites should be available for your distribution. The most important are * [Docker](https://docs.docker.com/engine/installation/) * [Docker Compose](https://docs.docker.com/compose/install/) -Check if `docker-compose` is already installed by entering the following command : +Check if `docker-compose` is already installed by entering the following command : ```sh which docker-compose ``` -Check Docker Compose compatibility : - -* [Compose file version 3 reference](https://docs.docker.com/compose/compose-file/) - -The following is optional but makes life more enjoyable : - -```sh -which make -``` - On Ubuntu and Debian these are available in the meta-package build-essential. On other distributions, you may need to install the GNU C++ compiler separately. ```sh sudo apt install build-essential ``` -### Images to use - -* [Nginx](https://hub.docker.com/_/nginx/) -* [MySQL](https://hub.docker.com/_/mysql/) -* [PHP-FPM](https://hub.docker.com/r/nanoninja/php-fpm/) -* [Composer](https://hub.docker.com/_/composer/) -* [PHPMyAdmin](https://hub.docker.com/r/phpmyadmin/phpmyadmin/) -* [Generate Certificate](https://hub.docker.com/r/jacoelho/generate-certificate/) - -You should be careful when installing third party web servers such as MySQL or Nginx. - This project use the following ports : | Server | Port | |------------|------| -| MySQL | 8989 | +| MySQL | 3306 | | PHPMyAdmin | 8080 | -| Nginx | 8000 | -| Nginx SSL | 3000 | +| Nginx | 80 | ___ @@ -102,37 +54,6 @@ Go to the project directory : cd docker-nginx-php-mysql ``` -### Project tree - -```sh -. -├── Makefile -├── README.md -├── data -│ └── db -│ ├── dumps -│ └── mysql -├── doc -├── docker-compose.yml -├── etc -│ ├── nginx -│ │ ├── default.conf -│ │ └── default.template.conf -│ ├── php -│ │ └── php.ini -│ └── ssl -└── web - ├── app - │ ├── composer.json.dist - │ ├── phpunit.xml.dist - │ ├── src - │ │ └── Foo.php - │ └── test - │ ├── FooTest.php - │ └── bootstrap.php - └── public - └── index.php -``` ___ @@ -142,17 +63,11 @@ You can change the host name by editing the `.env` file. If you modify the host name, do not forget to add it to the `/etc/hosts` file. -1. Generate SSL certificates +1. Configure Nginx - ```sh - source .env && sudo docker run --rm -v $(pwd)/etc/ssl:/certificates -e "SERVER=$NGINX_HOST" jacoelho/generate-certificate - ``` + Do not modify the `Website/etc/nginx/default.conf` file, it is overwritten by `Website/etc/nginx/default.template.conf` -2. Configure Nginx - - Do not modify the `etc/nginx/default.conf` file, it is overwritten by `etc/nginx/default.template.conf` - - Edit nginx file `etc/nginx/default.template.conf` and uncomment the SSL server section : + Edit nginx file `Website/etc/nginx/default.template.conf` and uncomment the SSL server section : ```sh # server { @@ -166,206 +81,74 @@ If you modify the host name, do not forget to add it to the `/etc/hosts` file. ___ -## Configure Xdebug - -If you use another IDE than [PHPStorm](https://www.jetbrains.com/phpstorm/) or [Netbeans](https://netbeans.org/), go to the [remote debugging](https://xdebug.org/docs/remote) section of Xdebug documentation. - -For a better integration of Docker to PHPStorm, use the [documentation](https://github.com/nanoninja/docker-nginx-php-mysql/blob/master/doc/phpstorm-macosx.md). - -1. Get your own local IP address : - - ```sh - sudo ifconfig - ``` - -2. Edit php file `etc/php/php.ini` and comment or uncomment the configuration as needed. - -3. Set the `remote_host` parameter with your IP : - - ```sh - xdebug.remote_host=192.168.0.1 # your IP - ``` -___ - ## Run the application -1. Copying the composer configuration file : +1. Start the Docker application : ```sh - cp web/app/composer.json.dist web/app/composer.json - ``` - -2. Start the application : - - ```sh - sudo docker-compose up -d + sudo make start ``` **Please wait this might take a several minutes...** ```sh - sudo docker-compose logs -f # Follow log output + sudo make logs # Follow log output ``` -3. Open your favorite browser : - - * [http://localhost:8000](http://localhost:8000/) - * [https://localhost:3000](https://localhost:3000/) ([HTTPS](#configure-nginx-with-ssl-certificates) not configured by default) - * [http://localhost:8080](http://localhost:8080/) PHPMyAdmin (username: dev, password: dev) - -4. Stop and clear services +2. Clone the required git repositories: ```sh - sudo docker-compose down -v + sudo make clone + ``` + +3. Import the required databases: + + ```sh + sudo make import + ``` + +4. Open your favorite browser : + + * [http://localhost](http://localhost/) + * [http://localhost:8080](http://localhost:8080/) PHPMyAdmin (username: root, password: root) + +5. Backup your databases: + + ```sh + sudo make backup + ``` + +6. Restore your databases: + + ```sh + sudo make restore + ``` + +7. Get help: + + ```sh + sudo make help + ``` + +8. Stop the application: + + ```sh + sudo make stop ``` ___ -## Use Makefile - -When developing, you can use [Makefile](https://en.wikipedia.org/wiki/Make_(software)) for doing the following operations : +## Additional commands | Name | Description | |---------------|----------------------------------------------| -| apidoc | Generate documentation of API | -| clean | Clean directories for reset | -| code-sniff | Check the API with PHP Code Sniffer (`PSR2`) | -| composer-up | Update PHP dependencies with composer | -| docker-start | Create and start containers | -| docker-stop | Stop and clear all services | -| gen-certs | Generate SSL certificates for `nginx` | -| logs | Follow log output | -| mysql-dump | Create backup of all databases | -| mysql-restore | Restore backup of all databases | -| phpmd | Analyse the API with PHP Mess Detector | -| test | Test application with phpunit | - -### Examples - -Start the application : - -```sh -sudo make docker-start -``` - -Show help : - -```sh -make help -``` - -___ - -## Use Docker commands - -### Installing package with composer - -```sh -sudo docker run --rm -v $(pwd)/web/app:/app composer require symfony/yaml -``` - -### Updating PHP dependencies with composer - -```sh -sudo docker run --rm -v $(pwd)/web/app:/app composer update -``` - -### Generating PHP API documentation - -```sh -sudo docker-compose exec -T php php -d memory_limit=256M -d xdebug.profiler_enable=0 ./app/vendor/bin/apigen generate app/src --destination ./app/doc -``` - -### Testing PHP application with PHPUnit - -```sh -sudo docker-compose exec -T php ./app/vendor/bin/phpunit --colors=always --configuration ./app -``` - -### Fixing standard code with [PSR2](http://www.php-fig.org/psr/psr-2/) - -```sh -sudo docker-compose exec -T php ./app/vendor/bin/phpcbf -v --standard=PSR2 ./app/src -``` - -### Checking the standard code with [PSR2](http://www.php-fig.org/psr/psr-2/) - -```sh -sudo docker-compose exec -T php ./app/vendor/bin/phpcs -v --standard=PSR2 ./app/src -``` - -### Analyzing source code with [PHP Mess Detector](https://phpmd.org/) - -```sh -sudo docker-compose exec -T php ./app/vendor/bin/phpmd ./app/src text cleancode,codesize,controversial,design,naming,unusedcode -``` - -### Checking installed PHP extensions - -```sh -sudo docker-compose exec php php -m -``` - -### Handling database - -#### MySQL shell access - -```sh -sudo docker exec -it mysql bash -``` - -and - -```sh -mysql -u"$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASSWORD" -``` - -#### Creating a backup of all databases - -```sh -mkdir -p data/db/dumps -``` - -```sh -source .env && sudo docker exec $(sudo docker-compose ps -q mysqldb) mysqldump --all-databases -u"$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASSWORD" > "data/db/dumps/db.sql" -``` - -#### Restoring a backup of all databases - -```sh -source .env && sudo docker exec -i $(sudo docker-compose ps -q mysqldb) mysql -u"$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASSWORD" < "data/db/dumps/db.sql" -``` - -#### Creating a backup of single database - -**`Notice:`** Replace "YOUR_DB_NAME" by your custom name. - -```sh -source .env && sudo docker exec $(sudo docker-compose ps -q mysqldb) mysqldump -u"$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASSWORD" --databases YOUR_DB_NAME > "data/db/dumps/YOUR_DB_NAME_dump.sql" -``` - -#### Restoring a backup of single database - -```sh -source .env && sudo docker exec -i $(sudo docker-compose ps -q mysqldb) mysql -u"$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASSWORD" < "data/db/dumps/YOUR_DB_NAME_dump.sql" -``` - - -#### Connecting MySQL from [PDO](http://php.net/manual/en/book.pdo.php) - -```php -getMessage(); - } -?> -``` - -___ - -## Help us - -Any thought, feedback or (hopefully not!) \ No newline at end of file +| clone | Clone the git repository folders | +| pull | Get the latest git repository updates | +| start | Create and start containers | +| stop | Stop all containers | +| restart | Restart all containers | +| logs | Display log output | +| import | Import all databases from git repositories | +| backup | Create backup of all local databases | +| restore | Restore backup of all local databases | +| flush | Delete local git repository folders | diff --git a/etc/nginx/default.conf b/Website/etc/nginx/default.conf similarity index 100% rename from etc/nginx/default.conf rename to Website/etc/nginx/default.conf diff --git a/etc/nginx/default.template.conf b/Website/etc/nginx/default.template.conf similarity index 100% rename from etc/nginx/default.template.conf rename to Website/etc/nginx/default.template.conf diff --git a/etc/php/php.ini b/Website/etc/php/php.ini similarity index 100% rename from etc/php/php.ini rename to Website/etc/php/php.ini diff --git a/doc/configure-cacert-for-local-macosx.md b/doc/configure-cacert-for-local-macosx.md deleted file mode 100644 index 5af87db..0000000 --- a/doc/configure-cacert-for-local-macosx.md +++ /dev/null @@ -1,26 +0,0 @@ -# Configure Local CA CERT with MacOS - -## 1. The warning you receive while developing locally. - -![Warning](images/cacert-1-warning.png) - -## 2. Open the keychain app. - -![Open Keychain](images/cacert-2-open-keychain.png) - -## 3. Use File --> Import to add the ca cert you've already created. - -![Add CA Cert](images/cacert-3-add-cacert-file-import.png) - -## 4. Once added, locate it via the search box. - -![Localhost Search Box](images/cacert-4-locate-cert.png) - -## 5. Set to always trust. - -![Trust The Cert](images/cacert-5-set-to-always-trust.png) - -## 6. Reload the webpage. - -![The Results](images/cacert-6-reload-page.png) - diff --git a/doc/images/cacert-1-warning.png b/doc/images/cacert-1-warning.png deleted file mode 100644 index 2a1365b..0000000 Binary files a/doc/images/cacert-1-warning.png and /dev/null differ diff --git a/doc/images/cacert-2-open-keychain.png b/doc/images/cacert-2-open-keychain.png deleted file mode 100644 index 7a90788..0000000 Binary files a/doc/images/cacert-2-open-keychain.png and /dev/null differ diff --git a/doc/images/cacert-3-add-cacert-file-import.png b/doc/images/cacert-3-add-cacert-file-import.png deleted file mode 100644 index f7dea1f..0000000 Binary files a/doc/images/cacert-3-add-cacert-file-import.png and /dev/null differ diff --git a/doc/images/cacert-4-locate-cert.png b/doc/images/cacert-4-locate-cert.png deleted file mode 100644 index 4031a8a..0000000 Binary files a/doc/images/cacert-4-locate-cert.png and /dev/null differ diff --git a/doc/images/cacert-5-set-to-always-trust.png b/doc/images/cacert-5-set-to-always-trust.png deleted file mode 100644 index 6e7fee0..0000000 Binary files a/doc/images/cacert-5-set-to-always-trust.png and /dev/null differ diff --git a/doc/images/cacert-6-reload-page.png b/doc/images/cacert-6-reload-page.png deleted file mode 100644 index 3bbeb42..0000000 Binary files a/doc/images/cacert-6-reload-page.png and /dev/null differ diff --git a/doc/images/ps-mac-php-cli-add-interpreter.png b/doc/images/ps-mac-php-cli-add-interpreter.png deleted file mode 100644 index 46b5aca..0000000 Binary files a/doc/images/ps-mac-php-cli-add-interpreter.png and /dev/null differ diff --git a/doc/images/ps-mac-php-interpreter.png b/doc/images/ps-mac-php-interpreter.png deleted file mode 100644 index 48ba727..0000000 Binary files a/doc/images/ps-mac-php-interpreter.png and /dev/null differ diff --git a/doc/images/ps-mac-php-phpunit-config.png b/doc/images/ps-mac-php-phpunit-config.png deleted file mode 100644 index fb64c33..0000000 Binary files a/doc/images/ps-mac-php-phpunit-config.png and /dev/null differ diff --git a/doc/images/ps-mac-php-phpunit-demo.png b/doc/images/ps-mac-php-phpunit-demo.png deleted file mode 100644 index c76b06d..0000000 Binary files a/doc/images/ps-mac-php-phpunit-demo.png and /dev/null differ diff --git a/doc/images/ps-mac-php-phpunit.png b/doc/images/ps-mac-php-phpunit.png deleted file mode 100644 index a9bff94..0000000 Binary files a/doc/images/ps-mac-php-phpunit.png and /dev/null differ diff --git a/doc/images/ps-mac-php-xdebug-demo.png b/doc/images/ps-mac-php-xdebug-demo.png deleted file mode 100644 index 9d520de..0000000 Binary files a/doc/images/ps-mac-php-xdebug-demo.png and /dev/null differ diff --git a/doc/images/ps-mac-php-xdebug-proxy.png b/doc/images/ps-mac-php-xdebug-proxy.png deleted file mode 100644 index 6c88dca..0000000 Binary files a/doc/images/ps-mac-php-xdebug-proxy.png and /dev/null differ diff --git a/doc/images/ps-mac-php-xdebug-server.png b/doc/images/ps-mac-php-xdebug-server.png deleted file mode 100644 index 77014ce..0000000 Binary files a/doc/images/ps-mac-php-xdebug-server.png and /dev/null differ diff --git a/doc/images/ps-mac-php-xdebug.png b/doc/images/ps-mac-php-xdebug.png deleted file mode 100644 index 08da762..0000000 Binary files a/doc/images/ps-mac-php-xdebug.png and /dev/null differ diff --git a/doc/phpstorm-macosx.md b/doc/phpstorm-macosx.md deleted file mode 100644 index 177946d..0000000 --- a/doc/phpstorm-macosx.md +++ /dev/null @@ -1,71 +0,0 @@ -# Configure PHPStorm with MacOS - -Inspired from this following links : - -- [Running PHPUnit Tests in PhpStorm with Docker](https://www.youtube.com/watch?v=I7aGWO6K3Ho) -- [All hail Xdebug and lets let var dump die](http://jamescowie.me/blog/2016/12/all-hail-xdebug-and-lets-let-var-dump-die/) - -## Edit PHP configuration - -![PHP CLI Interpreter](images/ps-mac-php-interpreter.png) - -## Add a PHP interpreter - -![Add PHP CLI Interpreter](images/ps-mac-php-cli-add-interpreter.png) - -## Configure PHPUnit - -![PHPUnit](images/ps-mac-php-phpunit.png) - -### Add test configuration - -![PHPUnit Config](images/ps-mac-php-phpunit-config.png) - -### PHPUnit Demo - -![PHPUnit Demo](images/ps-mac-php-phpunit-demo.png) - -## Configure XDebug - -### Edit `etc/php.ini` file - -Add this following lines : - -```sh -[xdebug] -xdebug.remote_host = 10.254.254.254 -xdebug.remote_port = 9000 -xdebug.remote_autostart=1 -xdebug.idekey = PHPSTORM -xdebug.remote_enable = 1 -xdebug.remote_connect_back = 0 -xdebug.profiler_enable = 1 -``` - -### Check Debug section - -![Xdebug](images/ps-mac-php-xdebug.png) - -### Add a debug server - -![XDebug Server](images/ps-mac-php-xdebug-server.png) - -### Configure XDebug Proxy - -Create an IP Alias : - -```sh -sudo ifconfig en0 alias 10.254.254.254 255.255.255.0 -``` - -![Xdebug Proxy](images/ps-mac-php-xdebug-proxy.png) - -To delete an IP Alias : - -```sh -sudo ifconfig en0 -alias 10.254.254.254 -``` - -### XDebug Demo - -![XDebug Demo](images/ps-mac-php-xdebug-demo.png) \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 32d3586..2b66a73 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,10 +3,10 @@ services: web: image: nginx:alpine volumes: - - "./etc/nginx/default.conf:/etc/nginx/conf.d/default.conf" - - "./etc/ssl:/etc/ssl" - - "./Open-RSC-Website:/var/www/html/public" - - "./etc/nginx/default.template.conf:/etc/nginx/conf.d/default.template" + - "./Website/etc/nginx/default.conf:/etc/nginx/conf.d/default.conf" + - "./Website/etc/ssl:/etc/ssl" + - "./Website/Open-RSC-Website:/var/www/html/public" + - "./Website/etc/nginx/default.template.conf:/etc/nginx/conf.d/default.template" ports: - "80:80" - "443:443" @@ -21,8 +21,8 @@ services: image: nanoninja/php-fpm:${PHP_VERSION} restart: always volumes: - - "./etc/php/php.ini:/usr/local/etc/php/conf.d/php.ini" - - "./Open-RSC-Website:/var/www/html/public" + - "./Website/etc/php/php.ini:/usr/local/etc/php/conf.d/php.ini" + - "./Website/Open-RSC-Website:/var/www/html/public" myadmin: image: phpmyadmin/phpmyadmin container_name: phpmyadmin @@ -48,4 +48,4 @@ services: ports: - "3306:3306" volumes: - - "./data/db/mysql:/var/lib/mysql" + - "./Website/data/db/mysql:/var/lib/mysql"