Last active
November 1, 2021 22:07
-
-
Save submtd/c94314a12ab53227eaf46add68cab0b2 to your computer and use it in GitHub Desktop.
Ubuntu 18.04 PHP Local Development
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
sudo add-apt-repository -y ppa:ondrej/php | |
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - | |
sudo apt update | |
sudo apt install -y mysql-server mysql-client nginx redis-server nodejs pkg-config sqlite3 git curl postgresql-client mercurial zip bash-completion xvfb gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable imagemagick x11-apps \ | |
sudo apt-get install -y \ | |
php7.4-fpm \ | |
php-pear \ | |
php7.4-bcmath \ | |
php7.4-cli \ | |
php7.4-common \ | |
php7.4-curl \ | |
php7.4-json \ | |
php7.4-xml \ | |
php7.4-imap \ | |
php7.4-mbstring \ | |
php7.4-mysql \ | |
php7.4-pgsql \ | |
php7.4-soap \ | |
php7.4-sqlite3 \ | |
php7.4-zip \ | |
php-memcached \ | |
php7.4-gd \ | |
php7.4-intl \ | |
php7.4-readline \ | |
php7.4-dev \ | |
php-redis \ | |
libcurl4-openssl-dev \ | |
libedit-dev \ | |
libssl-dev \ | |
libxml2-dev \ | |
xz-utils \ | |
libsqlite3-dev \ | |
&& sudo apt-get clean | |
sudo mysql --execute="ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ''; FLUSH PRIVILEGES" | |
curl -sS https://getcomposer.org/installer | php && sudo mv composer.phar /usr/local/bin/composer | |
composer global require phpmd/phpmd | |
composer global require squizlabs/php_codesniffer | |
composer global require phpstan/phpstan | |
composer global require friendsofphp/php-cs-fixer | |
composer global require phpunit/phpunit | |
# add composer bin to path | |
cat >> ~/.profile << EOF | |
if [ -d "\$HOME/.config/composer/vendor/bin" ] ; then | |
PATH="\$HOME/.config/composer/vendor/bin:\$PATH" | |
fi | |
EOF | |
mkdir -p /home/"$USER"/Code/info/public | |
echo "<?php phpinfo();" > /home/"$USER"/Code/info/public/index.php | |
sudo dd of=/etc/nginx/sites-available/default << EOF | |
server { | |
listen 80 default_server; | |
listen [::]:80 default_server; | |
server_name ~^(?<vhost>.+)\\.localtest.me\$; | |
root /home/$USER/Code/\$vhost/public; | |
index index.php index.html; | |
server_name _; | |
location / { | |
try_files \$uri \$uri/ /index.php\$is_args\$args; | |
} | |
location ~ \.php\$ { | |
include snippets/fastcgi-php.conf; | |
fastcgi_pass unix:/run/php/php7.4-fpm.sock; | |
} | |
} | |
EOF | |
# install some npm utils | |
sudo npm install -g gulp | |
sudo npm install -g yarn | |
# restart all services | |
sudo systemctl restart php7.4-fpm | |
sudo systemctl restart nginx | |
sudo systemctl restart mysql | |
sudo systemctl restart redis-server | |
# fix permissions on home directory | |
sudo chown -R $USER:$(id -gn $USER) ~/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment