<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.sharcnet.ca/help/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=M2elsakh</id>
		<title>Documentation - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://www.sharcnet.ca/help/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=M2elsakh"/>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php/Special:Contributions/M2elsakh"/>
		<updated>2026-05-24T00:04:12Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.2</generator>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=Deploying_a_web_server&amp;diff=16580</id>
		<title>Deploying a web server</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=Deploying_a_web_server&amp;diff=16580"/>
				<updated>2018-05-30T14:21:58Z</updated>
		
		<summary type="html">&lt;p&gt;M2elsakh: /* Dependencies - Launch Cloud Instance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dependencies - Launch Cloud Instance=&lt;br /&gt;
Before deploying a web server, first a cloud instance must be lauched.  The instruction to do this can be found [[Carpet|here]].&lt;br /&gt;
For the remainder of the instructions the ip address used is 199.241.164.95, this is for demonstration purposes and you should replace&lt;br /&gt;
it with your assigned floating IP address.&lt;br /&gt;
&lt;br /&gt;
# login to https://cloud.sharcnet.ca/dashboard&lt;br /&gt;
# Use guest accounts to login  , https://docs.google.com/document/d/1cQ7BSEU09hpSJ5yco33o-hS7AE2PTKdis8JMrHhtld8&lt;br /&gt;
# Don’t forget volume size&lt;br /&gt;
# Choose Debian 9.2.2 (not required, but the remaining instructions are Debian centric).&lt;br /&gt;
# Choose persistent (ephemeral is for shorter jobs) (4C-8GB)&lt;br /&gt;
# Setup keypair&lt;br /&gt;
# Associate floating ip&lt;br /&gt;
&lt;br /&gt;
==(Optional) Apply IP Address to your name server==&lt;br /&gt;
If you have a registered domain name you should apply your floating IP address to it so that you can use the &amp;quot;let's encrypt&amp;quot; service to &lt;br /&gt;
enable the secure socket layer without client side warnings.  It is often best to do this at the beginning as there is typically a delay&lt;br /&gt;
in updating the name service.&lt;br /&gt;
&lt;br /&gt;
= Server Setup =&lt;br /&gt;
&lt;br /&gt;
==Login to Server &amp;amp; perform preliminaries==&lt;br /&gt;
At this point log into the server to ensure that the service is up and running.  There are a number of steps you can perform that will make &lt;br /&gt;
the remaining steps easier.  First loging to the server.  Then setup a user prompt to make navigation easier.  Switch to root (or use sudo in&lt;br /&gt;
from of the remaining commands). Update and upgrade the system.  Last install the manual pages.&lt;br /&gt;
    $ ssh debian@199.241.164.95&lt;br /&gt;
    $ echo 'export PS1=&amp;quot;\[\e[33m\]\w\[\e[0m\]\n\[\e[32m\]\u@\h$ \[\e[0m\]&amp;quot;' &amp;gt;&amp;gt; .bash_aliases&lt;br /&gt;
    $ sudo su root&lt;br /&gt;
    $ apt update&lt;br /&gt;
    $ apt upgrade&lt;br /&gt;
    $ apt install man&lt;br /&gt;
&lt;br /&gt;
==Apt error==&lt;br /&gt;
If you receive the &amp;quot;apt error&amp;quot; mesage put &amp;quot;nameserver 8.8.8.8&amp;quot; in /etc/resolve.conf.&lt;br /&gt;
    $ echo 'nameserver 8.8.8.8 &amp;gt;&amp;gt;' /etc/resolve.conf&lt;br /&gt;
&lt;br /&gt;
==Secure the SSH login==&lt;br /&gt;
The following changes will disable logging into the server by using a password on any account and prevent logging into root remotly.  Root can&lt;br /&gt;
still be accessed by logging into a ''sudo'' enabled account and using the command ''su root''.  For more information on the sshd_config file&lt;br /&gt;
options, go [https://man.openbsd.org/sshd_config here].  The unattended-upgrades package is used to keep they server up to date automatically.&lt;br /&gt;
    $ sudo vim /etc/ssh/sshd_config&lt;br /&gt;
    ChallengeResponseAuthentication no&lt;br /&gt;
    PasswordAuthentication no&lt;br /&gt;
    PermitRootLogin no&lt;br /&gt;
    $ service ssh reload&lt;br /&gt;
    $ apt install unattended-upgrades&lt;br /&gt;
    $ dpkg-reconfigure --priority=low unattended-upgrades&lt;br /&gt;
    $ sudo unattended-upgrade -d&lt;br /&gt;
&lt;br /&gt;
=Install webserver and suppporting packages=&lt;br /&gt;
==MYSQL==&lt;br /&gt;
    $ apt install mysql-server&lt;br /&gt;
    $ mysql_secure_installation #password=password&lt;br /&gt;
&lt;br /&gt;
==Apache==&lt;br /&gt;
Installing the Apache webserver will allow you to access a default page at your ip address. (ex http://199.241.164.95, or http://frar.ca).&lt;br /&gt;
Note that https will not yet work. httpd is the Apache HyperText Transfer Protocol (HTTP) server program. It is designed to be run as a standalone daemon process. When used like this it will create a pool of child processes or threads to handle requests.  In general, httpd should not be invoked directly, but rather should be invoked via apachectl on Unix-based systems or as a service on Windows NT, 2000 and XP and as a console application on Windows 9x and ME.&lt;br /&gt;
&lt;br /&gt;
    $ apt install apache2&lt;br /&gt;
    $ service apache2 start #add 80, 443 to default security group rules&lt;br /&gt;
    $ a2enmod cgid.load #(optional) enable cgi scripting, a2dismod to remove&lt;br /&gt;
&lt;br /&gt;
===Basic information &amp;amp; settings===&lt;br /&gt;
# Document root Directory: /var/www/html or /var/www&lt;br /&gt;
# Main Configuration file:&lt;br /&gt;
## /etc/httpd/conf/httpd.conf (RHEL/CentOS/Fedora) &lt;br /&gt;
## /etc/apache2/apache2.conf (Debian/Ubuntu).&lt;br /&gt;
# Default HTTP Port: 80 TCP&lt;br /&gt;
# Default HTTPS Port: 443 TCP&lt;br /&gt;
# Access Log files of Web Server: /var/log/apache2/access_log&lt;br /&gt;
# Error Log files of Web Server: /var/log/apache2/error_log&lt;br /&gt;
# service apache2 {start|stop|graceful-stop|restart|reload|force-reload}&lt;br /&gt;
# apachectl -v &lt;br /&gt;
## [https://httpd.apache.org/docs/2.4/programs/apachectl.html see]&lt;br /&gt;
&lt;br /&gt;
===Secure Apache with SSL certificates===&lt;br /&gt;
Going to https is now possible but will trigger a warning.&lt;br /&gt;
    $ a2enmod ssl&lt;br /&gt;
    $ a2ensite default-ssl.conf&lt;br /&gt;
    $ service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===Enable let's encrypt (requires a domain name)===&lt;br /&gt;
    $ apt install git&lt;br /&gt;
    $ sudo git clone https://github.com/letsencrypt/letsencrypt  /opt/letsencrypt&lt;br /&gt;
    $ cd /opt/letsencrypt&lt;br /&gt;
    $ ./certbot-auto --authenticator webroot --installer apache&lt;br /&gt;
    www.frar.ca&lt;br /&gt;
    /var/www/html&lt;br /&gt;
&lt;br /&gt;
===Use self signed certificate [https://wiki.debian.org/Self-Signed_Certificate]===&lt;br /&gt;
    $ mkdir /etc/ssl/localcerts&lt;br /&gt;
    $ openssl req -new -x509 -days 365 -nodes -out /etc/ssl/localcerts/apache.pem -keyout /etc/ssl/localcerts/apache.key&lt;br /&gt;
    $ chmod 600 /etc/ssl/localcerts/apache*&lt;br /&gt;
    $ cd /etc/apache2/sites-available/&lt;br /&gt;
    $ cp default-ssl.conf my-ssl.conf&lt;br /&gt;
    $ vim my-ssl.conf&lt;br /&gt;
    NameVirtualHost *:443&lt;br /&gt;
    &amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
    SSLEngine On&lt;br /&gt;
    SSLCertificateFile /etc/ssl/localcerts/apache.pem&lt;br /&gt;
    SSLCertificateKeyFile /etc/ssl/localcerts/apache.key&lt;br /&gt;
&lt;br /&gt;
    $ a2ensite my-ssl.conf&lt;br /&gt;
&lt;br /&gt;
===Add basic user-password verfication===&lt;br /&gt;
    $ mkdir /var/www/passwd&lt;br /&gt;
    $ htpasswd -c /var/www/passwd/passwords user&lt;br /&gt;
    $ vim /etc/apache2/apache2.conf&lt;br /&gt;
    &amp;lt;Directory /var/www/html&amp;gt;&lt;br /&gt;
        Require valid-user&lt;br /&gt;
        AuthType basic&lt;br /&gt;
        AuthName &amp;quot;Restricted Files&amp;quot;&lt;br /&gt;
        AuthUserFile &amp;quot;/var/www/passwd/passwords&amp;quot;&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
    $ service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==Helper packages==&lt;br /&gt;
===Install PHP===&lt;br /&gt;
    $ apt -y install php7.0 libapache2-mod-php7.0 php7.0-mysql php7.0-gd php7.0-opcache&lt;br /&gt;
    $ echo ‘&amp;lt;?php phpinfo(); ?&amp;gt;’ &amp;gt; /var/www/html/test.php&lt;br /&gt;
&lt;br /&gt;
===Give www-data an ssh key and ownership of home directory===&lt;br /&gt;
$ chmod 774 /var/www/html&lt;br /&gt;
$ chown www-data:www-data -R /var/www&lt;br /&gt;
$ mkdir /var/www/.ssh&lt;br /&gt;
$ chown www-data:www-data /var/www/.ssh&lt;br /&gt;
$ sudo -u www-data ssh-keygen -C www-data #no passphrase for now&lt;br /&gt;
&lt;br /&gt;
==SSH Fuse==&lt;br /&gt;
Give “debian” user www-data group so that files can be uploaded to the web server&lt;br /&gt;
$ sudo usermod -aG www-data debian&lt;br /&gt;
&lt;br /&gt;
====Copy the ssh key to graham====&lt;br /&gt;
(lamp)  $ sudo cp .ssh/id_rsa.pub ~&lt;br /&gt;
(local) $ scp -3 cloud:~/id_rsa.pub graham:~ # the -3 disables host to host copying&lt;br /&gt;
(graham)$ cat id_rsa.pub &amp;gt;&amp;gt; authorized_keys&lt;br /&gt;
&lt;br /&gt;
====Setup Graham (placeholder section)====&lt;br /&gt;
    $ ssh graham &lt;br /&gt;
    $ mkdir ~/project/edward/linked-cloud&lt;br /&gt;
    $ cd linked-cloud&lt;br /&gt;
    $ wget https://git.sharcnet.ca/edward/CSVSorterDemo/raw/master/CSVSorter.jar&lt;br /&gt;
    $ mkdir input&lt;br /&gt;
    $ mkdir output&lt;br /&gt;
    $ vim submitjob.sh&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    #SBATCH -t 0-00:01&lt;br /&gt;
    #SBATCH --mem=4G&lt;br /&gt;
    #SBATCH -A def-edward&lt;br /&gt;
    java -Xmx10m -jar /home/edward/project/edward/linked-cloud/CSVSorter.jar \&lt;br /&gt;
    /home/edward/project/edward/linked-cloud/input/$1 \&lt;br /&gt;
    /home/edward/project/edward/linked-cloud/output/$1&lt;br /&gt;
&lt;br /&gt;
====Link LAMP server with Graham through sshfuse====&lt;br /&gt;
    $ ssh cloud&lt;br /&gt;
    $ apt install sshfs&lt;br /&gt;
    $ cd /var/www&lt;br /&gt;
    $ sudo -u www-data mkdir linked-graham&lt;br /&gt;
    $ sudo -u www-data sshfs edward@graham.sharcnet.ca:/home/edward/project/linked-cloud /var/www/linked-graham&lt;br /&gt;
    - (to unmount) fusermount -u ./project&lt;/div&gt;</summary>
		<author><name>M2elsakh</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=Deploying_a_web_server&amp;diff=16579</id>
		<title>Deploying a web server</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=Deploying_a_web_server&amp;diff=16579"/>
				<updated>2018-05-30T14:19:13Z</updated>
		
		<summary type="html">&lt;p&gt;M2elsakh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dependencies - Launch Cloud Instance=&lt;br /&gt;
Before deploying a web server, first a cloud instance must be lauched.  The instruction to do this can be found [[Carpet|here]].&lt;br /&gt;
For the remainder of the instructions the ip address used is 199.241.164.95, this is for demonstration purposes and you should replace&lt;br /&gt;
it with your assigned floating IP address.&lt;br /&gt;
&lt;br /&gt;
# login to https://cloud.sharcnet.ca/dashboard&lt;br /&gt;
# Don’t forget volume size&lt;br /&gt;
# Choose Debian 9.2.2 (not required, but the remaining instructions are Debian centric).&lt;br /&gt;
# Choose persistent (ephemeral is for shorter jobs) (4C-8GB)&lt;br /&gt;
# Setup keypair&lt;br /&gt;
# Associate floating ip&lt;br /&gt;
&lt;br /&gt;
==(Optional) Apply IP Address to your name server==&lt;br /&gt;
If you have a registered domain name you should apply your floating IP address to it so that you can use the &amp;quot;let's encrypt&amp;quot; service to &lt;br /&gt;
enable the secure socket layer without client side warnings.  It is often best to do this at the beginning as there is typically a delay&lt;br /&gt;
in updating the name service.&lt;br /&gt;
&lt;br /&gt;
= Server Setup =&lt;br /&gt;
&lt;br /&gt;
==Login to Server &amp;amp; perform preliminaries==&lt;br /&gt;
At this point log into the server to ensure that the service is up and running.  There are a number of steps you can perform that will make &lt;br /&gt;
the remaining steps easier.  First loging to the server.  Then setup a user prompt to make navigation easier.  Switch to root (or use sudo in&lt;br /&gt;
from of the remaining commands). Update and upgrade the system.  Last install the manual pages.&lt;br /&gt;
    $ ssh debian@199.241.164.95&lt;br /&gt;
    $ echo 'export PS1=&amp;quot;\[\e[33m\]\w\[\e[0m\]\n\[\e[32m\]\u@\h$ \[\e[0m\]&amp;quot;' &amp;gt;&amp;gt; .bash_aliases&lt;br /&gt;
    $ sudo su root&lt;br /&gt;
    $ apt update&lt;br /&gt;
    $ apt upgrade&lt;br /&gt;
    $ apt install man&lt;br /&gt;
&lt;br /&gt;
==Apt error==&lt;br /&gt;
If you receive the &amp;quot;apt error&amp;quot; mesage put &amp;quot;nameserver 8.8.8.8&amp;quot; in /etc/resolve.conf.&lt;br /&gt;
    $ echo 'nameserver 8.8.8.8 &amp;gt;&amp;gt;' /etc/resolve.conf&lt;br /&gt;
&lt;br /&gt;
==Secure the SSH login==&lt;br /&gt;
The following changes will disable logging into the server by using a password on any account and prevent logging into root remotly.  Root can&lt;br /&gt;
still be accessed by logging into a ''sudo'' enabled account and using the command ''su root''.  For more information on the sshd_config file&lt;br /&gt;
options, go [https://man.openbsd.org/sshd_config here].  The unattended-upgrades package is used to keep they server up to date automatically.&lt;br /&gt;
    $ sudo vim /etc/ssh/sshd_config&lt;br /&gt;
    ChallengeResponseAuthentication no&lt;br /&gt;
    PasswordAuthentication no&lt;br /&gt;
    PermitRootLogin no&lt;br /&gt;
    $ service ssh reload&lt;br /&gt;
    $ apt install unattended-upgrades&lt;br /&gt;
    $ dpkg-reconfigure --priority=low unattended-upgrades&lt;br /&gt;
    $ sudo unattended-upgrade -d&lt;br /&gt;
&lt;br /&gt;
=Install webserver and suppporting packages=&lt;br /&gt;
==MYSQL==&lt;br /&gt;
    $ apt install mysql-server&lt;br /&gt;
    $ mysql_secure_installation #password=password&lt;br /&gt;
&lt;br /&gt;
==Apache==&lt;br /&gt;
Installing the Apache webserver will allow you to access a default page at your ip address. (ex http://199.241.164.95, or http://frar.ca).&lt;br /&gt;
Note that https will not yet work. httpd is the Apache HyperText Transfer Protocol (HTTP) server program. It is designed to be run as a standalone daemon process. When used like this it will create a pool of child processes or threads to handle requests.  In general, httpd should not be invoked directly, but rather should be invoked via apachectl on Unix-based systems or as a service on Windows NT, 2000 and XP and as a console application on Windows 9x and ME.&lt;br /&gt;
&lt;br /&gt;
    $ apt install apache2&lt;br /&gt;
    $ service apache2 start #add 80, 443 to default security group rules&lt;br /&gt;
    $ a2enmod cgid.load #(optional) enable cgi scripting, a2dismod to remove&lt;br /&gt;
&lt;br /&gt;
===Basic information &amp;amp; settings===&lt;br /&gt;
# Document root Directory: /var/www/html or /var/www&lt;br /&gt;
# Main Configuration file:&lt;br /&gt;
## /etc/httpd/conf/httpd.conf (RHEL/CentOS/Fedora) &lt;br /&gt;
## /etc/apache2/apache2.conf (Debian/Ubuntu).&lt;br /&gt;
# Default HTTP Port: 80 TCP&lt;br /&gt;
# Default HTTPS Port: 443 TCP&lt;br /&gt;
# Access Log files of Web Server: /var/log/apache2/access_log&lt;br /&gt;
# Error Log files of Web Server: /var/log/apache2/error_log&lt;br /&gt;
# service apache2 {start|stop|graceful-stop|restart|reload|force-reload}&lt;br /&gt;
# apachectl -v &lt;br /&gt;
## [https://httpd.apache.org/docs/2.4/programs/apachectl.html see]&lt;br /&gt;
&lt;br /&gt;
===Secure Apache with SSL certificates===&lt;br /&gt;
Going to https is now possible but will trigger a warning.&lt;br /&gt;
    $ a2enmod ssl&lt;br /&gt;
    $ a2ensite default-ssl.conf&lt;br /&gt;
    $ service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===Enable let's encrypt (requires a domain name)===&lt;br /&gt;
    $ apt install git&lt;br /&gt;
    $ sudo git clone https://github.com/letsencrypt/letsencrypt  /opt/letsencrypt&lt;br /&gt;
    $ cd /opt/letsencrypt&lt;br /&gt;
    $ ./certbot-auto --authenticator webroot --installer apache&lt;br /&gt;
    www.frar.ca&lt;br /&gt;
    /var/www/html&lt;br /&gt;
&lt;br /&gt;
===Use self signed certificate [https://wiki.debian.org/Self-Signed_Certificate]===&lt;br /&gt;
    $ mkdir /etc/ssl/localcerts&lt;br /&gt;
    $ openssl req -new -x509 -days 365 -nodes -out /etc/ssl/localcerts/apache.pem -keyout /etc/ssl/localcerts/apache.key&lt;br /&gt;
    $ chmod 600 /etc/ssl/localcerts/apache*&lt;br /&gt;
    $ cd /etc/apache2/sites-available/&lt;br /&gt;
    $ cp default-ssl.conf my-ssl.conf&lt;br /&gt;
    $ vim my-ssl.conf&lt;br /&gt;
    NameVirtualHost *:443&lt;br /&gt;
    &amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
    SSLEngine On&lt;br /&gt;
    SSLCertificateFile /etc/ssl/localcerts/apache.pem&lt;br /&gt;
    SSLCertificateKeyFile /etc/ssl/localcerts/apache.key&lt;br /&gt;
&lt;br /&gt;
    $ a2ensite my-ssl.conf&lt;br /&gt;
&lt;br /&gt;
===Add basic user-password verfication===&lt;br /&gt;
    $ mkdir /var/www/passwd&lt;br /&gt;
    $ htpasswd -c /var/www/passwd/passwords user&lt;br /&gt;
    $ vim /etc/apache2/apache2.conf&lt;br /&gt;
    &amp;lt;Directory /var/www/html&amp;gt;&lt;br /&gt;
        Require valid-user&lt;br /&gt;
        AuthType basic&lt;br /&gt;
        AuthName &amp;quot;Restricted Files&amp;quot;&lt;br /&gt;
        AuthUserFile &amp;quot;/var/www/passwd/passwords&amp;quot;&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
    $ service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==Helper packages==&lt;br /&gt;
===Install PHP===&lt;br /&gt;
    $ apt -y install php7.0 libapache2-mod-php7.0 php7.0-mysql php7.0-gd php7.0-opcache&lt;br /&gt;
    $ echo ‘&amp;lt;?php phpinfo(); ?&amp;gt;’ &amp;gt; /var/www/html/test.php&lt;br /&gt;
&lt;br /&gt;
===Give www-data an ssh key and ownership of home directory===&lt;br /&gt;
$ chmod 774 /var/www/html&lt;br /&gt;
$ chown www-data:www-data -R /var/www&lt;br /&gt;
$ mkdir /var/www/.ssh&lt;br /&gt;
$ chown www-data:www-data /var/www/.ssh&lt;br /&gt;
$ sudo -u www-data ssh-keygen -C www-data #no passphrase for now&lt;br /&gt;
&lt;br /&gt;
==SSH Fuse==&lt;br /&gt;
Give “debian” user www-data group so that files can be uploaded to the web server&lt;br /&gt;
$ sudo usermod -aG www-data debian&lt;br /&gt;
&lt;br /&gt;
====Copy the ssh key to graham====&lt;br /&gt;
(lamp)  $ sudo cp .ssh/id_rsa.pub ~&lt;br /&gt;
(local) $ scp -3 cloud:~/id_rsa.pub graham:~ # the -3 disables host to host copying&lt;br /&gt;
(graham)$ cat id_rsa.pub &amp;gt;&amp;gt; authorized_keys&lt;br /&gt;
&lt;br /&gt;
====Setup Graham (placeholder section)====&lt;br /&gt;
    $ ssh graham &lt;br /&gt;
    $ mkdir ~/project/edward/linked-cloud&lt;br /&gt;
    $ cd linked-cloud&lt;br /&gt;
    $ wget https://git.sharcnet.ca/edward/CSVSorterDemo/raw/master/CSVSorter.jar&lt;br /&gt;
    $ mkdir input&lt;br /&gt;
    $ mkdir output&lt;br /&gt;
    $ vim submitjob.sh&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    #SBATCH -t 0-00:01&lt;br /&gt;
    #SBATCH --mem=4G&lt;br /&gt;
    #SBATCH -A def-edward&lt;br /&gt;
    java -Xmx10m -jar /home/edward/project/edward/linked-cloud/CSVSorter.jar \&lt;br /&gt;
    /home/edward/project/edward/linked-cloud/input/$1 \&lt;br /&gt;
    /home/edward/project/edward/linked-cloud/output/$1&lt;br /&gt;
&lt;br /&gt;
====Link LAMP server with Graham through sshfuse====&lt;br /&gt;
    $ ssh cloud&lt;br /&gt;
    $ apt install sshfs&lt;br /&gt;
    $ cd /var/www&lt;br /&gt;
    $ sudo -u www-data mkdir linked-graham&lt;br /&gt;
    $ sudo -u www-data sshfs edward@graham.sharcnet.ca:/home/edward/project/linked-cloud /var/www/linked-graham&lt;br /&gt;
    - (to unmount) fusermount -u ./project&lt;/div&gt;</summary>
		<author><name>M2elsakh</name></author>	</entry>

	</feed>