What to do without port 139?


#1

Hi!

SBC has decided to shutdown port 139 (among others) to battle “worms and viruses” and has informed me that “once the issue is resolved, the ports will be opened.” Having no idea how long that will take, I’m looking into some alternatives to not being able to mount my site’s samba share…

My question is: what do others out there use to publish their pages?

So far, FTP access doesn’t quite cut it for my needs - I like to easily review the changes before uploading via a compare tool (samba is great for this). Maybe there are better FTP tools out there?

Has anyone had luck tunneling samba through ssh? I’ve been experimenting, but no luck so far.

Thanks,
Jeff


#2

Don’t have an easy answer for you (appletalk / webdav might be options), but FYI, we haven’t announced yet, but we’ve shut off samba everywhere ourselves (since about Friday), and may block 139 at the border as well…


#3

That’s unfortunate news. =)

I read up a bit on WebDAV in the kbase, but it doesn’t seem like it would work for my purposes (the two restraints: not being able to modify files via shell access or run CGI from WebDAV folders being too constraining).

So, back to the broader question: how do other people develop their websites?

My workflow is usually something along these lines:

(1) Sync up my local copy with the live copy.

Occasionally I’ll have tinkered with the site locally or made some tweaks via ssh access (or a web interface like movabletype), so this step is important to make sure I’m working with the latest files. The magic combination for me here is (was?) samba combined with Araxis Merge. It was great for seeing differences in directory structure, file, and line by line content. It was also easy to pulldown any changes (and only changes) very quickly.

(2) Do all my work locally.

Nothing exciting here - mostly hand written code.

(3) Compare, review and upload local changes to the live site.

Back to samba & merge! As in (1) only reversed. The line-by-line compare before uploading also allowed me to make sure I wasn’t sending up any test code or backup files or such.

I’m really interested in what others do/use. I’m looking for some alternatives that can meet some of my favorite features of the above:

  • Easily sync local & live sites (in a smart way that doesn’t transfer more files than needed).
  • Allows edit/upload or shell access updates.
  • Allows for file comparisons between local & live code.
  • Relatively inexpensive.

Thanks,
Jeff


#4

Try this instead of SAMBA:
http://www.southrivertech.com/products/webdrive/index.html

It maps a webdav/ftp server as a drive on Windows and you can browse it and use with any software you normally use.

It’s shareware and until now I can’t find a freeware clone for Windows…


#5

[quote]So, back to the broader question: how do other people
develop their websites?

[/quote]

This probably doesn’t help with your specific situation, unfortunately, but it’s an interesting topic anyhow.

Personally, I do almost all of my development on a local computer (usually a PowerBook G4 running Mac OS X). I have all of the tools I need/want - Apache, Perl, PHP, CVS, MySQL, PostgreSQL, BBEdit, etc. installed.

It’s very nice to just edit files stored in your local filesystem and not have to worry about having a reliable Internet connection. I used to use BBEdit’s built-in FTP open/save feature to edit files directly through the network, but I find this way much quicker.

Every once in a while (usually every 2-3 weeks), though, I make a point of testing things out on a ‘production’ server.

To do this I just wrote a little shell alias to run all of my files through a post-processor I wrote, tar them, gzip them, upload them directly via SSH, ungzip them, then untar them in the correct spot. Then I visit the live version on the web, poke around a bit, making changes as necessary. 99.9% of my development is local, though.

  • Jeff @ DreamHost
  • DH Discussion Forum Admin

#6

GFv, Thanks for the WebDrive link. I’m trying it out now, and its proving to be a good Samba alternative.

Jeff, thanks for the feedback. As for a dev environment, I too do most of my work locally (Apache/PHP/Emacs/CVS on XP). Its the deployment (or syncing) stage that becomes problematic.

It seems a number of people run their local site through a gzip/ssh upload/unzip routine to make it live. I’m not clear on some details, though:

(1) Do you run the entire site through this script, or just the changes? Have you run into problems of long up/downloads with large sites?
(2) How do you make sure that you have an accurate local copy to develop on (in case of changes made directly to the web server). A reverse gzip/download/unzip?
(3) Do you test the site live at a different domain? I’ve been using test.*.com, before swapping it over to the live site when needed.

What other solutions/tools are people out there using for development & deployment?

Thanks again,
Jeff


#7

quote Do you run the entire site through this script, or just
the changes? Have you run into problems of long up/
downloads with large sites?

[/quote]

Not really, though my projects are more ‘web applications’ than large sites, really. To be honest, I don’t think I’ve written a site that wasn’t auto-generated by a database since 1999 or so. In the short run it may take less time to create, but in the long run any manually edited site of significant size is going to be a big pain to manage.

But, yeah, the speed issue isn’t a big problem - I’ve got broadband access and I only synch up once in a blue moon anyhow. Compressed, most of my projects go down to 150-250k or so, and take just a few seconds to upload. The tar/gzip/un-gzip/un-tar process takes most of the time, but even that isn’t too bad.

quote How do you make sure that you have an accurate local
copy to develop on (in case of changes made directly to
the web server). A reverse gzip/download/unzip?

[/quote]

I pretty much never make changes directly to the online version - I make changes directly to the code in my local copy and re-run my upload script. If for some reason I’m actively tackling a bug that only shows up in the online version I may open it (the online file) directly in BBEdit and make changes until it works, rather than go through the full synch process.

When I’m done, I just copy and paste the code segment in question over to my dev copy, do a final re-synch, and check it to make sure it’s all good.

I actually have another reason for this system. I have two main projects I’m working on now, both of which share roughly 60% of their code. In order to make it so that I don’t have to maintain two identical copies of stuff, I wrote a little script that combines the files, removes code specific to the project not being currently worked on, and copies it out to a “live” (albeit still local) directory for that project. This is sort of like doing a CVS push-out but with some added logic to dynamically chop away any un-needed code.

The “push to online test site” script copies from that generated version of the site - not the actual directory containing the files I edit (basically, any time I want to test my edits in my local “live” version, I need to run this script - with a command-key equivalent in BBEdit, this takes all of about 4 seconds - the uploading script could add another 30 seconds or so, so it’s usually not worth it).

quote Do you test the site live at a different domain? I’ve
been using test.*.com, before swapping it over to the live
site when needed.

[/quote]

Sub-domains are really good for this sort of thing. I personally have a “dev.mydomain.com” type setup, and use password protection via htaccess to ensure that people don’t see my work in progress before it’s ready. :>

  • Jeff @ DreamHost
  • DH Discussion Forum Admin