Setting up a development environment with PHP, MySQL, Nginx, Composer, Node.js, npm, Laravel, and React
Setting up a development environment with PHP, MySQL, Nginx, Composer, Node.js, npm, Laravel, and React involves several steps. Here’s a step-by-step guide to get you up and running:
### 1. Install PHP
1. **For Windows:**
- Download the PHP binaries from [PHP's official website](https://windows.php.net/download/).
- Extract the files and add the directory to your system's PATH environment variable.
- Open Command Prompt and type `php -v` to verify the installation.
2. **For macOS:**
- Use Homebrew to install PHP:
```bash
brew install php
```
- Verify the installation:
```bash
php -v
```
3. **For Linux:**
- Use your package manager. For Debian-based systems (like Ubuntu):
```bash
sudo apt update
sudo apt install php php-cli
```
- Verify the installation:
```bash
php -v
```
### 2. Install MySQL
1. **For Windows:**
- Download and install MySQL from [MySQL's official website](https://dev.mysql.com/downloads/installer/).
- Follow the setup instructions and configure as needed.
2. **For macOS:**
- Use Homebrew:
```bash
brew install mysql
```
- Start MySQL:
```bash
brew services start mysql
```
- Secure your installation:
```bash
mysql_secure_installation
```
3. **For Linux:**
- Use your package manager. For Debian-based systems:
```bash
sudo apt update
sudo apt install mysql-server
```
- Secure your installation:
```bash
sudo mysql_secure_installation
```
### 3. Install Nginx
1. **For Windows:**
- Download Nginx from [nginx.org](http://nginx.org/en/download.html).
- Extract and configure as needed. Start Nginx by running `nginx.exe`.
2. **For macOS:**
- Use Homebrew:
```bash
brew install nginx
```
- Start Nginx:
```bash
sudo brew services start nginx
```
3. **For Linux:**
- Use your package manager. For Debian-based systems:
```bash
sudo apt update
sudo apt install nginx
```
- Start Nginx:
```bash
sudo systemctl start nginx
```
### 4. Install Composer
1. **For all systems:**
- Download and install Composer:
```bash
curl -sS https://getcomposer.org/installer | php
```
- Move Composer to a global location:
```bash
mv composer.phar /usr/local/bin/composer
```
- Verify the installation:
```bash
composer --version
```
### 5. Install Node.js and npm
1. **For all systems:**
- Use the NodeSource repository for the latest versions:
```bash
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
```
- Verify the installation:
```bash
node -v
npm -v
```
### 6. Install Laravel
1. **Create a new Laravel project:**
```bash
composer create-project --prefer-dist laravel/laravel my-laravel-app
```
2. **Navigate into the project directory:**
```bash
cd my-laravel-app
```
3. **Run Laravel’s development server:**
```bash
php artisan serve
```
### 7. Install React
1. **Create a new React project using Create React App:**
```bash
npx create-react-app my-react-app
```
2. **Navigate into the project directory:**
```bash
cd my-react-app
```
3. **Start the React development server:**
```bash
npm start
```
### 8. Configure Nginx for Laravel
1. **Create a new Nginx configuration file:**
```bash
sudo nano /etc/nginx/sites-available/laravel
```
2. **Add the following configuration:**
```nginx
server {
listen 80;
server_name your_domain_or_IP;
root /path/to/your/laravel/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
```
3. **Enable the configuration and restart Nginx:**
```bash
sudo ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/
sudo systemctl restart nginx
```
### 9. Connect React and Laravel (Optional)
- **If you want Laravel to serve as a backend API for your React app:**
- In your Laravel project, set up API routes in `routes/api.php`.
- In your React app, use Axios or Fetch API to make requests to your Laravel backend.
### Summary
- **PHP**: Install via binaries or package manager.
- **MySQL**: Install via binaries or package manager.
- **Nginx**: Install via binaries or package manager.
- **Composer**: Install globally using PHP.
- **Node.js and npm**: Install via NodeSource.
- **Laravel**: Create a project using Composer.
- **React**: Create a project using Create React App.
- **Nginx Configuration**: Set up Nginx to serve Laravel and optionally handle React.
Feel free to ask if you need help with any specific part of this setup!
Comments
Post a Comment
What is your thought about this?