Category: Linux Toggle Comment Threads | Keyboard Shortcuts

Over 80% is running on some form of Linux – so does your Mac and you iPhone. Sometimes we have to get our hands dirty on the command line – it makes you feel like a proper hacker.

Here are some pointers I picked up on my journey.

  • Jay Versluis 6:02 pm on April 14, 2017 Permalink | Reply
    Tags: EFI   

    Categories: Bookmarks, Linux, Windows ( 18 )

    Format a Linux system drive on Windows 

    The other day I tried to format a USB drive for use with Windows. I had previously tried this on my Mac to no avail. But now even Windows was telling me that it too could not format my drive.

    I was stumped! I had in fact never seen anything like it before. Was that USB drive broken? Had I turned stupid overnight? Well perhaps… but more importantly, it dawned on me what I had used this USB drive prior to this formatting nightmare: it was a Linux installation that could run directly from the stick.

    This is important, because as part of the installation, a protected EFI system partition is installed. This is used for booting if I understand correctly, and hence rather important. So important in fact that the ordinary user tools in both macOS and Windows do not allow us users (even Administrators) to erase such partitions.

    Lucky for us, the friendly folks at WinAbility have provided a detailed guide on how to remove such a protected partition on Windows. Enjoy the article!





     
  • Jay Versluis 5:54 pm on April 12, 2017 Permalink | Reply
    Tags:   

    Categories: Linux, Mac OS X, Windows ( 89 )

    What’s the difference between the Logitech M325 and the M325c 

    The Logitech M325 and M325c are both wireless USB mice. Their design appears to be identical (except for the various colourful variations of course), and their prices vary from anything between $12 and $60 – depending the layout and seller. Even the packaging is identical.

    So what’s the difference between these two models? Is it precision? Is it the build quality? Is it the year of production? Is it something else?

    Actually no, the two mice are absolutely identical and both work with Windows, macOS and Linux. The only difference is in the wireless receiver that Logitech give you with each model.

    The difference is the wireless receiver

    The M325 comes with a Logitech Unifying Receiver. You can tell by the little “sunshine” logo on the side. This type of receiver allows us to use the Logitech Unifying Software to operate several devices over a single receiver (say a mouse and a keyboard). It’s a little clunky to setup more than once device, but it certainly saves valuable USB slots on our machines.

    Note that for this to work, all decides must be Logitech unifying devices, and all must display that little sunshine logo.

    The M325c on the other hand does NOT come with a unifying receiver, and instead comes with a standard USB receiver. Only this one device will work with said receiver. As you can imagine, the receiver does not bear the unifying logo on the side. Therefore you may find the M325c a little cheaper than the M325.

    Note those that the M325c mouse itself IS a unifying device, and it DOES bear the unifying logo on the underside. Hence you can use the M325c mouse with another unifying receiver just fine.

    So there you have it – that’s the big secret difference between these two mice. I have both, and I couldn’t tell the difference at first. Just in case it too drives you crazy 🙂





     
  • Jay Versluis 11:51 am on April 8, 2017 Permalink | Reply
    Tags: ,   

    Categories: Linux, Windows ( 89 )

    How to check which web server is running on a domain 

    Sometimes we must know what web server is running on a particular domain. Usually web hosts should be able to tell a client this, but if the client is afraid to ask, there is a way to ask the web server directly for this information.

    Just to clarify: the web server is the process that serves files (HTML, PHP, ASP, images, etc) from a remote machine to your local web browser. The most likely choices in this day and age (2017) are Apache, NGINX or IIS. The latter is used by Windows servers, and the two former are used by Linux servers. There are other web servers too, such as lighttpd, but they’re used less commonly.

    By asking the web server for this information, we can tell exactly who’s serving those files.

    How to ask the Web Server

    Let’s open a Terminal or Command Line Prompt window and utilise the good old fashioned Telnet protocol. Replace yourserver.com with the actual domain in question: (More …)





     
  • Jay Versluis 9:15 am on March 21, 2017 Permalink | Reply  
    Categories: Linux, Plesk ( 89 )

    How to reset the admin password in Plesk Onyx 

    It’s not pretty when it happens, but it happens to the best of us: you forget the admin password for your Plesk Onyx installation.

    In previous versions there was an option to retrieve this password via the command line, but that special command has been removed in Onyx for security reasons.

    So what can we do? Well luckily it’s relatively easy to reset the password to something else, or gain temporary access to the server quickly. Let me show you how. (More …)





     
  • Jay Versluis 9:16 am on January 7, 2017 Permalink | Reply
    Tags: ,   

    Categories: Linux ( 89 )

    How to fix duplicate packages in yum 

    From time to time, the yum package manager may encounter issues with duplicate packages that are erroneously installed on a system. This manifests in a yum update going awry, telling us something along the lines of this:

    yum update
    ...
    --> Finished Dependency Resolution
    Error: Package: ntp-4.2.6p5-22.el7.centos.2.x86_64 (@updates)
               Requires: ntpdate = 4.2.6p5-22.el7.centos.2
               Removing: ntpdate-4.2.6p5-22.el7.centos.2.x86_64 (@updates)
                   ntpdate = 4.2.6p5-22.el7.centos.2
               Updated By: ntpdate-4.2.6p5-25.el7.centos.x86_64 (base)
                   ntpdate = 4.2.6p5-25.el7.centos
     You could try using --skip-broken to work around the problem
    ** Found 41 pre-existing rpmdb problem(s), 'yum check' output follows:
    // huge scary list of packages follows
    

    You may at times install all other packages via yum update –skip-broken, but it will still leave some trouble on the system. Best to take care of it.

    Here’s how I’ve managed to do it on many occasions:
    (More …)





     
  • Jay Versluis 10:06 am on December 2, 2016 Permalink | Reply
    Tags:   

    Categories: Linux ( 89 )

    How to print the current date and time in BASH shell scripts 

    Sometimes it’s useful to print the current time and date in a BASH script. We can make use of the date command for that. By default, and if called without any parameters, it’ll print something like this:

    echo $(date)
    Tue 29 Nov 2016 23:08:10 EST

    We can shorten this to just the date by using a formatting shortcut like this:

    echo $(date +"%x")
    29/11/2016

    or just the time using this format:

    echo $(date +"%r")
    11:09:26 pm

    Formatting shortcuts can also be used together, like so:

    $(date +"%x %r")
    29/11/2016 11:03:44 pm

    For a complete list of shortcuts, try “man date” from the command line.





     
  • Jay Versluis 10:52 am on December 1, 2016 Permalink | Reply
    Tags:   

    Categories: Linux ( 89 )

    How to use functions in a BASH shell script 

    BASH can deal with simple functions, and they are defined like this:

    # this defines the function
    function testing {
        echo "Hi there!"
    }
    
    # this calls our function
    testing

    As far as I know, BASH functions cannot take or return parameters.





     
  • Jay Versluis 10:45 am on November 30, 2016 Permalink | Reply
    Tags:   

    Categories: Linux ( 89 )

    How to use variables in a BASH shell script 

    Here’s how to use simple variables in BASH shell scripts. It appears there are no data types, and everything’s a string (correct me if I’m wrong). We can define a variable by first setting it to a value, then later refer to that value with a dollar sign in front of the variable name.

    Here’s an example:

    #!/bin/bash
    
    VARIABLE="Testing"
    echo $VARIABLE

    Note that there are no spaces between the variable name, the equal sign or the value. Adding those will result in a runtime error.

    Variables can be defined in upper or lower case letters, or a combination thereof.

    BASH Variables have a global scope, unless they are prefaced with the local keyword inside functions (in which case, only said function will have access to its value).





     
  • Jay Versluis 10:44 pm on November 29, 2016 Permalink | Reply
    Tags:   

    Categories: Linux, PHP ( 89 )

    How to install PHP from source on CentOS 

    PHP-IconI have recently installed PHP 7 from source on a fresh minimal CentOS 7 box. No previous version of PHP was installed, and I thought I’d give 7 a spin. There were a few pitfalls I hadn’t come across before, so here’s what worked for me.

    Downloading and extracting the source code

    It sounds crazy, but this was the hardest part of the whole installation! There were two problems I’ve encountered here.

    The first was that PHP offer downloads via a mirror. A direct link may look something like this: http://php.net/get/php-7.0.12.tar.bz2/from/this/mirror. This means that if we were to download this file using wget, it would be saved as “mirror”. Now what we want.

    So instead we can ask wget to give the download a different name using the -O parameter, like so:

    wget -O php7.tar.bz2 http://php.net/get/php-7.0.12.tar.bz2/from/this/mirror

    This will save our file as php7.tar.bz2 instead. So far so good. Unpacking this file seems to be impossible. From what the internet tells me, this should be the correct way of extracting a tar.bz2 file:

    tar -jxvf php7.tar.bz2

    But that didn’t work, not matter how hard I tried. All I ever got was a “non-recoverable” error. Which sucks. In the end I extracted the file on my Mac, created a ZIP archive and downloaded that instead. Unnecessarily cumbersome and idiotic, but worked. Finally I had them on my CentOS box.

    Building the source code

    Jumping into the extracted directory, the configure command can prepare the build. At this stage I encountered an error:

    configure: error: xml2-config not found. Please check your libxml2 installation.

    This can be fixed by installing the libxml2-devel package (NOT libxml2 as the error would have you believe). Let’s do that and run configure again:

    yum install libxml2-devel
    ./configure

    Now we can run make, followed by make test to see if the installation is going to go well. This will take a few minutes.

    make
    make test

    Feel free to skip “make test” if you’re in a hurry. In my case, after over 10.000 tests, PHP told me this:

    You may have found a problem in PHP.
    This report can be automatically sent to the PHP QA team at
    http://qa.php.net/reports and http://news.php.net/php.qa.reports
    This gives us a better understanding of PHP's behavior.
    If you don't want to send the report immediately you can choose
    option "s" to save it. You can then email it to qa-reports@lists.php.net later.

    Perplexed yet unfazed, I continued on and installed PHP anyway:

    make install

    And only moments later, PHP 7 was running on my CentOS system.

    php -v
    
    PHP 7.0.12 (cli) (built: Nov  8 2016 06:59:14) ( NTS )
    Copyright (c) 1997-2016 The PHP Group
    Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

    Not sure what else to tell you.





     
  • Jay Versluis 9:53 am on November 11, 2016 Permalink | Reply
    Tags:   

    Categories: Linux, WordPress ( 89 )

    Upgrade Trouble: when WordPress is asking for FTP details, but there’s no FTP server on your system 

    wordpress-iconI was working on a CentOS 7 server the other day that had a LAMP stack installed. It was used to host only a single instance of WordPress.

    Upgrading themes and plugins from the admin interface worked fine, but curiously, WordPress core upgrades did not. Instead, WordPress was asking for FTP details every time, which also prevented auto upgrades from being installed.

    This didn’t make any sense because there was no FTP server installed on the box, nor had there ever been one. But it did indicate that WordPress had an issue with overwriting core files.

    The first thing I checked was that the /var/www/html directory had the correct file and ownership permissions. It all looked correct, even though I did manually set them again just to make sure. Without success. WordPress was still asking for FTP credentials.

    After some research, I found that there is a setting for how WordPress accesses the filesystem when it’s upgrade time. We can define it with a constant called FS_METHOD in wp-config.php. The ins and outs are explained in the codex, under Upgrade Constants:

    FS_METHOD forces the filesystem method. It should only be “direct”, “ssh2”, “ftpext”, or “ftpsockets”. Generally, you should only change this if you are experiencing update problems. If you change it and it doesn’t help, change it back/remove it. Under most circumstances, setting it to ‘ftpsockets’ will work if the automatically chosen method does not. Note that your selection here has serious security implications. If you are not familiar with them, you should seek help before making a change.

    • (Primary Preference) “direct” forces it to use Direct File I/O requests from within PHP. It is the option chosen by default.
    • (Secondary Preference) “ssh2” is to force the usage of the SSH PHP Extension if installed
    • (3rd Preference) “ftpext” is to force the usage of the FTP PHP Extension for FTP Access, and finally
    • (4th Preference) “ftpsockets” utilises the PHP Sockets Class for FTP Access.

    So on this particular server, for whatever reason, WordPress did not choose the first method (direct), even though it should have. Defining this constant manually did the trick, all I had to do was add this line to my wp-config.php file:

    // explicitly use direct mode and stop asking for FTP details
    define('FS_METHOD','direct');

    Now updates are working as expected. I’ve never seen this problem on LAMP stacks before. Guess you learn something new every day.





     
c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
l
go to login
h
show/hide help
shift + esc
cancel