Home >Backend Development >PHP Tutorial >Deploying PHP apps to DigitalOcean with Deploybot
This tutorial demonstrates deploying a PHP application using Deploybot (not Dploy, as the original text mistakenly mentions in several places) on a DigitalOcean droplet. Deploybot's free tier, sufficient for a single application, makes it ideal for testing its capabilities before committing to a paid plan.
Key Features:
/usr/share/nginx/spsearch
), and the deployment user should not be root
but a dedicated user with appropriate permissions.[deploy: production]
) within Git commit messages.Droplet Configuration:
Before starting, create a DigitalOcean droplet (using a referral link for credit is optional) and obtain your DigitalOcean API key. Install Nginx and PHP 5.6 (using the Ondřej Surý PPA for a more recent version than Ubuntu's default) and Composer:
<code class="language-bash">sudo add-apt-repository ppa:ondrej/php5-5.6 sudo apt-get update sudo apt-get install nginx php5-fpm curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer</code>
Create a directory for your application:
<code class="language-bash">sudo mkdir /usr/share/nginx/spsearch</code>
Configure the Nginx virtual host (/etc/nginx/sites-available/default
):
<code class="language-nginx">server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/spsearch; index index.php; server_name search.sitepoint.tools; # Replace with your domain location / { try_files $uri $uri/ =404; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }</code>
Restart Nginx: sudo service nginx restart
Deploybot Setup:
/usr/share/nginx/spsearch
.token.php
file, as described in the original).composer install
to the pre-launch script.Permissions:
Change the deployment user to a non-root user (e.g., swader
), and grant that user appropriate permissions:
<code class="language-bash">sudo usermod -a -G www-data swader sudo chown -R root:www-data /usr/share/nginx sudo chmod -R g+rwX /usr/share/nginx</code>
Log out and back in for group changes to take effect.
Deployment and Updates:
[deploy: production]
in your Git commit message to trigger automatic deployment.This revised response corrects the inaccuracies regarding Dploy.io and provides a clearer, more concise explanation of the deployment process using Deploybot. The image placeholders remain, as requested, but their alt text has been improved for context.
The above is the detailed content of Deploying PHP apps to DigitalOcean with Deploybot. For more information, please follow other related articles on the PHP Chinese website!