How do I install wkhtml2pdf? - linux

I've been looking for a solution to this for about a year, still haven't found one.
I'm trying to get a website snapshot script that I can host on my server and use freely that works well on 99% of webpages.
So far I've been using html2canvas but it doesn't really display images.
I looked into wkhtml2pdf before but I tried installing every single binary and executing from PHP. None of them worked!
All I know about my server is that it is Linux (so I only tested Linux static binaries). Even the basic --help command didn't work.
Please help me out. Thanks!

If you are using a hosting service, it is possible that it is impossible to execute binary programs stored in users' directories. (noexec flag on specific partition). You should first contact system administrator and ask if it is possible to put your own binary executables there. Perhaps, you can ask system administrator to install wkhtmltopdf for you in a global directory /usr/local/bin.

You'll need more then a simple shared hosting, and more then "it is Linux". PHP could be in safemod and lots and lots of other limitations. I would choose a minimal VPS (like digitalocean or similar), root access, install wkhtml2pdf with dnf, yum or what's on you Linux distro, because it brings lots of dependencies to your machine. A minimal LAMP server should not have what's needed on it. You need to be able to allow Apache (or other user) to exec the binary.

Related

Live development environment in windows when project is on Linux server

Maybe this question is not so proffesional, but still, maybe someone has got into this issue as well. I am using windows os. And the project i am working on is on Linux servers. I am using Netbeans IDE and WAMP. The problem i ran into is that i cannot make the development environment configured via ALIAS or something similar. I want to DEBUG and run tests but the folder structure is different and it gives me errors, like in windows it is C:/wamp and on the Linux server it is /var/www . How can i make windows machine to get to understand the different file structure ? Maybe there are some guides ? I do not want to switch to Linux. I have everything configured and the only thing i need is like redirect from c:/wamp/myProject to /var/www/myProject
I'm afraid that might not be possible.
You are trying to get one OS to read data from another OS
This is not a problem. However, your issue is that your files are located in directories of different structures, and you are trying to get Windows to read from /var/www directly.
Am I right?

How to make my custom live Debian-based? Experiencing some problems

The need
Recently I've started flirting with the idea of making my own customized Debian live distro. My aim is to have an USB stick with Debian, specific packages, custom scripts and files installed inside. In this way, I can take my OS with everything I need to work with without taking my laptop with me. Furthermore, It will be specially useful in case I just wanted to replicate the OS without the hassle of installing every single packages and further customizations over again.
The research
So I decided to go for it and educate myself on the subject. I've found the Linux from scratch project (LFS), but to be honest, it will take me lots of time I currently cannot afford to invest (But seriously thinking for the future).
I decided to use the live-build project scripts based on the instructions and examples of their manual. http://live.debian.net/manual/3.x/html/live-manual.en.html
The problem
So far, I've built a hybrid.iso image with a custom selection of packages by specifying them in the /config/packages-list/mylist.list.chroot.
Then I tried to copy my custom scripts, files and software inside specific folders under the chroot directory just created,
i.e.
mkdir chroot/etc/skel/<custom dir here>
or
cp <some file or script> chroot/usr/local/bin/
and then run
lb build binary
The problem is that the iso doesn't get built after the first time I run lb build and the customizations done on the chroot directory are deleted every time I try to build it again.
I've tried...
lb clean --binary
lb clean --stage
lb build binary
or
lb build binary iso
So what am I missing? How can I add custom files, folders, scripts to my custom live Debian without downloading every single package over again?
why isn't the iso image built again after the first time I run lb build?
Thanks in advance...
P.D: I decided to be very detailed on the writing so anyone could understand, specially those that want to try the same...
I am conscious about LFS too. But, this
My aim is to have an USB stick with Debian, specific packages, custom
scripts and files installed inside.
and this
it will take me lots of time I currently cannot afford to invest
made me pointing to my answer
I have two suggestions. The easy one, use tools like remastersys or live-magic.
Follow this link.
The difficult one, follow the official documentation to how to creat a custom debian cd.
Debian official doc
This answer comes a year late for the original poster, but for future searchers: don't add files directly to the chroot. Instead, make a folder structure in config/includes.chroot. Then your customizations will be retained when you rebuild the image.
See the section "Live/chroot local includes" in the debian-live manual: http://live.debian.net/manual/4.x/html/live-manual.en.html#506

Uploading Sawtooth Software ACA Survey to web using personal website hosting

