$ VBoxManage modifyvm "webserver" --natpf1 "guestssh,tcp,127.0.0.1,2222,10.0.2.15,22"
$ VBoxManage modifyvm "webserver" --natpf1 "web,tcp,127.0.0.1,8888,10.0.2.15,80" # iptables -t nat -A OUTPUT -d 127.0.0.1 -p tcp --dport 80 -j REDIRECT --to 8888 # nano /etc/rc.local
iptables -t nat -A OUTPUT -d 127.0.0.1 -p tcp --dport 80 -j REDIRECT --to 8888
$ (vboxheadless -s webserver &)
# ssh root@127.0.0.1 -p 2222
# apt-get install nginx php5 php5-fpm php5-mysql php5-gd php5-mcrypt mysql-server mysql-utilities
# mv /etc/php5/fpm/php-fpm.conf /etc/php5/fpm/php-fpm.conf.default # nano /etc/php5/fpm/php-fpm.conf
[global] pid = /var/run/php5-fpm.pid error_log = /var/log/php5-fpm.log include = /etc/php5/fpm/pool.d/*.conf
# nano /etc/php5/fpm/pool.d/www.conf
[www] user = www-data group = www-data listen = /tmp/php5-fpm.sock pm = dynamic pm.max_children = 10 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 chdir = /
# nano /etc/php5/fpm/php.ini
# service php5-fpm restart
user www-data; worker_processes 4; pid /var/run/nginx.pid; events { worker_connections 768; # multi_accept on; } http { ## # ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # nginx server_tokens off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # ## gzip on; gzip_disable "msie6"; ## # ## include /etc/nginx/conf.d/*.conf; server { server_name phpmyadmin.l; listen 80; root /web/utils/phpmyadmin.l; index index.php index.html index.htm; access_log /web/access.log; error_log /web/error.log; location / { try_files $uri $uri/ /index.php?q=$uri&$args; } location ~* ^.+.(js|css|png|jpg|jpeg|gif|ico)$ { access_log off; expires max; } location ~ \.php$ { # fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_pass unix:/tmp/php5-fpm.sock; fastcgi_index index.php; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_intercept_errors off; fastcgi_ignore_client_abort off; fastcgi_connect_timeout 60; fastcgi_send_timeout 180; fastcgi_read_timeout 180; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; } } server { server_name ~^(.*)$; listen 80; set $p $host; if ($host ~ www\.(.*)) { set $p $1; } root /web/sites/$p; index index.php index.html index.htm; access_log /web/access.log; error_log /web/error.log; location / { try_files $uri $uri/ /index.php?q=$uri&$args; } location ~* ^.+.(js|css|png|jpg|jpeg|gif|ico)$ { access_log off; expires max; } location ~ \.php$ { # fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_pass unix:/tmp/php5-fpm.sock; fastcgi_index index.php; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_param QUERY_STRING $query_string; fastcgi_param SERVER_NAME $p; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_intercept_errors off; fastcgi_ignore_client_abort off; fastcgi_connect_timeout 60; fastcgi_send_timeout 180; fastcgi_read_timeout 180; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; } location = /favicon.ico { log_not_found off; access_log off; } } }
# mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.default # nano /etc/nginx/nginx.conf
# mkdir /web && mkdir /web/sites && mkdir /web/utils
# chmod -R a-rwx,u+rwX,g+rX /web && chown www-data:www-data -R /web
# service nginx restart
# su www-data # cd /web/utils/phpmyadmin.l && wget http://jaist.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/4.0.4.2/phpMyAdmin-4.0.4.2-all-languages.zip && unzip phpMyAdmin-4.0.4.2-all-languages.zip && mv phpMyAdmin-4.0.4.2-all-languages/* ./ && rm -r phpMyAdmin-4.0.4.2-all-languages/ && rm phpMyAdmin-4.0.4.2-all-languages.zip # exit
# service nginx stop && service php5-fpm stop # mkdir /home/www-data && usermod -d /home/www-data www-data # service nginx start && service php5-fpm start
# ssh www-data@127.0.0.1 -p 2222
# nano /usr/bin/webserver
#!/bin/bash sleep=60 # when_mount='/mnt/webserver' # directories=`ls -p $when_mount | grep "/" | sed 's/\///g'` while true; do if ! $(mount | grep "$when_mount" > /dev/null); then if [ "$(nmap -p 2222 -sT 127.0.0.1 | awk '{print $2}' | grep open)" = "open" ]; then sshfs -o allow_other -o port=2222 www-data@127.0.0.1:/web/sites "$when_mount" fi; elif ! [ "$directories" = $(ls -p $when_mount | grep "/" | sed 's/\///g') ]; then hosts=$(grep -v "127.0.0.1" /etc/hosts) directories=$(ls -p $when_mount | grep "/" | sed 's/\///g') if ! [ "$directories" = "" ] then echo "$hosts" > /etc/hosts echo "127.0.0.1 localhost phpmyadmin.l "$directories >> /etc/hosts fi; fi sleep "$sleep" done
# chmod -x /usr/bin/webserver
# nano /etc/init.d/webserverd
#!/bin/bash case "$1" in start) echo -n "Starting webserver: " (su - darkrain -c 'vboxheadless -s webserver' &) (webserver &) ;; stop) echo -n "Stopping webserver: " (su - darkrain -c 'VBoxManage controlvm webserver savestate' &) killall webserver ;; esac exit 0
# chmod -x /etc/init.d/webserverd && update-rc.d webserverd defaults
# mkdir /mnt/webserver && chmod 777 /mnt/webserver
# service webserverd stop # service webserverd start
$ mkdir /mnt/webserver/testsite.ru.l && echo "<?php phpinfo();" > /mnt/webserver/testsite.ru.l/index.php
Source: https://habr.com/ru/post/188702/
All Articles