The software created a Web Upload folder for me, which I uploaded to the site using an FTP Client (specifically WS_FTP). The first lines of the pearl files say "#!usr/bin/pearl" that I changed to "/home/calakpsi/pearl". However, when I execute the html file it searches my computer under "/C:/Users/myname/AppData/Roaming/Ipswitch/WS_FTP/Storage/cgi-bin/ciwweb.pl". I made sure the file it's looking for was in that folder, but for some reason the webpage would still not execute.
Any help or step by step solution (since I do not have an in depth technical background) would be much appreciated.
I think the problem is that your server is not configured properly to run perl scripts. Have a look at this, to see if it helps. The answer by Dave Sherohman should help you out.
Once you are able to run perl scripts, it should run (barring other issues which are script specific).
Overall the steps required to execute perl scripts are as follows. You can look up their details on the internet, as I don't know them myself.
Install any mods required for server, for instance mod_perl, on ubtuntu it would be something like sudo apt-get install libapache2-mod-perl2. If you are in windows, perhaps take one of those bitnami or other LAMP installers. They should come installed with it.
Configuration for server/virtual host, so that perl files in the directory are executed
ensure they have correct permission (and you should be all set).

Lightweight version control software on Linux

I'm working with a shell account in a shared system and I would like to use some version control software for my bash scripts and config files.
It must works on Linux with no dependencies, just unpack it in my home dir. I don't need remote checkout, branching or other fancy tricks. I want to be able to commit my changes and restore them if needed.
Try Git.
fossil.
Single binary.
No dependencies.
Version control.
Built in ticket tracker and wiki.
CLI and web interface.
Mercurial. You can just install it in a local directory and make sure that's in your PATH. It gives you a lot of power.
Update for comment:
Most hosting account have way more storage than you'll ever need (e.g. WebFaction gives you 10GB on a $10/mo account), so install Python locally. When you do the build/install simply add --prefix=/home/you/local. It will create local/bin/, local/lib/, etc. Now you have Python and then you can install Mercurial using your very own python.
If your account has little storage, or is missing critical build tools (like gcc, etc.), then you are using the wrong hosting.
I just found Darcs looking at previous questions. It fits perfectly to my needs.
Thanks Adam for your suggestion but Git depends on several packages which versions are not all available to me.
I use Subversion. Works fine for local access.
I also remotely check out my scripts to most of my shell accounts, I must say. It's a really convenient way to make sure the setup of the different accounts stays aligned.

Double-click installer in Ubuntu?

I'm trying to update our installer so a user can simply double-click on a file and have all the dependencies and our software installed easily. This is a suite of applications that will are deployed on a clean UbuntuĀ 8.04 (Hardy Heron) installation. I have investigated making a .deb file, but listing the dependencies doesn't work, because there isn't any Internet access available. And, any script that would set up a local APT repository would still need to be run from the command line. Is there a way to put a .deb file inside of a .deb file?
I know many companies ship shell scripts that you have to chmod +x, and then execute. This is not acceptable. It is ridiculous that this isn't possible; especially considering the distribution and architecture is fixed.
If you are totally confident that it will be installed on the same system every time, you can find the list of package dependencies yourself, fetch them from the Ubuntu repositories, and package them up with your software. You just have to be clear that your software is for a specific version, probably deal with things like keeping up with maintenance releases.
You can also easily install with a script. As for your complaint about making scripts executable, well, I don't know how you're shipping your product, but since you say it's going somewhere without Internet access, I assume it's going to be copied from some kind of media. If you make the script executable when you put it on that media, you're done.
If you'd like to do this using packages, you can create a CD-ROM which contains a package repository. You can find all kinds of information on this with Google Search. For starters, try this - it's a GUI for doing it. http://aptoncd.sourceforge.net/
A makeself self-extracting executable that starts the install script using sudo will work.
The user can either run it from a terminal (after chmod-ing it) or can double-click it and tell it to "Run" from the prompt.
It's possible to put deb-files into deb-files. The only thing you need to do is to configure the appropriate scripts.
A .deb-file consists of:
1x control.tar.gz: contains a file "control" (describes the package) and optional files like "postinst" (script executed right after extraction). There are other files you might include, and Google Search should deliver information about the available scripts.
1x data.tar.gz: contains some structure of root-filesystem which contains files/folders that need to be (re-)placed. Additionally, you may configure the behaviour in the mentioned scripts.
1x debian-binary: as far as I remember, this is simply a version number in a file. I don't know exactly what it means; just remember that in most of the cases this is 2.0.
So you now may put your .deb files in the data-package. Those are extracted by your script... and installed using:
# dpkg -i yourpackage1.deb yourpackage2.deb

Resources